changeset 31435:6737f0f0d420 stable

maint: Merge default to stable to begin version 8 release process
author Rik <rik@octave.org>
date Tue, 15 Nov 2022 13:15:28 -0800
parents d17ee5e7b66c (current diff) 9d4ef8d54bfe (diff)
children f990f14d4b0c
files libgui/src/module.mk libinterp/corefcn/oct-stream.cc
diffstat 1366 files changed, 64288 insertions(+), 65828 deletions(-) [+]
line wrap: on
line diff
--- a/.github/workflows/make.yaml	Tue Nov 15 13:25:31 2022 -0300
+++ b/.github/workflows/make.yaml	Tue Nov 15 13:15:28 2022 -0800
@@ -85,7 +85,7 @@
           key: ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}:${{ steps.ccache_cache_timestamp.outputs.timestamp }}:${{ github.sha }}
           restore-keys: |
             ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}
-            ccache:${{ matrix.os }}:${{ matrix.compiler }}:refs/heads/stable
+            ccache:${{ matrix.os }}:${{ matrix.compiler }}:refs/heads/default
 
       - name: configure ccache
         env:
@@ -146,6 +146,14 @@
           [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || exit 1
           echo No unknown failing tests.
 
+      - name: test history file creation
+        # see bug #62365
+        # Pipe to an interactive session to trigger appending the command to
+        # the history.  This will trigger the creation of a history file.
+        run:  |
+          echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
+          [ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
+
 
   macos:
     runs-on: ${{ matrix.os }}
@@ -199,7 +207,7 @@
           brew reinstall gcc
           brew install arpack epstool fftw fig2dev fltk fontconfig freetype \
             ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 libsndfile \
-            libtool openblas pcre portaudio pstoedit qhull qrupdate \
+            libtool openblas pcre2 portaudio pstoedit qhull qrupdate \
             qscintilla2 qt@5 rapidjson readline suite-sparse sundials texinfo \
             ccache gnu-sed openjdk pkg-config \
             automake autoconf bison gettext icoutils librsvg mactex-no-gui
@@ -224,7 +232,7 @@
           key: ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}:${{ steps.ccache_cache_timestamp.outputs.timestamp }}:${{ github.sha }}
           restore-keys: |
             ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}
-            ccache:${{ matrix.os }}:${{ matrix.compiler }}:refs/heads/stable
+            ccache:${{ matrix.os }}:${{ matrix.compiler }}:refs/heads/default
 
       - name: configure ccache
         # The cache doesn't seem to compress well on macOS. Is it already compressed?
@@ -250,7 +258,6 @@
         # https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/octave.rb
         # Amended with additional flags that seem to be needed.
         # Not all of those might be needed or be correct.
-        # FIXME: Building the documentation is broken with texinfo 7.0
         run: |
           echo $PATH
           echo which ccache
@@ -272,7 +279,6 @@
             LDFLAGS="-L/usr/local/lib -L/usr/local/opt/bison/lib -L/usr/local/opt/gettext/lib -L/usr/local/opt/icu4c/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/sqlite/lib $MY_LDFLAGS" \
             PKG_CONFIG_PATH="/usr/local/opt/openblas/lib/pkgconfig:/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/qt@5/lib/pkgconfig" \
             QCOLLECTIONGENERATOR="qhelpgenerator" \
-            --disable-docs \
             --with-x=no \
             --with-blas="-L/usr/local/opt/openblas/lib -lopenblas" \
             --with-java-homedir="/usr/local/opt/openjdk" \
@@ -310,8 +316,16 @@
           [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || echo "::warning::At least one regression in test suite"
           echo Finished analyzing test suite results.
 
+      - name: test history file creation
+        # see bug #62365
+        # Pipe to an interactive session to trigger appending the command to
+        # the history.  This will trigger the creation of a history file.
+        run:  |
+          echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
+          [ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
 
-  windows:
+
+  mingw:
     runs-on: ${{ matrix.os }}
 
     defaults:
@@ -382,7 +396,7 @@
             ${{ matrix.target-prefix }}-gcc-fortran
             ${{ matrix.target-prefix }}-lapack
             ${{ matrix.target-prefix }}-openblas
-            ${{ matrix.target-prefix }}-pcre
+            ${{ matrix.target-prefix }}-pcre2
 
             ${{ matrix.target-prefix }}-arpack
             ${{ matrix.target-prefix }}-curl
@@ -447,7 +461,7 @@
           key: ccache:${{ matrix.os }}:${{ matrix.msystem }}:${{ github.ref }}:${{ steps.ccache_cache_timestamp.outputs.timestamp }}:${{ github.sha }}
           restore-keys: |
             ccache:${{ matrix.os }}:${{ matrix.msystem }}:${{ github.ref }}
-            ccache:${{ matrix.os }}:${{ matrix.msystem }}:refs/heads/stable
+            ccache:${{ matrix.os }}:${{ matrix.msystem }}:refs/heads/default
 
       - name: configure ccache
         # Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota.
@@ -472,7 +486,6 @@
         timeout-minutes: 30
         # FIXME: Fix building with Java support. Override JAVA_HOME for now.
         # FIXME: How do we get a working TeX environment in MSYS2? Disable building the documentation for now.
-        # Linking with ncurses fails. Use termcap library instead.
         run: |
           which $CC
           echo $CC --version
@@ -486,8 +499,7 @@
           mkdir .build
           cd .build && ../configure \
             JAVA_HOME="" \
-            --disable-docs \
-            ac_cv_search_tputs=-ltermcap
+            --disable-docs
 
       - name: build
         # Spawning processes seems to have a big overhead on this platform. Use a somewhat larger number of parallel processes to compensate for that.
@@ -532,3 +544,254 @@
           [ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || echo "::warning::At least one test failed"
           [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || echo "::warning::At least one regression in test suite"
           echo Finished analyzing test suite results.
+
+      - name: test history file creation
+        # see bug #62365
+        # Pipe to an interactive session to trigger appending the command to
+        # the history.  This will trigger the creation of a history file.
+        run:  |
+          echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
+          [ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
+
+      - name: install and compress
+        if: matrix.msystem == 'MINGW64'
+        continue-on-error: true
+        run: |
+          echo "::group::Installing Octave"
+          mkdir -p /c/octave/pkg
+          make -C ./.build DESTDIR=/c/octave/pkg install
+          echo "::endgroup::"
+          echo "::group::Compressing Octave package"
+          cd /c/octave/pkg
+          tar -cvzf octave.tar.gz *
+          echo "::endgroup::"
+
+      - name: upload build artifact
+        if: matrix.msystem == 'MINGW64'
+        continue-on-error: true
+        uses: actions/upload-artifact@v3
+        with:
+          name: ${{ matrix.target-prefix }}-octave-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
+          path: C:\octave\pkg\octave.tar.gz
+          retention-days: 7
+
+
+  cygwin:
+    runs-on: ${{ matrix.os }}
+
+    defaults:
+      run:
+        # Use Cygwin bash as default shell
+        shell: C:\cygwin\bin\bash.exe --login -eo pipefail -o igncr '{0}'
+
+    strategy:
+      # Allow other runners in the matrix to continue if some fail
+      fail-fast: false
+
+      matrix:
+        # For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
+        os: [windows-latest]
+
+    env:
+      CHERE_INVOKING: "1"
+      CC:  gcc
+      CXX:  g++
+      F77:  gfortran
+      # ccache 3.1 doesn't read configuration files
+      CCACHE_COMPRESS: "1"
+
+    steps:
+      - name: get CPU name
+        shell: pwsh
+        run : |
+          Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name
+
+      - name: checkout repository
+        # This must be done before installing Cygwin because their git is
+        # incompatible with this action.
+        uses: actions/checkout@v3
+
+      - name: install Cygwin build environment
+        uses: cygwin/cygwin-install-action@v2
+        with:
+          # The packages are listed in (alphabetically sorted) blocks:
+          # The first block is for mandatory dependencies.
+          # The second block is for optional dependencies needed when building from a release tarball.
+          # The third block is for additional dependencies needed when building from a repository checkout.
+          # The fourth block is for additional run-time dependencies (to run test suite) that aren't needed to build.
+
+          # FIXME: libklu-devel should depend on libbtf-devel.  Install it manually even if Octave doesn't explicitly use it.
+          packages: >-
+            autoconf
+            automake
+            make
+            gcc-g++
+            gcc-fortran
+            bison
+            dash
+            flex
+            gperf
+            libtool
+            liblapack-devel
+            libpcre2-devel
+            libreadline-devel
+
+            ghostscript
+            gnuplot-base
+            libamd-devel
+            libarpack-devel
+            libbtf-devel
+            libbz2-devel
+            libcamd-devel
+            libccolamd-devel
+            libcholmod-devel
+            libcolamd-devel
+            libcurl-devel
+            libcxsparse-devel
+            libfftw3-devel
+            libfltk-devel
+            libfontconfig-devel
+            libfreetype-devel
+            libGL-devel
+            libgl2ps-devel
+            libglpk-devel
+            libGLU-devel
+            libgomp1
+            libGraphicsMagick-devel
+            libhdf5-devel
+            libiconv-devel
+            libklu-devel
+            libportaudio-devel
+            libqhull-devel
+            libqrupdate-devel
+            libqscintilla2_qt5-devel
+            libQt5Core-devel
+            libQt5Gui-devel
+            libQt5Help-devel
+            libsndfile-devel
+            libsuitesparseconfig-devel
+            libsundials-devel
+            libspqr-devel
+            libumfpack-devel
+            qt5-doc-tools
+            rapidjson-devel
+
+            ccache
+            git
+            icoutils
+            rsvg
+            texinfo
+
+            unzip
+            zip
+
+      - name: prepare ccache
+        # Create human readable timestamp
+        id: ccache_cache_timestamp
+        run: |
+          echo "ccachedir=$(cygpath -m ~/.ccache)" >> $GITHUB_OUTPUT
+          echo "timestamp=$(date +"%Y-%m-%d_%H-%M-%S")" >> $GITHUB_OUTPUT
+
+      - name: restore ccache
+        # Setup a github cache used to maintain the ccache from one run to the next
+        uses: actions/cache@v3
+        with:
+          path: ${{ steps.ccache_cache_timestamp.outputs.ccachedir }}
+          key: ccache:${{ matrix.os }}:cygwin:${{ github.ref }}:${{ steps.ccache_cache_timestamp.outputs.timestamp }}:${{ github.sha }}
+          restore-keys: |
+            ccache:${{ matrix.os }}:cygwin:${{ github.ref }}
+            ccache:${{ matrix.os }}:cygwin:refs/heads/default
+
+      - name: configure ccache
+        run: |
+          # work around issue with ccache calling itself recursively
+          [ -f /usr/bin/ccache.exe ] && mv /usr/bin/ccache.exe /usr/bin/ccache
+          which ccache
+          ccache -V
+          # ccache 3.1 doesn't read configuration files
+          # test -d ${{ steps.ccache_cache_timestamp.outputs.ccachedir }} || mkdir -p ${{ steps.ccache_cache_timestamp.outputs.ccachedir }}
+          # echo "max_size = 0.9G" > ${{ steps.ccache_cache_timestamp.outputs.ccachedir }}/ccache.conf
+          # echo "compression = true" >> ${{ steps.ccache_cache_timestamp.outputs.ccachedir }}/ccache.conf
+          # limit maximum cache size to avoid exceeding the total disk or cache quota
+          ccache -M 0.9G
+          ccache -s
+          # create ccache symlinks for all compilers
+          test -d /usr/lib/ccache/bin || mkdir -p /usr/lib/ccache/bin
+          ln -s /usr/bin/ccache /usr/lib/ccache/bin/${CC}.exe
+          ln -s /usr/bin/ccache /usr/lib/ccache/bin/${CXX}.exe
+          ln -s /usr/bin/ccache /usr/lib/ccache/bin/${F77}.exe
+          # prepend path to ccache symlinks to PATH
+          echo 'export PATH="/usr/lib/ccache/bin:$PATH"' >> ~/.bash_profile
+
+      - name: bootstrap
+        run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
+
+      - name: configure
+        # FIXME: Fix building with Java support.  Override JAVA_HOME for now.
+        # FIXME: How do we get a working TeX environment in Cygwin?  Disable building the documentation for now.
+        run: |
+          which $CC
+          echo $CC --version
+          $CC --version
+          which $CXX
+          echo $CXX --version
+          $CXX --version
+          which $F77
+          echo $F77 --version
+          $F77 --version
+          mkdir .build
+          cd .build && ../configure \
+            --libexecdir=/usr/lib \
+            --enable-shared \
+            --disable-java \
+            --disable-docs \
+            JAVA_HOME="" \
+            EGREP="grep -E" \
+            FLIBS="-lgfortran -lquadmath"
+
+      - name: build
+        # Spawning processes seems to have a big overhead on this platform.  Use a somewhat larger number of parallel processes to compensate for that.
+        run: |
+          EGREP="grep -E" make -C ./.build all -j8 V=1
+
+      - name: ccache status
+        continue-on-error: true
+        run: ccache -s
+
+      - name: check
+        # Continuing on error in this step means that jobs will be "green" even
+        # if the test suite crashes.  But if we don't continue, we'll loose the
+        # ccache.
+        # It would be nice if we could mark the job as "yellow" (and continue)
+        # in that case.  The second best thing is to display a warning in the
+        # job summary (see below).
+        continue-on-error: true
+        timeout-minutes: 60
+
+        # mkoctfile seems to have trouble when gcc is called via ccache.  So,
+        # remove the directory with the ccache wrappers from PATH.
+
+        run: |
+          export PATH=$(echo "$PATH" | sed -e "s|/usr/lib/ccache/bin:||g")
+          EGREP="grep -E" make -C ./.build check | tee ./test-suite.log
+
+      - name: display test log
+        continue-on-error: true
+        # Displaying the log shouldn't take long.  Cancel the step if it does.
+        timeout-minutes: 5
+        run: cat ./.build/test/fntests.log
+
+      - name: analyze test suite results
+        # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
+        run: |
+          [ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || echo "::warning::At least one test failed"
+          [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || echo "::warning::At least one regression in test suite"
+          echo Finished analyzing test suite results.
+
+      - name: test history file creation
+        # see bug #62365
+        # Pipe to an interactive session to trigger appending the command to
+        # the history.  This will trigger the creation of a history file.
+        run: |
+          echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
+          [ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
--- a/.hgignore	Tue Nov 15 13:25:31 2022 -0300
+++ b/.hgignore	Tue Nov 15 13:15:28 2022 -0800
@@ -25,7 +25,7 @@
 (^|/)config.log$
 (^|/)config.status$
 
-^Makefile\.in$
+(^|/)Makefile\.in$
 ^INSTALL$
 
 ## CMake associated files
@@ -40,6 +40,7 @@
 ## Scripts associated with building Octave
 ^build-aux/config\.(guess|rpath|sub)$
 (^|/)build-aux/check-subst-vars\.sh$
+^build-aux/compile$
 ^build-aux/depcomp$
 ^build-aux/install-sh$
 ^build-aux/ltmain\.sh$
@@ -123,3 +124,4 @@
 ## Test associated patterns
 -tst$
 
+^.build/*
--- a/Makefile.am	Tue Nov 15 13:25:31 2022 -0300
+++ b/Makefile.am	Tue Nov 15 13:15:28 2022 -0800
@@ -215,8 +215,6 @@
 octinclude_HEADERS =
 nodist_octinclude_HEADERS =
 
-pkgconfig_DATA =
-
 DIST_SRC =
 
 ALL_LOCAL_TARGETS =
@@ -233,7 +231,7 @@
 # See bug #45578.
 BUILT_SOURCES += libgnu/libgnu.la
 
-libgnu/libgnu.la: oct-conf-post.h
+libgnu/libgnu.la: oct-conf-post-private.h oct-conf-post-public.h
 	cd libgnu && $(MAKE) $(AM_MAKEFLAGS) all
 
 include liboctave/module.mk
@@ -298,7 +296,8 @@
 endif
 
 BUILT_SOURCES += \
-  oct-conf-post.h \
+  oct-conf-post-private.h \
+  oct-conf-post-public.h \
   octave-config.h \
   run-octave \
   $(DIRSTAMP_FILES)
@@ -330,6 +329,7 @@
 CONFIG_FILES = @ac_config_headers@ @ac_config_files@
 
 nodist_octinclude_HEADERS += \
+  oct-conf-post-public.h \
   octave-config.h
 
 OCTAVE_INTERPRETER_TARGETS += \
@@ -458,17 +458,18 @@
 	if [ -n "`cat $(OCT_FILE_PKG_ADD_FILES)`" ]; then \
 	  $(INSTALL_DATA) oct-file-pkg-add $(DESTDIR)$(octfiledir)/PKG_ADD; \
 	fi
+	top_build_dir=`pwd` && \
 	cd $(DESTDIR)$(octlibdir) && \
 	for ltlib in $(OCT_FILE_LIBS); do \
 	  f=`echo $$ltlib | $(SED) 's,.*/,,'`; \
-	  dl=`$(SED) -n -e "s/dlname='\([^']*\)'/\1/p" < $$f`; \
+	  dl=`$(SED) -n -e "s/dlname='\([^']*\)'/\1/p" < $$top_build_dir/$$ltlib`; \
 	  if [ -n "$$dl" ]; then \
 	    $(INSTALL_PROGRAM) $$dl $(DESTDIR)$(octfiledir)/`echo $$f | $(SED) 's,^lib,,; s,\.la$$,.oct,'`; \
 	  else \
 	    echo "error: dlname is empty in $$ltlib!"; \
 	    exit 1; \
 	  fi; \
-	  lnames=`$(SED) -n -e "s/library_names='\([^']*\)'/\1/p" < $$f`; \
+	  lnames=`$(SED) -n -e "s/library_names='\([^']*\)'/\1/p" < $$top_build_dir/$$ltlib`; \
 	  if [ -n "$$lnames" ]; then \
 	    rm -f $$f $$lnames $$dl; \
 	  fi \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/autogen.sh	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,486 @@
+#!/bin/sh
+# Convenience script for regenerating all autogeneratable files that are
+# omitted from the version control repository. In particular, this script
+# also regenerates all aclocal.m4, config.h.in, Makefile.in, configure files
+# with new versions of autoconf or automake.
+
+# Copyright (C) 2003-2022 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+# Originally written by Paul Eggert.  The canonical version of this
+# script is maintained as top/autogen.sh in gnulib.  However, to be
+# useful to your package, you should place a copy of it under version
+# control in the top-level directory of your package.  The intent is
+# that all customization can be done with a bootstrap.conf file also
+# maintained in your version control; gnulib comes with a template
+# build-aux/bootstrap.conf to get you started.
+#
+# Alternatively, you can use an autogen.sh script that is specific
+# to your package.
+
+scriptversion=2022-07-24.15; # UTC
+
+me="$0"
+medir=`dirname "$me"`
+
+# Read the function library and the configuration.
+. "$medir"/bootstrap-funclib.sh
+
+# Ensure that CDPATH is not set.  Otherwise, the output from cd
+# would cause trouble in at least one use below.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Environment variables that may be set by the user.
+: "${AUTOPOINT=autopoint}"
+: "${AUTORECONF=autoreconf}"
+
+if test "$vc_ignore" = auto; then
+  vc_ignore=
+  test -d .git && vc_ignore=.gitignore
+  test -d CVS && vc_ignore="$vc_ignore .cvsignore"
+fi
+
+usage() {
+  cat <<EOF
+Usage: $me [OPTION]...
+Bootstrap this package from the checked-out sources.
+
+Optional environment variables:
+  GNULIB_SRCDIR            Specifies the local directory where gnulib
+                           sources reside.  Use this if you already
+                           have gnulib sources on your machine, and
+                           you want to use these sources.
+
+Options:
+  --copy                   copy files instead of creating symbolic links
+  --force                  attempt to bootstrap even if the sources seem
+                           not to have been checked out
+EOF
+  bootstrap_print_option_usage_hook
+  cat <<EOF
+If the file bootstrap.conf exists in the same directory as this script, its
+contents are read as shell variables to configure the bootstrap.
+
+For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
+are honored.
+
+Gnulib sources are assumed to be present:
+  * in \$GNULIB_SRCDIR, if that environment variable is set,
+  * otherwise, in the 'gnulib' submodule, if such a submodule is configured,
+  * otherwise, in the 'gnulib' subdirectory.
+
+Running without arguments will suffice in most cases.
+EOF
+}
+
+# Parse options.
+
+# Whether to use copies instead of symlinks.
+copy=false
+
+for option
+do
+  case $option in
+  --help)
+    usage
+    exit;;
+  --version)
+    set -e
+    echo "autogen.sh $scriptversion"
+    echo "$copyright"
+    exit 0
+    ;;
+  --force)
+    checkout_only_file=;;
+  --copy)
+    copy=true;;
+  *)
+    bootstrap_option_hook $option || die "$option: unknown option";;
+  esac
+done
+
+test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
+  || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
+
+if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+  die "Running this script from a non-checked-out distribution is risky."
+fi
+
+if $use_gnulib; then
+  if test -z "$GNULIB_SRCDIR"; then
+    gnulib_path=$(test -f .gitmodules && git config --file .gitmodules submodule.gnulib.path)
+    test -z "$gnulib_path" && gnulib_path=gnulib
+    GNULIB_SRCDIR=$gnulib_path
+  fi
+fi
+
+version_controlled_file() {
+  parent=$1
+  file=$2
+  if test -d .git; then
+    git rm -n "$file" > /dev/null 2>&1
+  elif test -d .svn; then
+    svn log -r HEAD "$file" > /dev/null 2>&1
+  elif test -d CVS; then
+    grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
+             grep '^/[^/]*/[0-9]' > /dev/null
+  else
+    warn_ "no version control for $file?"
+    false
+  fi
+}
+
+# Strip blank and comment lines to leave significant entries.
+gitignore_entries() {
+  sed '/^#/d; /^$/d' "$@"
+}
+
+# If $STR is not already on a line by itself in $FILE, insert it at the start.
+# Entries are inserted at the start of the ignore list to ensure existing
+# entries starting with ! are not overridden.  Such entries support
+# whitelisting exceptions after a more generic blacklist pattern.
+insert_if_absent() {
+  file=$1
+  str=$2
+  test -f $file || touch $file
+  test -r $file || die "Error: failed to read ignore file: $file"
+  duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
+  if [ "$duplicate_entries" ] ; then
+    die "Error: Duplicate entries in $file: " $duplicate_entries
+  fi
+  linesold=$(gitignore_entries $file | wc -l)
+  linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
+  if [ $linesold != $linesnew ] ; then
+    { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
+      || die "insert_if_absent $file $str: failed"
+  fi
+}
+
+# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
+# insert_if_absent.
+insert_vc_ignore() {
+  vc_ignore_file="$1"
+  pattern="$2"
+  case $vc_ignore_file in
+  *.gitignore)
+    # A .gitignore entry that does not start with '/' applies
+    # recursively to subdirectories, so prepend '/' to every
+    # .gitignore entry.
+    pattern=$(echo "$pattern" | sed s,^,/,);;
+  esac
+  insert_if_absent "$vc_ignore_file" "$pattern"
+}
+
+symlink_to_dir()
+{
+  src=$1/$2
+  dst=${3-$2}
+
+  test -f "$src" && {
+
+    # If the destination directory doesn't exist, create it.
+    # This is required at least for "lib/uniwidth/cjk.h".
+    dst_dir=$(dirname "$dst")
+    if ! test -d "$dst_dir"; then
+      mkdir -p "$dst_dir"
+
+      # If we've just created a directory like lib/uniwidth,
+      # tell version control system(s) it's ignorable.
+      # FIXME: for now, this does only one level
+      parent=$(dirname "$dst_dir")
+      for dot_ig in x $vc_ignore; do
+        test $dot_ig = x && continue
+        ig=$parent/$dot_ig
+        insert_vc_ignore $ig "${dst_dir##*/}"
+      done
+    fi
+
+    if $copy; then
+      {
+        test ! -h "$dst" || {
+          echo "$me: rm -f $dst" &&
+          rm -f "$dst"
+        }
+      } &&
+      test -f "$dst" &&
+      cmp -s "$src" "$dst" || {
+        echo "$me: cp -fp $src $dst" &&
+        cp -fp "$src" "$dst"
+      }
+    else
+      # Leave any existing symlink alone, if it already points to the source,
+      # so that broken build tools that care about symlink times
+      # aren't confused into doing unnecessary builds.  Conversely, if the
+      # existing symlink's timestamp is older than the source, make it afresh,
+      # so that broken tools aren't confused into skipping needed builds.  See
+      # <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
+      test -h "$dst" &&
+      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
+      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
+      test "$src_i" = "$dst_i" &&
+      both_ls=$(ls -dt "$src" "$dst") &&
+      test "X$both_ls" = "X$dst$nl$src" || {
+        dot_dots=
+        case $src in
+        /*) ;;
+        *)
+          case /$dst/ in
+          *//* | */../* | */./* | /*/*/*/*/*/)
+             die "invalid symlink calculation: $src -> $dst";;
+          /*/*/*/*/)    dot_dots=../../../;;
+          /*/*/*/)      dot_dots=../../;;
+          /*/*/)        dot_dots=../;;
+          esac;;
+        esac
+
+        echo "$me: ln -fs $dot_dots$src $dst" &&
+        ln -fs "$dot_dots$src" "$dst"
+      }
+    fi
+  }
+}
+
+# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
+found_aux_dir=no
+grep '^[	 ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'])' configure.ac \
+    >/dev/null && found_aux_dir=yes
+grep '^[	 ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
+    >/dev/null && found_aux_dir=yes
+test $found_aux_dir = yes \
+  || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it"
+
+# If $build_aux doesn't exist, create it now, otherwise some bits
+# below will malfunction.  If creating it, also mark it as ignored.
+if test ! -d $build_aux; then
+  mkdir $build_aux
+  for dot_ig in x $vc_ignore; do
+    test $dot_ig = x && continue
+    insert_vc_ignore $dot_ig $build_aux
+  done
+fi
+
+check_build_prerequisites false
+
+use_libtool=0
+# We'd like to use grep -E, to see if any of LT_INIT,
+# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
+# but that's not portable enough (e.g., for Solaris).
+grep '^[	 ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
+  && use_libtool=1
+grep '^[	 ]*LT_INIT' configure.ac >/dev/null \
+  && use_libtool=1
+if test $use_libtool = 1; then
+  find_tool LIBTOOLIZE glibtoolize libtoolize
+fi
+
+if $use_gnulib; then
+  gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
+  <$gnulib_tool || exit $?
+fi
+
+# NOTE: we have to be careful to run both autopoint and libtoolize
+# before gnulib-tool, since gnulib-tool is likely to provide newer
+# versions of files "installed" by these two programs.
+# Then, *after* gnulib-tool (see below), we have to be careful to
+# run autoreconf in such a way that it does not run either of these
+# two just-pre-run programs.
+
+# Import from gettext.
+with_gettext=yes
+grep '^[	 ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
+    with_gettext=no
+
+if test $with_gettext = yes || test $use_libtool = 1; then
+
+  tempbase=.bootstrap$$
+  trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15
+
+  > $tempbase.0 > $tempbase.1 &&
+  find . ! -type d -print | sort > $tempbase.0 || exit
+
+  if test $with_gettext = yes; then
+    # Released autopoint has the tendency to install macros that have been
+    # obsoleted in current gnulib, so run this before gnulib-tool.
+    echo "$0: $AUTOPOINT --force"
+    $AUTOPOINT --force || exit
+  fi
+
+  # Autoreconf runs aclocal before libtoolize, which causes spurious
+  # warnings if the initial aclocal is confused by the libtoolized
+  # (or worse out-of-date) macro directory.
+  # libtoolize 1.9b added the --install option; but we support back
+  # to libtoolize 1.5.22, where the install action was default.
+  if test $use_libtool = 1; then
+    install=
+    case $($LIBTOOLIZE --help) in
+      *--install*) install=--install ;;
+    esac
+    echo "running: $LIBTOOLIZE $install --copy"
+    $LIBTOOLIZE $install --copy
+  fi
+
+  find . ! -type d -print | sort >$tempbase.1
+  old_IFS=$IFS
+  IFS=$nl
+  for file in $(comm -13 $tempbase.0 $tempbase.1); do
+    IFS=$old_IFS
+    parent=${file%/*}
+    version_controlled_file "$parent" "$file" || {
+      for dot_ig in x $vc_ignore; do
+        test $dot_ig = x && continue
+        ig=$parent/$dot_ig
+        insert_vc_ignore "$ig" "${file##*/}"
+      done
+    }
+  done
+  IFS=$old_IFS
+
+  rm -f $tempbase.0 $tempbase.1
+  trap - 1 2 13 15
+fi
+
+# Import from gnulib.
+
+if $use_gnulib; then
+  gnulib_tool_options="\
+   --no-changelog\
+   --aux-dir=$build_aux\
+   --doc-base=$doc_base\
+   --lib=$gnulib_name\
+   --m4-base=$m4_base/\
+   --source-base=$source_base/\
+   --tests-base=$tests_base\
+   --local-dir=$local_gl_dir\
+   $gnulib_tool_option_extras\
+  "
+  if test $use_libtool = 1; then
+    case "$gnulib_tool_options " in
+      *' --libtool '*) ;;
+      *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
+    esac
+  fi
+  echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
+  $gnulib_tool $gnulib_tool_options --import $gnulib_modules \
+    || die "gnulib-tool failed"
+
+  for file in $gnulib_files; do
+    symlink_to_dir "$GNULIB_SRCDIR" $file \
+      || die "failed to symlink $file"
+  done
+fi
+
+bootstrap_post_import_hook \
+  || die "bootstrap_post_import_hook failed"
+
+# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
+# gnulib-populated directories.  Such .m4 files would cause aclocal to fail.
+# The following requires GNU find 4.2.3 or newer.  Considering the usual
+# portability constraints of this script, that may seem a very demanding
+# requirement, but it should be ok.  Ignore any failure, which is fine,
+# since this is only a convenience to help developers avoid the relatively
+# unusual case in which a symlinked-to .m4 file is git-removed from gnulib
+# between successive runs of this script.
+find "$m4_base" "$source_base" \
+  -depth \( -name '*.m4' -o -name '*.[ch]' \) \
+  -type l -xtype l -delete > /dev/null 2>&1
+
+# Invoke autoreconf with --force --install to ensure upgrades of tools
+# such as ylwrap.
+AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS"
+
+# Some systems (RHEL 5) are using ancient autotools, for which the
+# --no-recursive option had not been invented.  Detect that lack and
+# omit the option when it's not supported.  FIXME in 2017: remove this
+# hack when RHEL 5 autotools are updated, or when they become irrelevant.
+case $($AUTORECONF --help) in
+  *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
+esac
+
+# Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
+echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS"
+AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \
+  || die "autoreconf failed"
+
+# Get some extra files from gnulib, overriding existing files.
+for file in $gnulib_extra_files; do
+  case $file in
+    */INSTALL) dst=INSTALL;;
+    build-aux/*) dst=$build_aux/${file#build-aux/};;
+    *) dst=$file;;
+  esac
+  symlink_to_dir "$GNULIB_SRCDIR" $file $dst \
+    || die "failed to symlink $file"
+done
+
+if test $with_gettext = yes; then
+  # Create gettext configuration.
+  echo "$0: Creating po/Makevars from po/Makevars.template ..."
+  rm -f po/Makevars
+  sed '
+    /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
+    /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
+    /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
+    /^XGETTEXT_OPTIONS *=/{
+      s/$/ \\/
+      a\
+          '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
+    }
+  ' po/Makevars.template >po/Makevars \
+    || die 'cannot generate po/Makevars'
+
+  # If the 'gettext' module is in use, grab the latest Makefile.in.in.
+  # If only the 'gettext-h' module is in use, assume autopoint already
+  # put the correct version of this file into place.
+  case $gnulib_modules in
+    *gettext-h*) ;;
+    *gettext*)
+      cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \
+        || die "cannot create po/Makefile.in.in"
+      ;;
+  esac
+
+  if test -d runtime-po; then
+    # Similarly for runtime-po/Makevars, but not quite the same.
+    rm -f runtime-po/Makevars
+    sed '
+      /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
+      /^subdir *=.*/s/=.*/= runtime-po/
+      /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+      /^XGETTEXT_OPTIONS *=/{
+        s/$/ \\/
+        a\
+            '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+      }
+    ' po/Makevars.template >runtime-po/Makevars \
+    || die 'cannot generate runtime-po/Makevars'
+
+    # Copy identical files from po to runtime-po.
+    (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+  fi
+fi
+
+bootstrap_epilogue
+
+echo "$0: done.  Now you can run './configure'."
+
+# ----------------------------------------------------------------------------
+
+# Local Variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/autopull.sh	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,273 @@
+#!/bin/sh
+# Convenience script for fetching auxiliary files that are omitted from
+# the version control repository of this package.
+
+# Copyright (C) 2003-2022 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+# Originally written by Paul Eggert.  The canonical version of this
+# script is maintained as top/autopull.sh in gnulib.  However, to be
+# useful to your package, you should place a copy of it under version
+# control in the top-level directory of your package.  The intent is
+# that all customization can be done with a bootstrap.conf file also
+# maintained in your version control; gnulib comes with a template
+# build-aux/bootstrap.conf to get you started.
+#
+# Alternatively, you can use an autopull.sh script that is specific
+# to your package.
+
+scriptversion=2022-07-24.15; # UTC
+
+me="$0"
+medir=`dirname "$me"`
+
+# Read the function library and the configuration.
+. "$medir"/bootstrap-funclib.sh
+
+# Ensure that CDPATH is not set.  Otherwise, the output from cd
+# would cause trouble in at least one use below.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+usage() {
+  cat <<EOF
+Usage: $me [OPTION]...
+Bootstrap this package from the checked-out sources.
+
+Optional environment variables:
+  GNULIB_SRCDIR            Specifies the local directory where gnulib
+                           sources reside.  Use this if you already
+                           have gnulib sources on your machine, and
+                           you want to use these sources.
+  GNULIB_REFDIR            Specifies the local directory where a gnulib
+                           repository (with a .git subdirectory) resides.
+                           Use this if you already have gnulib sources
+                           and history on your machine, and do not want
+                           to waste your bandwidth downloading them again.
+  GNULIB_URL               Cloneable URL of the gnulib repository.
+
+Options:
+  --bootstrap-sync         if this bootstrap script is not identical to
+                           the version in the local gnulib sources,
+                           update this script, and then restart it with
+                           /bin/sh or the shell \$CONFIG_SHELL
+  --no-bootstrap-sync      do not check whether bootstrap is out of sync
+  --force                  attempt to bootstrap even if the sources seem
+                           not to have been checked out
+  --no-git                 do not use git to update gnulib.  Requires that
+                           \$GNULIB_SRCDIR or the --gnulib-srcdir option
+                           points to a gnulib repository with the correct
+                           revision
+  --skip-po                do not download po files
+EOF
+  bootstrap_print_option_usage_hook
+  cat <<EOF
+If the file bootstrap.conf exists in the same directory as this script, its
+contents are read as shell variables to configure the bootstrap.
+
+For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
+are honored.
+
+Gnulib sources can be fetched in various ways:
+
+ * If the environment variable GNULIB_SRCDIR is set (either as an
+   environment variable or via the --gnulib-srcdir option), then sources
+   are fetched from that local directory.  If it is a git repository and
+   the configuration variable GNULIB_REVISION is set in bootstrap.conf,
+   then that revision is checked out.
+
+ * Otherwise, if this package is in a git repository with a 'gnulib'
+   submodule configured, then that submodule is initialized and updated
+   and sources are fetched from there.  If GNULIB_REFDIR is set (either
+   as an environment variable or via the --gnulib-refdir option) and is
+   a git repository, then it is used as a reference.
+
+ * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
+   are cloned into that directory using git from \$GNULIB_URL, defaulting
+   to $default_gnulib_url.
+   If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
+   then that revision is checked out.
+
+ * Otherwise, the existing Gnulib sources in the 'gnulib' directory are
+   used.  If it is a git repository and the configuration variable
+   GNULIB_REVISION is set in bootstrap.conf, then that revision is
+   checked out.
+
+If you maintain a package and want to pin a particular revision of the
+Gnulib sources that has been tested with your package, then there are
+two possible approaches: either configure a 'gnulib' submodule with the
+appropriate revision, or set GNULIB_REVISION (and if necessary
+GNULIB_URL) in bootstrap.conf.
+
+Running without arguments will suffice in most cases.
+EOF
+}
+
+# Parse options.
+
+# Use git to update gnulib sources
+use_git=true
+
+for option
+do
+  case $option in
+  --help)
+    usage
+    exit;;
+  --version)
+    set -e
+    echo "autopull.sh $scriptversion"
+    echo "$copyright"
+    exit 0
+    ;;
+  --skip-po)
+    SKIP_PO=t;;
+  --force)
+    checkout_only_file=;;
+  --bootstrap-sync)
+    bootstrap_sync=true;;
+  --no-bootstrap-sync)
+    bootstrap_sync=false;;
+  --no-git)
+    use_git=false;;
+  *)
+    bootstrap_option_hook $option || die "$option: unknown option";;
+  esac
+done
+
+$use_git || test -n "$GNULIB_SRCDIR" \
+  || die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option"
+test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
+  || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
+
+if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+  die "Running this script from a non-checked-out distribution is risky."
+fi
+
+check_build_prerequisites $use_git
+
+if $use_gnulib || $bootstrap_sync; then
+  prepare_GNULIB_SRCDIR
+  if $bootstrap_sync; then
+    upgrade_bootstrap
+  fi
+fi
+
+# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6.
+# Also find the compatible sha1 utility on the BSDs
+if test x"$SKIP_PO" = x; then
+  find_tool SHA1SUM sha1sum gsha1sum shasum sha1
+fi
+
+# See if we can use gnulib's git-merge-changelog merge driver.
+if $use_git && test -d .git && check_exists git; then
+  if git config merge.merge-changelog.driver >/dev/null ; then
+    :
+  elif check_exists git-merge-changelog; then
+    echo "$0: initializing git-merge-changelog driver"
+    git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
+    git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
+  else
+    echo "$0: consider installing git-merge-changelog from gnulib"
+  fi
+fi
+
+# ----------------------------- Get translations. -----------------------------
+
+download_po_files() {
+  subdir=$1
+  domain=$2
+  echo "$me: getting translations into $subdir for $domain..."
+  cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
+  eval "$cmd"
+}
+
+# Mirror .po files to $po_dir/.reference and copy only the new
+# or modified ones into $po_dir.  Also update $po_dir/LINGUAS.
+# Note po files that exist locally only are left in $po_dir but will
+# not be included in LINGUAS and hence will not be distributed.
+update_po_files() {
+  # Directory containing primary .po files.
+  # Overwrite them only when we're sure a .po file is new.
+  po_dir=$1
+  domain=$2
+
+  # Mirror *.po files into this dir.
+  # Usually contains *.s1 checksum files.
+  ref_po_dir="$po_dir/.reference"
+
+  test -d $ref_po_dir || mkdir $ref_po_dir || return
+  download_po_files $ref_po_dir $domain \
+    && ls "$ref_po_dir"/*.po 2>/dev/null |
+      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
+
+  langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
+  test "$langs" = '*' && langs=x
+  for po in $langs; do
+    case $po in x) continue;; esac
+    new_po="$ref_po_dir/$po.po"
+    cksum_file="$ref_po_dir/$po.s1"
+    if ! test -f "$cksum_file" ||
+        ! test -f "$po_dir/$po.po" ||
+        ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then
+      echo "$me: updated $po_dir/$po.po..."
+      cp "$new_po" "$po_dir/$po.po" \
+          && $SHA1SUM < "$new_po" > "$cksum_file" || return
+    fi
+  done
+}
+
+case $SKIP_PO in
+'')
+  if test -d po; then
+    update_po_files po $package || exit
+  fi
+
+  if test -d runtime-po; then
+    update_po_files runtime-po $package-runtime || exit
+  fi;;
+esac
+
+# -----------------------------------------------------------------------------
+
+bootstrap_post_pull_hook \
+  || die "bootstrap_post_pull_hook failed"
+
+# Don't proceed if there are uninitialized submodules.  In particular,
+# autogen.sh will remove dangling links, which might be links into
+# uninitialized submodules.
+# But it's OK if the 'gnulib' submodule is uninitialized, as long as
+# GNULIB_SRCDIR is set.
+if $use_git; then
+  # Uninitialized submodules are listed with an initial dash.
+  uninitialized=`git submodule | grep '^-' | awk '{ print $2 }'`
+  if test -n "$GNULIB_SRCDIR"; then
+    uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'`
+  fi
+  if test -n "$uninitialized"; then
+    die "Some git submodules are not initialized: "`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'`" Either use option '--no-git', or run 'git submodule update --init' and bootstrap again."
+  fi
+fi
+
+echo "$0: done.  Now you can run './autogen.sh'."
+
+# ----------------------------------------------------------------------------
+
+# Local Variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
--- a/bootstrap	Tue Nov 15 13:25:31 2022 -0300
+++ b/bootstrap	Tue Nov 15 13:15:28 2022 -0800
@@ -1,80 +1,81 @@
 #! /bin/sh
-# Print a version string.
-scriptversion=2021-04-11.09; # UTC
-
 # Bootstrap this package from checked-out sources.
 
-# Copyright (C) 2003-2021 Free Software Foundation, Inc.
-
+# Copyright (C) 2003-2022 Free Software Foundation, Inc.
+#
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
-
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-
+#
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # Originally written by Paul Eggert.  The canonical version of this
-# script is maintained as build-aux/bootstrap in gnulib, however, to
-# be useful to your project, you should place a copy of it under
-# version control in the top-level directory of your project.  The
-# intent is that all customization can be done with a bootstrap.conf
-# file also maintained in your version control; gnulib comes with a
-# template build-aux/bootstrap.conf to get you started.
+# script is maintained as top/bootstrap in gnulib. However, to be
+# useful to your package, you should place a copy of it under version
+# control in the top-level directory of your package.  The intent is
+# that all customization can be done with a bootstrap.conf file also
+# maintained in your version control; gnulib comes with a template
+# build-aux/bootstrap.conf to get you started.
 
 # Please report bugs or propose patches to bug-gnulib@gnu.org.
 
-nl='
-'
-
-# Ensure file names are sorted consistently across platforms.
-LC_ALL=C
-export LC_ALL
+scriptversion=2022-07-29.23; # UTC
 
-# Ensure that CDPATH is not set.  Otherwise, the output from cd
-# would cause trouble in at least one use below.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-local_gl_dir=gl
+me="$0"
+medir=`dirname "$me"`
 
-# Honor $PERL, but work even if there is none.
-PERL="${PERL-perl}"
-
-me=$0
-
-default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git
+# Read the function library and the configuration.
+. "$medir"/bootstrap-funclib.sh
 
 usage() {
   cat <<EOF
 Usage: $me [OPTION]...
 Bootstrap this package from the checked-out sources.
 
+Optional environment variables:
+  GNULIB_SRCDIR            Specifies the local directory where gnulib
+                           sources reside.  Use this if you already
+                           have gnulib sources on your machine, and
+                           do not want to waste your bandwidth downloading
+                           them again.
+  GNULIB_URL               Cloneable URL of the gnulib repository.
+
 Options:
- --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
-                          sources reside.  Use this if you already
-                          have gnulib sources on your machine, and
-                          do not want to waste your bandwidth downloading
-                          them again.  Defaults to \$GNULIB_SRCDIR
- --bootstrap-sync         if this bootstrap script is not identical to
-                          the version in the local gnulib sources,
-                          update this script, and then restart it with
-                          /bin/sh or the shell \$CONFIG_SHELL
- --no-bootstrap-sync      do not check whether bootstrap is out of sync
- --copy                   copy files instead of creating symbolic links
- --force                  attempt to bootstrap even if the sources seem
-                          not to have been checked out
- --no-git                 do not use git to update gnulib.  Requires that
-                          --gnulib-srcdir point to a correct gnulib snapshot
- --skip-po                do not download po files
+  --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
+                           sources reside.  Use this if you already
+                           have gnulib sources on your machine, and
+                           you want to use these sources.  Defaults
+                           to \$GNULIB_SRCDIR
+  --gnulib-refdir=DIRNAME  specify the local directory where a gnulib
+                           repository (with a .git subdirectory) resides.
+                           Use this if you already have gnulib sources
+                           and history on your machine, and do not want
+                           to waste your bandwidth downloading them again.
+                           Defaults to \$GNULIB_REFDIR
+  --bootstrap-sync         if this bootstrap script is not identical to
+                           the version in the local gnulib sources,
+                           update this script, and then restart it with
+                           /bin/sh or the shell \$CONFIG_SHELL
+  --no-bootstrap-sync      do not check whether bootstrap is out of sync
+  --copy                   copy files instead of creating symbolic links
+  --force                  attempt to bootstrap even if the sources seem
+                           not to have been checked out
+  --no-git                 do not use git to update gnulib.  Requires that
+                           \$GNULIB_SRCDIR or the --gnulib-srcdir option
+                           points to a gnulib repository with the correct
+                           revision
+  --skip-po                do not download po files
 EOF
   bootstrap_print_option_usage_hook
   cat <<EOF
-If the file $me.conf exists in the same directory as this script, its
+If the file bootstrap.conf exists in the same directory as this script, its
 contents are read as shell variables to configure the bootstrap.
 
 For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
@@ -82,261 +83,47 @@
 
 Gnulib sources can be fetched in various ways:
 
- * If this package is in a git repository with a 'gnulib' submodule
-   configured, then that submodule is initialized and updated and sources
-   are fetched from there.  If \$GNULIB_SRCDIR is set (directly or via
-   --gnulib-srcdir) and is a git repository, then it is used as a reference.
-
- * Otherwise, if \$GNULIB_SRCDIR is set (directly or via --gnulib-srcdir),
-   then sources are fetched from that local directory.  If it is a git
-   repository and \$GNULIB_REVISION is set, then that revision is checked
-   out.
+ * If the environment variable GNULIB_SRCDIR is set (either as an
+   environment variable or via the --gnulib-srcdir option), then sources
+   are fetched from that local directory.  If it is a git repository and
+   the configuration variable GNULIB_REVISION is set in bootstrap.conf,
+   then that revision is checked out.
 
  * Otherwise, if this package is in a git repository with a 'gnulib'
-   submodule configured, then that submodule is initialized and updated and
-   sources are fetched from there.
+   submodule configured, then that submodule is initialized and updated
+   and sources are fetched from there.  If GNULIB_REFDIR is set (either
+   as an environment variable or via the --gnulib-refdir option) and is
+   a git repository, then it is used as a reference.
 
- * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources are
-   cloned into that directory using git from \$GNULIB_URL, defaulting to
-   $default_gnulib_url.
-   If \$GNULIB_REVISION is set, then that revision is checked out.
+ * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
+   are cloned into that directory using git from \$GNULIB_URL, defaulting
+   to $default_gnulib_url.
+   If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
+   then that revision is checked out.
 
  * Otherwise, the existing Gnulib sources in the 'gnulib' directory are
-   used.  If it is a git repository and \$GNULIB_REVISION is set, then that
-   revision is checked out.
+   used.  If it is a git repository and the configuration variable
+   GNULIB_REVISION is set in bootstrap.conf, then that revision is
+   checked out.
 
 If you maintain a package and want to pin a particular revision of the
-Gnulib sources that has been tested with your package, then there are two
-possible approaches: either configure a 'gnulib' submodule with the
-appropriate revision, or set \$GNULIB_REVISION (and if necessary
-\$GNULIB_URL) in $me.conf.
+Gnulib sources that has been tested with your package, then there are
+two possible approaches: either configure a 'gnulib' submodule with the
+appropriate revision, or set GNULIB_REVISION (and if necessary
+GNULIB_URL) in bootstrap.conf.
 
 Running without arguments will suffice in most cases.
 EOF
 }
 
-copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'`
-copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law."
-
-# warnf_ FORMAT-STRING ARG1...
-warnf_ ()
-{
-  warnf_format_=$1
-  shift
-  nl='
-'
-  case $* in
-    *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
-       printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
-    *) printf "$me: $warnf_format_" "$@" ;;
-  esac >&2
-}
-
-# warn_ WORD1...
-warn_ ()
-{
-  # If IFS does not start with ' ', set it and emit the warning in a subshell.
-  case $IFS in
-    ' '*) warnf_ '%s\n' "$*";;
-    *)    (IFS=' '; warn_ "$@");;
-  esac
-}
-
-# die WORD1...
-die() { warn_ "$@"; exit 1; }
-
-# Configuration.
-
-# Name of the Makefile.am
-gnulib_mk=gnulib.mk
-
-# List of gnulib modules needed.
-gnulib_modules=
-
-# Any gnulib files needed that are not in modules.
-gnulib_files=
-
-: ${AUTOPOINT=autopoint}
-: ${AUTORECONF=autoreconf}
-
-# A function to be called for each unrecognized option.  Returns 0 if
-# the option in $1 has been processed by the function.  Returns 1 if
-# the option has not been processed by the function.  Override it via
-# your own definition in bootstrap.conf
-
-bootstrap_option_hook() { return 1; }
-
-# A function to be called in order to print the --help information
-# corresponding to user-defined command-line options.
-
-bootstrap_print_option_usage_hook() { :; }
-
-# A function to be called right after gnulib-tool is run.
-# Override it via your own definition in bootstrap.conf.
-bootstrap_post_import_hook() { :; }
-
-# A function to be called after everything else in this script.
-# Override it via your own definition in bootstrap.conf.
-bootstrap_epilogue() { :; }
-
-# The command to download all .po files for a specified domain into a
-# specified directory.  Fill in the first %s with the destination
-# directory and the second with the domain name.
-po_download_command_format=\
-"wget --mirror --level=1 -nd -nv -A.po -P '%s' \
- https://translationproject.org/latest/%s/"
-
-# Prefer a non-empty tarname (4th argument of AC_INIT if given), else
-# fall back to the package name (1st argument with munging).
-extract_package_name='
-  /^AC_INIT(\[*/{
-     s///
-     /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{
-       s//\1/
-       s/[],)].*//
-       p
-       q
-     }
-     s/[],)].*//
-     s/^GNU //
-     y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
-     s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g
-     p
-  }
-'
-package=$(${AUTOCONF:-autoconf} --trace AC_INIT:\$4 configure.ac 2>/dev/null)
-if test -z "$package"; then
-  package=$(sed -n "$extract_package_name" configure.ac) \
-      || die 'cannot find package name in configure.ac'
-fi
-gnulib_name=lib$package
-
-build_aux=build-aux
-source_base=lib
-m4_base=m4
-doc_base=doc
-tests_base=tests
-gnulib_extra_files="
-        build-aux/install-sh
-        build-aux/mdate-sh
-        build-aux/texinfo.tex
-        build-aux/depcomp
-        build-aux/config.guess
-        build-aux/config.sub
-        doc/INSTALL
-"
-
-# Additional gnulib-tool options to use.  Use "\newline" to break lines.
-gnulib_tool_option_extras=
-
-# Other locale categories that need message catalogs.
-EXTRA_LOCALE_CATEGORIES=
-
-# Additional xgettext options to use.  Use "\\\newline" to break lines.
-XGETTEXT_OPTIONS='\\\
- --flag=_:1:pass-c-format\\\
- --flag=N_:1:pass-c-format\\\
- --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
-'
-
-# Package bug report address and copyright holder for gettext files
-COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
-MSGID_BUGS_ADDRESS=bug-$package@gnu.org
-
-# Files we don't want to import.
-excluded_files=
-
-# File that should exist in the top directory of a checked out hierarchy,
-# but not in a distribution tarball.
-checkout_only_file=README-hacking
+# Parse options.
 
 # Whether to use copies instead of symlinks.
 copy=false
 
-# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
-# those files to be generated in directories like lib/, m4/, and po/.
-# Or set it to 'auto' to make this script select which to use based
-# on which version control system (if any) is used in the source directory.
-vc_ignore=auto
-
-# Set this to true in bootstrap.conf to enable --bootstrap-sync by
-# default.
-bootstrap_sync=false
-
 # Use git to update gnulib sources
 use_git=true
 
-check_exists() {
-  if test "$1" = "--verbose"; then
-    ($2 --version </dev/null) >/dev/null 2>&1
-    if test $? -ge 126; then
-      # If not found, run with diagnostics as one may be
-      # presented with env variables to set to find the right version
-      ($2 --version </dev/null)
-    fi
-  else
-    ($1 --version </dev/null) >/dev/null 2>&1
-  fi
-
-  test $? -lt 126
-}
-
-# find_tool ENVVAR NAMES...
-# -------------------------
-# Search for a required program.  Use the value of ENVVAR, if set,
-# otherwise find the first of the NAMES that can be run.
-# If found, set ENVVAR to the program name, die otherwise.
-#
-# FIXME: code duplication, see also gnu-web-doc-update.
-find_tool ()
-{
-  find_tool_envvar=$1
-  shift
-  find_tool_names=$@
-  eval "find_tool_res=\$$find_tool_envvar"
-  if test x"$find_tool_res" = x; then
-    for i; do
-      if check_exists $i; then
-        find_tool_res=$i
-        break
-      fi
-    done
-  fi
-  if test x"$find_tool_res" = x; then
-    warn_ "one of these is required: $find_tool_names;"
-    die   "alternatively set $find_tool_envvar to a compatible tool"
-  fi
-  eval "$find_tool_envvar=\$find_tool_res"
-  eval "export $find_tool_envvar"
-}
-
-# Override the default configuration, if necessary.
-# Make sure that bootstrap.conf is sourced from the current directory
-# if we were invoked as "sh bootstrap".
-case "$0" in
-  */*) test -r "$0.conf" && . "$0.conf" ;;
-  *) test -r "$0.conf" && . ./"$0.conf" ;;
-esac
-
-if test "$vc_ignore" = auto; then
-  vc_ignore=
-  test -d .git && vc_ignore=.gitignore
-  test -d CVS && vc_ignore="$vc_ignore .cvsignore"
-fi
-
-if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
-  use_gnulib=false
-else
-  use_gnulib=true
-fi
-
-# Translate configuration into internal form.
-
-# Parse options.
-
 for option
 do
   case $option in
@@ -351,6 +138,8 @@
     ;;
   --gnulib-srcdir=*)
     GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
+  --gnulib-refdir=*)
+    GNULIB_REFDIR=${option#--gnulib-refdir=};;
   --skip-po)
     SKIP_PO=t;;
   --force)
@@ -368,741 +157,55 @@
   esac
 done
 
-$use_git || test -d "$GNULIB_SRCDIR" \
-  || die "Error: --no-git requires --gnulib-srcdir"
+$use_git || test -n "$GNULIB_SRCDIR" \
+  || die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option"
+test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
+  || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
 
 if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
   die "Bootstrapping from a non-checked-out distribution is risky."
 fi
 
-# Strip blank and comment lines to leave significant entries.
-gitignore_entries() {
-  sed '/^#/d; /^$/d' "$@"
-}
-
-# If $STR is not already on a line by itself in $FILE, insert it at the start.
-# Entries are inserted at the start of the ignore list to ensure existing
-# entries starting with ! are not overridden.  Such entries support
-# whitelisting exceptions after a more generic blacklist pattern.
-insert_if_absent() {
-  file=$1
-  str=$2
-  test -f $file || touch $file
-  test -r $file || die "Error: failed to read ignore file: $file"
-  duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
-  if [ "$duplicate_entries" ] ; then
-    die "Error: Duplicate entries in $file: " $duplicate_entries
-  fi
-  linesold=$(gitignore_entries $file | wc -l)
-  linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
-  if [ $linesold != $linesnew ] ; then
-    { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
-      || die "insert_if_absent $file $str: failed"
-  fi
-}
+check_build_prerequisites $use_git
 
-# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
-# insert_if_absent.
-insert_vc_ignore() {
-  vc_ignore_file="$1"
-  pattern="$2"
-  case $vc_ignore_file in
-  *.gitignore)
-    # A .gitignore entry that does not start with '/' applies
-    # recursively to subdirectories, so prepend '/' to every
-    # .gitignore entry.
-    pattern=$(echo "$pattern" | sed s,^,/,);;
-  esac
-  insert_if_absent "$vc_ignore_file" "$pattern"
-}
-
-# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
-found_aux_dir=no
-grep '^[	 ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
-    >/dev/null && found_aux_dir=yes
-grep '^[	 ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
-    >/dev/null && found_aux_dir=yes
-test $found_aux_dir = yes \
-  || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it"
-
-# If $build_aux doesn't exist, create it now, otherwise some bits
-# below will malfunction.  If creating it, also mark it as ignored.
-if test ! -d $build_aux; then
-  mkdir $build_aux
-  for dot_ig in x $vc_ignore; do
-    test $dot_ig = x && continue
-    insert_vc_ignore $dot_ig $build_aux
-  done
+if ! test -f "$medir"/bootstrap-funclib.sh; then
+  # We have only completed the first phase of an upgrade from a bootstrap
+  # version < 2022-07-24. Need to do the second phase now.
+  bootstrap_sync=true
 fi
 
-# Note this deviates from the version comparison in automake
-# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
-# but this should suffice as we won't be specifying old
-# version formats or redundant trailing .0 in bootstrap.conf.
-# If we did want full compatibility then we should probably
-# use m4_version_compare from autoconf.
-sort_ver() { # sort -V is not generally available
-  ver1="$1"
-  ver2="$2"
-
-  # split on '.' and compare each component
-  i=1
-  while : ; do
-    p1=$(echo "$ver1" | cut -d. -f$i)
-    p2=$(echo "$ver2" | cut -d. -f$i)
-    if [ ! "$p1" ]; then
-      echo "$1 $2"
-      break
-    elif [ ! "$p2" ]; then
-      echo "$2 $1"
-      break
-    elif [ ! "$p1" = "$p2" ]; then
-      if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
-        echo "$2 $1"
-      elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
-        echo "$1 $2"
-      else # numeric, then lexicographic comparison
-        lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
-        if [ "$lp" = "$p2" ]; then
-          echo "$1 $2"
-        else
-          echo "$2 $1"
-        fi
-      fi
-      break
-    fi
-    i=$(($i+1))
-  done
-}
-
-get_version_sed='
-# Move version to start of line.
-s/.*[v ]\([0-9]\)/\1/
-
-# Skip lines that do not start with version.
-/^[0-9]/!d
-
-# Remove characters after the version.
-s/[^.a-z0-9-].*//
-
-# The first component must be digits only.
-s/^\([0-9]*\)[a-z-].*/\1/
-
-#the following essentially does s/5.005/5.5/
-s/\.0*\([1-9]\)/.\1/g
-p
-q'
-
-get_version() {
-  app=$1
-
-  $app --version >/dev/null 2>&1 || { $app --version; return 1; }
-
-  $app --version 2>&1 | sed -n "$get_version_sed"
-}
-
-check_versions() {
-  ret=0
-
-  while read app req_ver; do
-    # We only need libtoolize from the libtool package.
-    if test "$app" = libtool; then
-      app=libtoolize
-    fi
-    # Exempt git if --no-git is in effect.
-    if test "$app" = git; then
-      $use_git || continue
-    fi
-    # Honor $APP variables ($TAR, $AUTOCONF, etc.)
-    appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
-    test "$appvar" = TAR && appvar=AMTAR
-    case $appvar in
-        GZIP) ;; # Do not use $GZIP:  it contains gzip options.
-        PERL::*) ;; # Keep perl modules as-is
-        *) eval "app=\${$appvar-$app}" ;;
-    esac
-
-    # Handle the still-experimental Automake-NG programs specially.
-    # They remain named as the mainstream Automake programs ("automake",
-    # and "aclocal") to avoid gratuitous incompatibilities with
-    # pre-existing usages (by, say, autoreconf, or custom autogen.sh
-    # scripts), but correctly identify themselves (as being part of
-    # "GNU automake-ng") when asked their version.
-    case $app in
-      automake-ng|aclocal-ng)
-        app=${app%-ng}
-        ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || {
-          warn_ "Error: '$app' not found or not from Automake-NG"
-          ret=1
-          continue
-        } ;;
-      # Another check is for perl modules.  These can be written as
-      # e.g. perl::XML::XPath in case of XML::XPath module, etc.
-      perl::*)
-        # Extract module name
-        app="${app#perl::}"
-        if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then
-          warn_ "Error: perl module '$app' not found"
-          ret=1
-        fi
-        continue
-        ;;
-    esac
-    if [ "$req_ver" = "-" ]; then
-      # Merely require app to exist; not all prereq apps are well-behaved
-      # so we have to rely on $? rather than get_version.
-      if ! check_exists --verbose $app; then
-        warn_ "Error: '$app' not found"
-        ret=1
-      fi
-    else
-      # Require app to produce a new enough version string.
-      inst_ver=$(get_version $app)
-      if [ ! "$inst_ver" ]; then
-        warn_ "Error: '$app' not found"
-        ret=1
-      else
-        latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
-        if [ ! "$latest_ver" = "$inst_ver" ]; then
-          warnf_ '%s\n'                                        \
-              "Error: '$app' version == $inst_ver is too old"  \
-              "       '$app' version >= $req_ver is required"
-          ret=1
-        fi
-      fi
-    fi
-  done
-
-  return $ret
-}
-
-print_versions() {
-  echo "Program    Min_version"
-  echo "----------------------"
-  printf %s "$buildreq"
-  echo "----------------------"
-  # can't depend on column -t
-}
-
-# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6.
-# Also find the compatible sha1 utility on the BSDs
-if test x"$SKIP_PO" = x; then
-  find_tool SHA1SUM sha1sum gsha1sum shasum sha1
-fi
-
-use_libtool=0
-# We'd like to use grep -E, to see if any of LT_INIT,
-# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
-# but that's not portable enough (e.g., for Solaris).
-grep '^[	 ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
-  && use_libtool=1
-grep '^[	 ]*LT_INIT' configure.ac >/dev/null \
-  && use_libtool=1
-if test $use_libtool = 1; then
-  find_tool LIBTOOLIZE glibtoolize libtoolize
-fi
-
-# gnulib-tool requires at least automake and autoconf.
-# If either is not listed, add it (with minimum version) as a prerequisite.
-case $buildreq in
-  *automake*) ;;
-  *) buildreq="automake 1.9
-$buildreq" ;;
-esac
-case $buildreq in
-  *autoconf*) ;;
-  *) buildreq="autoconf 2.59
-$buildreq" ;;
-esac
-
-# When we can deduce that gnulib-tool will require patch,
-# and when patch is not already listed as a prerequisite, add it, too.
-if test -d "$local_gl_dir" \
-    && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
-  case $buildreq in
-    *patch*) ;;
-    *) buildreq="patch -
-$buildreq" ;;
-  esac
-fi
-
-if ! printf "$buildreq" | check_versions; then
-  echo >&2
-  if test -f README-prereq; then
-    die "See README-prereq for how to get the prerequisite programs"
-  else
-    die "Please install the prerequisite programs"
-  fi
-fi
-
-# Warn the user if autom4te appears to be broken; this causes known
-# issues with at least gettext 0.18.3.
-probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
-if test "x$probe" != xhi; then
-  warn_ "WARNING: your autom4te wrapper eats stdin;"
-  warn_ "if bootstrap fails, consider upgrading your autotools"
+if $bootstrap_sync; then
+  prepare_GNULIB_SRCDIR
+  upgrade_bootstrap
+  # Since we have now upgraded if needed, no need to try it a second time below.
+  bootstrap_sync=false
 fi
 
 echo "$0: Bootstrapping from checked-out $package sources..."
 
-# See if we can use gnulib's git-merge-changelog merge driver.
-if $use_git && test -d .git && check_exists git; then
-  if git config merge.merge-changelog.driver >/dev/null ; then
-    :
-  elif check_exists git-merge-changelog; then
-    echo "$0: initializing git-merge-changelog driver"
-    git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
-    git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
-  else
-    echo "$0: consider installing git-merge-changelog from gnulib"
-  fi
-fi
-
-
-cleanup_gnulib() {
-  status=$?
-  rm -fr "$gnulib_path"
-  exit $status
-}
-
-git_modules_config () {
-  test -f .gitmodules && git config --file .gitmodules "$@"
-}
+# Pass GNULIB_SRCDIR to autopull.sh and autogen.sh.
+export GNULIB_SRCDIR
 
-if $use_gnulib; then
-  if $use_git; then
-    gnulib_path=$(git_modules_config submodule.gnulib.path)
-    test -z "$gnulib_path" && gnulib_path=gnulib
-  fi
-
-  # Get gnulib files.  Populate $GNULIB_SRCDIR, possibly updating a
-  # submodule, for use in the rest of the script.
-
-  case ${GNULIB_SRCDIR--} in
-  -)
-    # Note that $use_git is necessarily true in this case.
-    if git_modules_config submodule.gnulib.url >/dev/null; then
-      echo "$0: getting gnulib files..."
-      git submodule init -- "$gnulib_path" || exit $?
-      git submodule update -- "$gnulib_path" || exit $?
-
-    elif [ ! -d "$gnulib_path" ]; then
-      echo "$0: getting gnulib files..."
-
-      trap cleanup_gnulib 1 2 13 15
-
-      shallow=
-      if test -z "$GNULIB_REVISION"; then
-        git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
-      fi
-      git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
-        || cleanup_gnulib
-
-      trap - 1 2 13 15
+# Pass GNULIB_REFDIR to autopull.sh.
+export GNULIB_REFDIR
 
-    elif test -n "$GNULIB_REVISION" \
-         && ! git --git-dir="$gnulib_path"/.git cat-file \
-              commit "$GNULIB_REVISION"; then
-      git --git-dir="$gnulib_path"/.git fetch
-    fi
-    GNULIB_SRCDIR=$gnulib_path
-    ;;
-  *)
-    # Use GNULIB_SRCDIR directly or as a reference.
-    if $use_git && test -d "$GNULIB_SRCDIR"/.git && \
-          git_modules_config submodule.gnulib.url >/dev/null; then
-      echo "$0: getting gnulib files..."
-      if git submodule -h|grep -- --reference > /dev/null; then
-        # Prefer the one-liner available in git 1.6.4 or newer.
-        git submodule update --init --reference "$GNULIB_SRCDIR" \
-          "$gnulib_path" || exit $?
-      else
-        # This fallback allows at least git 1.5.5.
-        if test -f "$gnulib_path"/gnulib-tool; then
-          # Since file already exists, assume submodule init already complete.
-          git submodule update -- "$gnulib_path" || exit $?
-        else
-          # Older git can't clone into an empty directory.
-          rmdir "$gnulib_path" 2>/dev/null
-          git clone --reference "$GNULIB_SRCDIR" \
-            "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
-            && git submodule init -- "$gnulib_path" \
-            && git submodule update -- "$gnulib_path" \
-            || exit $?
-        fi
-      fi
-      GNULIB_SRCDIR=$gnulib_path
-    fi
-    ;;
-  esac
-
-  if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \
-     && ! git_modules_config submodule.gnulib.url >/dev/null; then
-    if ! git --git-dir="$GNULIB_SRCDIR"/.git cat-file \
-         commit "$GNULIB_REVISION"; then
-      git --git-dir="$GNULIB_SRCDIR"/.git fetch
-    fi
-    (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib
-  fi
-
-  # $GNULIB_SRCDIR now points to the version of gnulib to use, and
-  # we no longer need to use git or $gnulib_path below here.
-
-  if $bootstrap_sync; then
-    cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
-      echo "$0: updating bootstrap and restarting..."
-      case $(sh -c 'echo "$1"' -- a) in
-        a) ignored=--;;
-        *) ignored=ignored;;
-      esac
-      exec sh -c \
-        'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
-        $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
-        "$0" "$@" --no-bootstrap-sync
-    }
-  fi
-
-  gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
-  <$gnulib_tool || exit $?
+if $use_git || test -z "$SKIP_PO"; then
+  "$medir"/autopull.sh \
+      `if $bootstrap_sync; then echo ' --bootstrap-sync'; else echo ' --no-bootstrap-sync'; fi` \
+      `if test -z "$checkout_only_file"; then echo ' --force'; fi` \
+      `if ! $use_git; then echo ' --no-git'; fi` \
+      `if test -n "$SKIP_PO"; then echo ' --skip-po'; fi` \
+    || die "autopull.sh failed."
 fi
 
-# Get translations.
-
-download_po_files() {
-  subdir=$1
-  domain=$2
-  echo "$me: getting translations into $subdir for $domain..."
-  cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
-  eval "$cmd"
-}
-
-# Mirror .po files to $po_dir/.reference and copy only the new
-# or modified ones into $po_dir.  Also update $po_dir/LINGUAS.
-# Note po files that exist locally only are left in $po_dir but will
-# not be included in LINGUAS and hence will not be distributed.
-update_po_files() {
-  # Directory containing primary .po files.
-  # Overwrite them only when we're sure a .po file is new.
-  po_dir=$1
-  domain=$2
-
-  # Mirror *.po files into this dir.
-  # Usually contains *.s1 checksum files.
-  ref_po_dir="$po_dir/.reference"
-
-  test -d $ref_po_dir || mkdir $ref_po_dir || return
-  download_po_files $ref_po_dir $domain \
-    && ls "$ref_po_dir"/*.po 2>/dev/null |
-      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
-
-  langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
-  test "$langs" = '*' && langs=x
-  for po in $langs; do
-    case $po in x) continue;; esac
-    new_po="$ref_po_dir/$po.po"
-    cksum_file="$ref_po_dir/$po.s1"
-    if ! test -f "$cksum_file" ||
-        ! test -f "$po_dir/$po.po" ||
-        ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then
-      echo "$me: updated $po_dir/$po.po..."
-      cp "$new_po" "$po_dir/$po.po" \
-          && $SHA1SUM < "$new_po" > "$cksum_file" || return
-    fi
-  done
-}
-
-case $SKIP_PO in
-'')
-  if test -d po; then
-    update_po_files po $package || exit
-  fi
-
-  if test -d runtime-po; then
-    update_po_files runtime-po $package-runtime || exit
-  fi;;
-esac
-
-symlink_to_dir()
-{
-  src=$1/$2
-  dst=${3-$2}
-
-  test -f "$src" && {
-
-    # If the destination directory doesn't exist, create it.
-    # This is required at least for "lib/uniwidth/cjk.h".
-    dst_dir=$(dirname "$dst")
-    if ! test -d "$dst_dir"; then
-      mkdir -p "$dst_dir"
-
-      # If we've just created a directory like lib/uniwidth,
-      # tell version control system(s) it's ignorable.
-      # FIXME: for now, this does only one level
-      parent=$(dirname "$dst_dir")
-      for dot_ig in x $vc_ignore; do
-        test $dot_ig = x && continue
-        ig=$parent/$dot_ig
-        insert_vc_ignore $ig "${dst_dir##*/}"
-      done
-    fi
-
-    if $copy; then
-      {
-        test ! -h "$dst" || {
-          echo "$me: rm -f $dst" &&
-          rm -f "$dst"
-        }
-      } &&
-      test -f "$dst" &&
-      cmp -s "$src" "$dst" || {
-        echo "$me: cp -fp $src $dst" &&
-        cp -fp "$src" "$dst"
-      }
-    else
-      # Leave any existing symlink alone, if it already points to the source,
-      # so that broken build tools that care about symlink times
-      # aren't confused into doing unnecessary builds.  Conversely, if the
-      # existing symlink's timestamp is older than the source, make it afresh,
-      # so that broken tools aren't confused into skipping needed builds.  See
-      # <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
-      test -h "$dst" &&
-      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
-      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
-      test "$src_i" = "$dst_i" &&
-      both_ls=$(ls -dt "$src" "$dst") &&
-      test "X$both_ls" = "X$dst$nl$src" || {
-        dot_dots=
-        case $src in
-        /*) ;;
-        *)
-          case /$dst/ in
-          *//* | */../* | */./* | /*/*/*/*/*/)
-             die "invalid symlink calculation: $src -> $dst";;
-          /*/*/*/*/)    dot_dots=../../../;;
-          /*/*/*/)      dot_dots=../../;;
-          /*/*/)        dot_dots=../;;
-          esac;;
-        esac
-
-        echo "$me: ln -fs $dot_dots$src $dst" &&
-        ln -fs "$dot_dots$src" "$dst"
-      }
-    fi
-  }
-}
-
-version_controlled_file() {
-  parent=$1
-  file=$2
-  if test -d .git; then
-    git rm -n "$file" > /dev/null 2>&1
-  elif test -d .svn; then
-    svn log -r HEAD "$file" > /dev/null 2>&1
-  elif test -d CVS; then
-    grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
-             grep '^/[^/]*/[0-9]' > /dev/null
-  else
-    warn_ "no version control for $file?"
-    false
-  fi
-}
-
-# NOTE: we have to be careful to run both autopoint and libtoolize
-# before gnulib-tool, since gnulib-tool is likely to provide newer
-# versions of files "installed" by these two programs.
-# Then, *after* gnulib-tool (see below), we have to be careful to
-# run autoreconf in such a way that it does not run either of these
-# two just-pre-run programs.
-
-# Import from gettext.
-with_gettext=yes
-grep '^[	 ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
-    with_gettext=no
-
-if test $with_gettext = yes || test $use_libtool = 1; then
-
-  tempbase=.bootstrap$$
-  trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15
-
-  > $tempbase.0 > $tempbase.1 &&
-  find . ! -type d -print | sort > $tempbase.0 || exit
-
-  if test $with_gettext = yes; then
-    # Released autopoint has the tendency to install macros that have been
-    # obsoleted in current gnulib, so run this before gnulib-tool.
-    echo "$0: $AUTOPOINT --force"
-    $AUTOPOINT --force || exit
-  fi
+"$medir"/autogen.sh \
+    `if $copy; then echo ' --copy'; fi` \
+    `if test -z "$checkout_only_file"; then echo ' --force'; fi` \
+  || die "autogen.sh failed."
 
-  # Autoreconf runs aclocal before libtoolize, which causes spurious
-  # warnings if the initial aclocal is confused by the libtoolized
-  # (or worse out-of-date) macro directory.
-  # libtoolize 1.9b added the --install option; but we support back
-  # to libtoolize 1.5.22, where the install action was default.
-  if test $use_libtool = 1; then
-    install=
-    case $($LIBTOOLIZE --help) in
-      *--install*) install=--install ;;
-    esac
-    echo "running: $LIBTOOLIZE $install --copy"
-    $LIBTOOLIZE $install --copy
-  fi
-
-  find . ! -type d -print | sort >$tempbase.1
-  old_IFS=$IFS
-  IFS=$nl
-  for file in $(comm -13 $tempbase.0 $tempbase.1); do
-    IFS=$old_IFS
-    parent=${file%/*}
-    version_controlled_file "$parent" "$file" || {
-      for dot_ig in x $vc_ignore; do
-        test $dot_ig = x && continue
-        ig=$parent/$dot_ig
-        insert_vc_ignore "$ig" "${file##*/}"
-      done
-    }
-  done
-  IFS=$old_IFS
-
-  rm -f $tempbase.0 $tempbase.1
-  trap - 1 2 13 15
-fi
-
-# Import from gnulib.
-
-if $use_gnulib; then
-  gnulib_tool_options="\
-   --no-changelog\
-   --aux-dir=$build_aux\
-   --doc-base=$doc_base\
-   --lib=$gnulib_name\
-   --m4-base=$m4_base/\
-   --source-base=$source_base/\
-   --tests-base=$tests_base\
-   --local-dir=$local_gl_dir\
-   $gnulib_tool_option_extras\
-  "
-  if test $use_libtool = 1; then
-    case "$gnulib_tool_options " in
-      *' --libtool '*) ;;
-      *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
-    esac
-  fi
-  echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
-  $gnulib_tool $gnulib_tool_options --import $gnulib_modules \
-    || die "gnulib-tool failed"
-
-  for file in $gnulib_files; do
-    symlink_to_dir "$GNULIB_SRCDIR" $file \
-      || die "failed to symlink $file"
-  done
-fi
-
-bootstrap_post_import_hook \
-  || die "bootstrap_post_import_hook failed"
-
-# Don't proceed if there are uninitialized submodules.  In particular,
-# the next step will remove dangling links, which might be links into
-# uninitialized submodules.
-#
-# Uninitialized submodules are listed with an initial dash.
-if $use_git && git submodule | grep '^-' >/dev/null; then
-  die "some git submodules are not initialized. "     \
-      "Run 'git submodule update --init' and bootstrap again."
-fi
+# ----------------------------------------------------------------------------
 
-# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
-# gnulib-populated directories.  Such .m4 files would cause aclocal to fail.
-# The following requires GNU find 4.2.3 or newer.  Considering the usual
-# portability constraints of this script, that may seem a very demanding
-# requirement, but it should be ok.  Ignore any failure, which is fine,
-# since this is only a convenience to help developers avoid the relatively
-# unusual case in which a symlinked-to .m4 file is git-removed from gnulib
-# between successive runs of this script.
-find "$m4_base" "$source_base" \
-  -depth \( -name '*.m4' -o -name '*.[ch]' \) \
-  -type l -xtype l -delete > /dev/null 2>&1
-
-# Invoke autoreconf with --force --install to ensure upgrades of tools
-# such as ylwrap.
-AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS"
-
-# Some systems (RHEL 5) are using ancient autotools, for which the
-# --no-recursive option had not been invented.  Detect that lack and
-# omit the option when it's not supported.  FIXME in 2017: remove this
-# hack when RHEL 5 autotools are updated, or when they become irrelevant.
-case $($AUTORECONF --help) in
-  *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
-esac
-
-# Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
-echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS"
-AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \
-  || die "autoreconf failed"
-
-# Get some extra files from gnulib, overriding existing files.
-for file in $gnulib_extra_files; do
-  case $file in
-  */INSTALL) dst=INSTALL;;
-  build-aux/*) dst=$build_aux/${file#build-aux/};;
-  *) dst=$file;;
-  esac
-  symlink_to_dir "$GNULIB_SRCDIR" $file $dst \
-    || die "failed to symlink $file"
-done
-
-if test $with_gettext = yes; then
-  # Create gettext configuration.
-  echo "$0: Creating po/Makevars from po/Makevars.template ..."
-  rm -f po/Makevars
-  sed '
-    /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
-    /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
-    /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
-    /^XGETTEXT_OPTIONS *=/{
-      s/$/ \\/
-      a\
-          '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
-    }
-  ' po/Makevars.template >po/Makevars \
-    || die 'cannot generate po/Makevars'
-
-  # If the 'gettext' module is in use, grab the latest Makefile.in.in.
-  # If only the 'gettext-h' module is in use, assume autopoint already
-  # put the correct version of this file into place.
-  case $gnulib_modules in
-  *gettext-h*) ;;
-  *gettext*)
-    cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \
-      || die "cannot create po/Makefile.in.in"
-    ;;
-  esac
-
-  if test -d runtime-po; then
-    # Similarly for runtime-po/Makevars, but not quite the same.
-    rm -f runtime-po/Makevars
-    sed '
-      /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
-      /^subdir *=.*/s/=.*/= runtime-po/
-      /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
-      /^XGETTEXT_OPTIONS *=/{
-        s/$/ \\/
-        a\
-            '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
-      }
-    ' po/Makevars.template >runtime-po/Makevars \
-    || die 'cannot generate runtime-po/Makevars'
-
-    # Copy identical files from po to runtime-po.
-    (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
-  fi
-fi
-
-bootstrap_epilogue
-
-echo "$0: done.  Now you can run './configure'."
-
-# Local variables:
+# Local Variables:
 # eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bootstrap-funclib.sh	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,603 @@
+# A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
+
+# Copyright (C) 2003-2022 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+# Originally written by Paul Eggert.  The canonical version of this
+# script is maintained as top/bootstrap-funclib.sh in gnulib.  However,
+# to be useful to your package, you should place a copy of it under
+# version control in the top-level directory of your package.  The
+# intent is that all customization can be done with a bootstrap.conf
+# file also maintained in your version control; gnulib comes with a
+# template build-aux/bootstrap.conf to get you started.
+
+scriptversion=2022-07-24.15; # UTC
+
+nl='
+'
+
+# Ensure file names are sorted consistently across platforms.
+LC_ALL=C
+export LC_ALL
+
+# Honor $PERL, but work even if there is none.
+PERL="${PERL-perl}"
+
+default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git
+
+# Copyright year, for the --version output.
+copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'`
+copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+
+# warnf_ FORMAT-STRING ARG1...
+warnf_ ()
+{
+  warnf_format_=$1
+  shift
+  nl='
+'
+  case $* in
+    *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
+       printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
+    *) printf "$me: $warnf_format_" "$@" ;;
+  esac >&2
+}
+
+# warn_ WORD1...
+warn_ ()
+{
+  # If IFS does not start with ' ', set it and emit the warning in a subshell.
+  case $IFS in
+    ' '*) warnf_ '%s\n' "$*";;
+    *)    (IFS=' '; warn_ "$@");;
+  esac
+}
+
+# die WORD1...
+die() { warn_ "$@"; exit 1; }
+
+# ------------------------------ Configuration. ------------------------------
+
+# Directory that contains package-specific gnulib modules and/or overrides.
+local_gl_dir=gl
+
+# Name of the Makefile.am
+# XXX Not used.
+gnulib_mk=gnulib.mk
+
+# List of gnulib modules needed.
+gnulib_modules=
+
+# Any gnulib files needed that are not in modules.
+gnulib_files=
+
+# A function to be called for each unrecognized option.  Returns 0 if
+# the option in $1 has been processed by the function.  Returns 1 if
+# the option has not been processed by the function.  Override it via
+# your own definition in bootstrap.conf
+bootstrap_option_hook() { return 1; }
+
+# A function to be called in order to print the --help information
+# corresponding to user-defined command-line options.
+bootstrap_print_option_usage_hook() { :; }
+
+# A function to be called at the end of autopull.sh.
+# Override it via your own definition in bootstrap.conf.
+bootstrap_post_pull_hook() { :; }
+
+# A function to be called right after gnulib-tool is run.
+# Override it via your own definition in bootstrap.conf.
+bootstrap_post_import_hook() { :; }
+
+# A function to be called after everything else in this script.
+# Override it via your own definition in bootstrap.conf.
+bootstrap_epilogue() { :; }
+
+# The command to download all .po files for a specified domain into a
+# specified directory.  Fill in the first %s with the destination
+# directory and the second with the domain name.
+po_download_command_format=\
+"wget --mirror --level=1 -nd -nv -A.po -P '%s' \
+ https://translationproject.org/latest/%s/"
+
+# Prefer a non-empty tarname (4th argument of AC_INIT if given), else
+# fall back to the package name (1st argument with munging).
+extract_package_name='
+  /^AC_INIT(\[*/{
+     s///
+     /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{
+       s//\1/
+       s/[],)].*//
+       p
+       q
+     }
+     s/[],)].*//
+     s/^GNU //
+     y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+     s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g
+     p
+  }
+'
+package=$(${AUTOCONF:-autoconf} --trace AC_INIT:\$4 configure.ac 2>/dev/null)
+if test -z "$package"; then
+  package=$(sed -n "$extract_package_name" configure.ac) \
+      || die 'cannot find package name in configure.ac'
+fi
+gnulib_name=lib$package
+
+build_aux=build-aux
+source_base=lib
+m4_base=m4
+doc_base=doc
+tests_base=tests
+gnulib_extra_files="
+        build-aux/install-sh
+        build-aux/mdate-sh
+        build-aux/texinfo.tex
+        build-aux/depcomp
+        build-aux/config.guess
+        build-aux/config.sub
+        doc/INSTALL
+"
+
+# Additional gnulib-tool options to use.  Use "\newline" to break lines.
+gnulib_tool_option_extras=
+
+# Other locale categories that need message catalogs.
+EXTRA_LOCALE_CATEGORIES=
+
+# Additional xgettext options to use.  Use "\\\newline" to break lines.
+XGETTEXT_OPTIONS='\\\
+ --flag=_:1:pass-c-format\\\
+ --flag=N_:1:pass-c-format\\\
+ --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
+'
+
+# Package bug report address and copyright holder for gettext files
+COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
+MSGID_BUGS_ADDRESS=bug-$package@gnu.org
+
+# Files we don't want to import.
+# XXX Not used.
+excluded_files=
+
+# File that should exist in the top directory of a checked out hierarchy,
+# but not in a distribution tarball.
+checkout_only_file=README-hacking
+
+# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
+# those files to be generated in directories like lib/, m4/, and po/.
+# Or set it to 'auto' to make this script select which to use based
+# on which version control system (if any) is used in the source directory.
+vc_ignore=auto
+
+# Set this to true in bootstrap.conf to enable --bootstrap-sync by
+# default.
+bootstrap_sync=false
+
+# Override the default configuration, if necessary.
+# Make sure that bootstrap.conf is sourced from the current directory
+# if we were invoked as "sh bootstrap".
+conffile=`dirname "$me"`/bootstrap.conf
+test -r "$conffile" && . "$conffile"
+
+# ------------------------- Build-time prerequisites -------------------------
+
+check_exists() {
+  if test "$1" = "--verbose"; then
+    ($2 --version </dev/null) >/dev/null 2>&1
+    if test $? -ge 126; then
+      # If not found, run with diagnostics as one may be
+      # presented with env variables to set to find the right version
+      ($2 --version </dev/null)
+    fi
+  else
+    ($1 --version </dev/null) >/dev/null 2>&1
+  fi
+
+  test $? -lt 126
+}
+
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+sort_ver() { # sort -V is not generally available
+  ver1="$1"
+  ver2="$2"
+
+  # split on '.' and compare each component
+  i=1
+  while : ; do
+    p1=$(echo "$ver1" | cut -d. -f$i)
+    p2=$(echo "$ver2" | cut -d. -f$i)
+    if [ ! "$p1" ]; then
+      echo "$1 $2"
+      break
+    elif [ ! "$p2" ]; then
+      echo "$2 $1"
+      break
+    elif [ ! "$p1" = "$p2" ]; then
+      if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
+        echo "$2 $1"
+      elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
+        echo "$1 $2"
+      else # numeric, then lexicographic comparison
+        lp=$(printf "%s\n%s\n" "$p1" "$p2" | LANG=C sort -n | tail -n1)
+        if [ "$lp" = "$p2" ]; then
+          echo "$1 $2"
+        else
+          echo "$2 $1"
+        fi
+      fi
+      break
+    fi
+    i=$(($i+1))
+  done
+}
+
+get_version_sed='
+# Move version to start of line.
+s/.*[v ]\([0-9]\)/\1/
+
+# Skip lines that do not start with version.
+/^[0-9]/!d
+
+# Remove characters after the version.
+s/[^.a-z0-9-].*//
+
+# The first component must be digits only.
+s/^\([0-9]*\)[a-z-].*/\1/
+
+#the following essentially does s/5.005/5.5/
+s/\.0*\([1-9]\)/.\1/g
+p
+q'
+
+get_version() {
+  app=$1
+
+  $app --version >/dev/null 2>&1 || { $app --version; return 1; }
+
+  $app --version 2>&1 | sed -n "$get_version_sed"
+}
+
+check_versions() {
+  ret=0
+
+  while read app req_ver; do
+    # We only need libtoolize from the libtool package.
+    if test "$app" = libtool; then
+      app=libtoolize
+    fi
+    # Exempt git if git is not needed.
+    if test "$app" = git; then
+      $check_git || continue
+    fi
+    # Honor $APP variables ($TAR, $AUTOCONF, etc.)
+    appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
+    test "$appvar" = TAR && appvar=AMTAR
+    case $appvar in
+        GZIP) ;; # Do not use $GZIP:  it contains gzip options.
+        PERL::*) ;; # Keep perl modules as-is
+        *) eval "app=\${$appvar-$app}" ;;
+    esac
+
+    # Handle the still-experimental Automake-NG programs specially.
+    # They remain named as the mainstream Automake programs ("automake",
+    # and "aclocal") to avoid gratuitous incompatibilities with
+    # pre-existing usages (by, say, autoreconf, or custom autogen.sh
+    # scripts), but correctly identify themselves (as being part of
+    # "GNU automake-ng") when asked their version.
+    case $app in
+      automake-ng|aclocal-ng)
+        app=${app%-ng}
+        ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || {
+          warn_ "Error: '$app' not found or not from Automake-NG"
+          ret=1
+          continue
+        } ;;
+      # Another check is for perl modules.  These can be written as
+      # e.g. perl::XML::XPath in case of XML::XPath module, etc.
+      perl::*)
+        # Extract module name
+        app="${app#perl::}"
+        if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then
+          warn_ "Error: perl module '$app' not found"
+          ret=1
+        fi
+        continue
+        ;;
+    esac
+    if [ "$req_ver" = "-" ]; then
+      # Merely require app to exist; not all prereq apps are well-behaved
+      # so we have to rely on $? rather than get_version.
+      if ! check_exists --verbose $app; then
+        warn_ "Error: '$app' not found"
+        ret=1
+      fi
+    else
+      # Require app to produce a new enough version string.
+      inst_ver=$(get_version $app)
+      if [ ! "$inst_ver" ]; then
+        warn_ "Error: '$app' not found"
+        ret=1
+      else
+        latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
+        if [ ! "$latest_ver" = "$inst_ver" ]; then
+          warnf_ '%s\n'                                        \
+              "Error: '$app' version == $inst_ver is too old"  \
+              "       '$app' version >= $req_ver is required"
+          ret=1
+        fi
+      fi
+    fi
+  done
+
+  return $ret
+}
+
+print_versions() {
+  echo "Program    Min_version"
+  echo "----------------------"
+  printf %s "$buildreq"
+  echo "----------------------"
+  # can't depend on column -t
+}
+
+# check_build_prerequisites check_git
+check_build_prerequisites()
+{
+  check_git="$1"
+
+  # gnulib-tool requires at least automake and autoconf.
+  # If either is not listed, add it (with minimum version) as a prerequisite.
+  case $buildreq in
+    *automake*) ;;
+    *) buildreq="automake 1.9
+$buildreq" ;;
+  esac
+  case $buildreq in
+    *autoconf*) ;;
+    *) buildreq="autoconf 2.59
+$buildreq" ;;
+  esac
+
+  # When we can deduce that gnulib-tool will require patch,
+  # and when patch is not already listed as a prerequisite, add it, too.
+  if test -d "$local_gl_dir" \
+     && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
+    case $buildreq in
+      *patch*) ;;
+      *) buildreq="patch -
+$buildreq" ;;
+    esac
+  fi
+
+  if ! printf '%s' "$buildreq" | check_versions; then
+    echo >&2
+    if test -f README-prereq; then
+      die "See README-prereq for how to get the prerequisite programs"
+    else
+      die "Please install the prerequisite programs"
+    fi
+  fi
+
+  # Warn the user if autom4te appears to be broken; this causes known
+  # issues with at least gettext 0.18.3.
+  probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
+  if test "x$probe" != xhi; then
+    warn_ "WARNING: your autom4te wrapper eats stdin;"
+    warn_ "if bootstrap fails, consider upgrading your autotools"
+  fi
+}
+
+# find_tool ENVVAR NAMES...
+# -------------------------
+# Search for a required program.  Use the value of ENVVAR, if set,
+# otherwise find the first of the NAMES that can be run.
+# If found, set ENVVAR to the program name, die otherwise.
+#
+# FIXME: code duplication, see also gnu-web-doc-update.
+find_tool ()
+{
+  find_tool_envvar=$1
+  shift
+  find_tool_names=$@
+  eval "find_tool_res=\$$find_tool_envvar"
+  if test x"$find_tool_res" = x; then
+    for i; do
+      if check_exists $i; then
+        find_tool_res=$i
+        break
+      fi
+    done
+  fi
+  if test x"$find_tool_res" = x; then
+    warn_ "one of these is required: $find_tool_names;"
+    die   "alternatively set $find_tool_envvar to a compatible tool"
+  fi
+  eval "$find_tool_envvar=\$find_tool_res"
+  eval "export $find_tool_envvar"
+}
+
+# --------------------- Preparing GNULIB_SRCDIR for use. ---------------------
+# This is part of autopull.sh, but bootstrap needs it too, for self-upgrading.
+
+cleanup_gnulib() {
+  status=$?
+  # XXX It's a bad idea to erase the submodule directory if it contains local
+  #     modifications.
+  rm -fr "$gnulib_path"
+  exit $status
+}
+
+git_modules_config () {
+  test -f .gitmodules && git config --file .gitmodules "$@"
+}
+
+prepare_GNULIB_SRCDIR ()
+{
+  if test -n "$GNULIB_SRCDIR"; then
+    # Use GNULIB_SRCDIR directly.
+    # We already checked that $GNULIB_SRCDIR references a directory.
+    # Verify that it contains a gnulib checkout.
+    test -f "$GNULIB_SRCDIR/gnulib-tool" \
+      || die "Error: --gnulib-srcdir or \$GNULIB_SRCDIR is specified, but does not contain gnulib-tool"
+  elif $use_git; then
+    gnulib_path=$(git_modules_config submodule.gnulib.path)
+    test -z "$gnulib_path" && gnulib_path=gnulib
+
+    # Get gnulib files.  Populate $gnulib_path, possibly updating a
+    # submodule, for use in the rest of the script.
+
+    if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git \
+       && git_modules_config submodule.gnulib.url >/dev/null; then
+      # Use GNULIB_REFDIR as a reference.
+      echo "$0: getting gnulib files..."
+      if git submodule -h|grep -- --reference > /dev/null; then
+        # Prefer the one-liner available in git 1.6.4 or newer.
+        git submodule update --init --reference "$GNULIB_REFDIR" \
+          "$gnulib_path" || exit $?
+      else
+        # This fallback allows at least git 1.5.5.
+        if test -f "$gnulib_path"/gnulib-tool; then
+          # Since file already exists, assume submodule init already complete.
+          git submodule update -- "$gnulib_path" || exit $?
+        else
+          # Older git can't clone into an empty directory.
+          rmdir "$gnulib_path" 2>/dev/null
+          git clone --reference "$GNULIB_REFDIR" \
+            "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
+            && git submodule init -- "$gnulib_path" \
+            && git submodule update -- "$gnulib_path" \
+            || exit $?
+        fi
+      fi
+    else
+      # GNULIB_REFDIR is not set or not usable. Ignore it.
+      if git_modules_config submodule.gnulib.url >/dev/null; then
+        echo "$0: getting gnulib files..."
+        git submodule init -- "$gnulib_path" || exit $?
+        git submodule update -- "$gnulib_path" || exit $?
+
+      elif [ ! -d "$gnulib_path" ]; then
+        echo "$0: getting gnulib files..."
+
+        trap cleanup_gnulib 1 2 13 15
+
+        shallow=
+        if test -z "$GNULIB_REVISION"; then
+          if git clone -h 2>&1 | grep -- --depth > /dev/null; then
+            shallow='--depth 2'
+          fi
+          git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
+            || cleanup_gnulib
+        else
+          if git fetch -h 2>&1 | grep -- --depth > /dev/null; then
+            shallow='--depth 2'
+          fi
+          mkdir -p "$gnulib_path"
+          # Only want a shallow checkout of $GNULIB_REVISION, but git does not
+          # support cloning by commit hash. So attempt a shallow fetch by commit
+          # hash to minimize the amount of data downloaded and changes needed to
+          # be processed, which can drastically reduce download and processing
+          # time for checkout. If the fetch by commit fails, a shallow fetch can
+          # not be performed because we do not know what the depth of the commit
+          # is without fetching all commits. So fallback to fetching all commits.
+          git -C "$gnulib_path" init
+          git -C "$gnulib_path" remote add origin \
+              ${GNULIB_URL:-$default_gnulib_url}
+          git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
+            || git -C "$gnulib_path" fetch origin \
+            || cleanup_gnulib
+          git -C "$gnulib_path" reset --hard FETCH_HEAD
+        fi
+
+        trap - 1 2 13 15
+
+      elif test -n "$GNULIB_REVISION" \
+           && ! git --git-dir="$gnulib_path"/.git cat-file \
+                commit "$GNULIB_REVISION"; then
+        git --git-dir="$gnulib_path"/.git fetch
+      fi
+    fi
+    GNULIB_SRCDIR=$gnulib_path
+    # Verify that the submodule contains a gnulib checkout.
+    test -f "$gnulib_path/gnulib-tool" \
+      || die "Error: $gnulib_path is supposed to contain a gnulib checkout, but does not contain gnulib-tool"
+  fi
+
+  # XXX Should this be done if $use_git is false?
+  if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \
+     && ! git_modules_config submodule.gnulib.url >/dev/null; then
+    if ! git --git-dir="$GNULIB_SRCDIR"/.git cat-file \
+         commit "$GNULIB_REVISION"; then
+      git --git-dir="$GNULIB_SRCDIR"/.git fetch
+    fi
+    (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib
+  fi
+
+  # $GNULIB_SRCDIR now points to the version of gnulib to use, and
+  # we no longer need to use git or $gnulib_path below here.
+}
+
+# -------- Upgrading bootstrap to the version found in GNULIB_SRCDIR. --------
+
+upgrade_bootstrap ()
+{
+  { cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/top/bootstrap" \
+    && cmp -s "$medir"/bootstrap-funclib.sh "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" \
+    && cmp -s "$medir"/autopull.sh "$GNULIB_SRCDIR/top/autopull.sh" \
+    && cmp -s "$medir"/autogen.sh "$GNULIB_SRCDIR/top/autogen.sh"; \
+  } || {
+    echo "$0: updating bootstrap & companions and restarting..."
+    case $(sh -c 'echo "$1"' -- a) in
+      a) ignored=--;;
+      *) ignored=ignored;;
+    esac
+    exec sh -c \
+      '{ if test -f "$1"; then cp "$1" "$3"; else cp "$2" "$3"; fi; } && { if test -f "$4"; then cp "$4" "$5"; else rm -f "$5"; fi; } && { if test -f "$6"; then cp "$6" "$7"; else rm -f "$7"; fi; } && { if test -f "$8"; then cp "$8" "$9"; else rm -f "$9"; fi; } && shift && shift && shift && shift && shift && shift && shift && shift && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
+      $ignored \
+      "$GNULIB_SRCDIR/top/bootstrap" "$GNULIB_SRCDIR/build-aux/bootstrap" "$medir/bootstrap" \
+      "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" "$medir/bootstrap-funclib.sh" \
+      "$GNULIB_SRCDIR/top/autopull.sh" "$medir/autopull.sh" \
+      "$GNULIB_SRCDIR/top/autogen.sh" "$medir/autogen.sh" \
+      "$0" "$@" --no-bootstrap-sync
+  }
+}
+
+# ----------------------------------------------------------------------------
+
+if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
+  use_gnulib=false
+else
+  use_gnulib=true
+fi
+
+# ----------------------------------------------------------------------------
+
+# Local Variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
--- a/bootstrap.conf	Tue Nov 15 13:25:31 2022 -0300
+++ b/bootstrap.conf	Tue Nov 15 13:15:28 2022 -0800
@@ -80,6 +80,7 @@
   putenv
   raise
   readdir
+  readline
   rewinddir
   rmdir
   select
@@ -90,6 +91,7 @@
   stat
   stddef
   stdio
+  strcase
   strdup-posix
   strerror
   strptime
@@ -100,7 +102,6 @@
   sys_times
   sys_wait
   tempname
-  tmpfile
   uname
   unicase/u8-tolower
   unicase/u8-toupper
@@ -202,7 +203,7 @@
 #
 # to apply local changes from build-aux/gnulib-bootstrap-git-fetch.diff
 
-: ${GNULIB_REVISION=1a268176fbb184e393c98575e61fe692264c7d91}
+: ${GNULIB_REVISION=1db9041826f21c8cb705337636fe167f73e3c868}
 
 # Don't check for translations since we don't have any in Octave yet.
 # This avoids the need for sha1sum or compatible utility in bootstrap.
--- a/build-aux/gnulib-bootstrap-git-fetch.diff	Tue Nov 15 13:25:31 2022 -0300
+++ b/build-aux/gnulib-bootstrap-git-fetch.diff	Tue Nov 15 13:15:28 2022 -0800
@@ -2,24 +2,23 @@
 
 See also: https://lists.gnu.org/archive/html/bug-gnulib/2020-08/msg00150.html
 
-diff --git a/bootstrap b/bootstrap
-index 8f76d6962..2d0a06376 100755
---- a/bootstrap
-+++ b/bootstrap
-@@ -670,6 +670,11 @@ if $use_gnulib; then
-         || cleanup_gnulib
+diff -urN a/bootstrap-funclib.sh b/bootstrap-funclib.sh
+--- a/bootstrap-funclib.sh.	2022-11-12 13:47:39.921059000 +0100
++++ b/bootstrap-funclib.sh	2022-11-12 13:55:04.393284235 +0100
+@@ -532,6 +532,11 @@
+         fi
  
-       trap - 1 2 13 15
+         trap - 1 2 13 15
 +
-+    elif test -n "$GNULIB_REVISION" \
-+         && ! git --git-dir="$gnulib_path"/.git cat-file \
-+              commit "$GNULIB_REVISION"; then
-+      git --git-dir="$gnulib_path"/.git fetch
++      elif test -n "$GNULIB_REVISION" \
++           && ! git --git-dir="$gnulib_path"/.git cat-file \
++                commit "$GNULIB_REVISION"; then
++        git --git-dir="$gnulib_path"/.git fetch
+       fi
      fi
      GNULIB_SRCDIR=$gnulib_path
-     ;;
-@@ -704,6 +709,10 @@ if $use_gnulib; then
- 
+@@ -543,6 +548,10 @@
+   # XXX Should this be done if $use_git is false?
    if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \
       && ! git_modules_config submodule.gnulib.url >/dev/null; then
 +    if ! git --git-dir="$GNULIB_SRCDIR"/.git cat-file \
--- a/build-aux/mk-octave-config-h.sh	Tue Nov 15 13:25:31 2022 -0300
+++ b/build-aux/mk-octave-config-h.sh	Tue Nov 15 13:15:28 2022 -0800
@@ -100,210 +100,22 @@
 #define octave_octave_config_h 1
 
 #if ! defined (OCTAVE_AUTOCONFIG_H_INCLUDED)
-
-#  if defined (__cplusplus)
-#    include <cinttypes>
-#  else
-#    include <inttypes.h>
-#  endif
-
-#  define OCTAVE_NAMESPACE_BEGIN namespace octave {
-#  define OCTAVE_NAMESPACE_END }
-
-#  if defined (__GNUC__)
-#    if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
-#      define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__ ("[" #ver "]: " msg)))
-#    else
-#      define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__))
-#    endif
-#    define OCTAVE_NORETURN __attribute__ ((__noreturn__))
-#    define OCTAVE_UNUSED __attribute__ ((__unused__))
-
-#    define HAVE_OCTAVE_DEPRECATED_ATTR 1
-#    define HAVE_OCTAVE_NORETURN_ATTR 1
-#    define HAVE_OCTAVE_UNUSED_ATTR 1
-#  else
-#    define OCTAVE_DEPRECATED(ver, msg)
-#    define OCTAVE_NORETURN
-#    define OCTAVE_UNUSED
-
-/* #    undef HAVE_OCTAVE_DEPRECATED_ATTR */
-/* #    undef HAVE_OCTAVE_NORETURN_ATTR */
-/* #    undef HAVE_OCTAVE_UNUSED_ATTR */
-#  endif
-
-#  if defined (__MINGW32__)
-    /* MinGW requires special handling due to different format specifiers
-     * on different platforms.  The macro __MINGW_PRINTF_FORMAT maps to
-     * either gnu_printf or ms_printf depending on where we are compiling
-     * to avoid warnings on format specifiers that are legal.
-     * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331349  */
-#    if defined (__cplusplus)
-#      include <cstdio>
-#    else
-#      include <stdio.h>
-#    endif
-
-#    define OCTAVE_FORMAT_PRINTF(stringIndex, firstToCheck) \
-       __attribute__ ((format (__MINGW_PRINTF_FORMAT, stringIndex, firstToCheck)))
-
-#    define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
-#  elif defined (__GNUC__)
-     /* The following attributes are used with gcc and clang compilers.  */
-#    define OCTAVE_FORMAT_PRINTF(index, first) \
-       __attribute__ ((__format__(printf, index, first)))
-
-#    define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
-#  else
-#    define OCTAVE_FORMAT_PRINTF(index, first)
-
-/* #    undef HAVE_OCTAVE_FORMAT_PRINTF_ATTR */
-#  endif
-
-#  if ! defined (OCTAVE_FALLTHROUGH)
-#    if defined (__cplusplus) && __cplusplus > 201402L
-#      define OCTAVE_FALLTHROUGH [[fallthrough]]
-#    elif defined (__GNUC__) && __GNUC__ < 7
-#      define OCTAVE_FALLTHROUGH ((void) 0)
-#    else
-#      define OCTAVE_FALLTHROUGH __attribute__ ((__fallthrough__))
-#    endif
-#  endif
-
-#  define OCTAVE_PROVIDE_DEPRECATED_SYMBOLS 1
-
-#  if defined (__cplusplus)
-template <typename T>
-static inline void
-octave_unused_parameter (const T&)
-{ }
-#  else
-#    define octave_unused_parameter(param) (void) param;
-#  endif
-
-/* Defined to 1 if Octave libraries were built with visibility flags */
 EOF
 
-$SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS.*$\)/#  \1/p' $config_h_file
-
-cat << EOF
-
-#  if defined (OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS)
-#    if defined (_WIN32) || defined (__CYGWIN__)
-#      if defined (__GNUC__)
-         /* GCC */
-#        define OCTAVE_EXPORT __attribute__ ((dllexport))
-#        define OCTAVE_IMPORT __attribute__ ((dllimport))
-#      else
-         /* MSVC */
-#        define OCTAVE_EXPORT __declspec(dllexport)
-#        define OCTAVE_IMPORT __declspec(dllimport)
-#      endif
-#    else
-       /* All other platforms. */
-#      define OCTAVE_EXPORT __attribute__ ((visibility ("default")))
-#      define OCTAVE_IMPORT
-#    endif
-#  else
-#      define OCTAVE_EXPORT
-#      define OCTAVE_IMPORT
-#  endif
-
-/* API macro for liboctave */
-#if defined (OCTAVE_DLL)
-#  define OCTAVE_API OCTAVE_EXPORT
-#else
-#  define OCTAVE_API OCTAVE_IMPORT
-#endif
-
-/* API macro for libinterp */
-#if defined (OCTINTERP_DLL)
-#  define OCTINTERP_API OCTAVE_EXPORT
-#else
-#  define OCTINTERP_API OCTAVE_IMPORT
-#endif
-
-/* API macro for the Array class in liboctave and liboctinterp */
-#if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL))
-#  define OCTARRAY_API OCTAVE_EXPORT
-#else
-#  define OCTARRAY_API OCTAVE_IMPORT
-#endif
-
-/* API macro for libinterp/graphics */
-#if defined (OCTGRAPHICS_DLL)
-#  define OCTGRAPHICS_API OCTAVE_EXPORT
-#else
-#  define OCTGRAPHICS_API OCTAVE_IMPORT
-#endif
-
-/* API macro for libgui */
-#if defined (OCTGUI_DLL)
-#  define OCTGUI_API OCTAVE_EXPORT
-#else
-#  define OCTGUI_API OCTAVE_IMPORT
-#endif
-EOF
-
-octave_idx_type="`$SED -n 's/#define OCTAVE_IDX_TYPE \([_a-zA-Z][_a-zA-Z0-9]*\)/\1/p' $config_h_file`"
-
-if test -z "$octave_idx_type"; then
-  echo "mk-octave-config-h.sh: failed to find OCTAVE_IDX_TYPE in $config_h_file" 1>&2
-  exit 1
-fi
-
-octave_f77_int_type="`$SED -n 's/#define OCTAVE_F77_INT_TYPE \([_a-zA-Z][_a-zA-Z0-9]*\)/\1/p' $config_h_file`"
-
-if test -z "$octave_f77_int_type"; then
-  echo "mk-octave-config-h.sh: failed to find OCTAVE_F77_INT_TYPE in $config_h_file" 1>&2
-  exit 1
-fi
-
-cat << EOF
-
-typedef $octave_idx_type octave_idx_type;
-typedef $octave_f77_int_type octave_f77_int_type;
-
-#  define OCTAVE_HAVE_F77_INT_TYPE 1
-
-/* time type in API is always 64 bits wide */
-#  define OCTAVE_TIME_T int64_t
-
-#  if defined (__cplusplus) && ! defined (OCTAVE_THREAD_LOCAL)
-#    define OCTAVE_THREAD_LOCAL
-#  endif
-
-EOF
-
-if grep "#define OCTAVE_ENABLE_FLOAT_TRUNCATE 1" $config_h_file > /dev/null; then
-  echo "#  define OCTAVE_FLOAT_TRUNCATE volatile"
-else
-  echo "#  define OCTAVE_FLOAT_TRUNCATE"
-fi
-
-echo ""
-
 $SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_64.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_BOUNDS_CHECK.*$\)/#  \1/p' $config_h_file
+$SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_FLOAT_TRUNCATE.*$\)/#  \1/p' $config_h_file
+$SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) OCTAVE_ENABLE_OPENMP.*$\)/#  \1/p' $config_h_file
+$SED -n 's/#\(\(undef\|define\) OCTAVE_F77_INT_TYPE.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_LONG_LONG_INT.*$\)/#  \1/p' $config_h_file
+$SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_OVERLOAD_CHAR_INT8_TYPES.*$\)/#  \1/p' $config_h_file
+$SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_STD_PMR_POLYMORPHIC_ALLOCATOR.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_UNSIGNED_LONG_LONG_INT.*$\)/#  \1/p' $config_h_file
-$SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_STD_PMR_POLYMORPHIC_ALLOCATOR.*$\)/#  \1/p' $config_h_file
-$SED -n 's/#\(\(undef\|define\) OCTAVE_HAVE_OVERLOAD_CHAR_INT8_TYPES.*$\)/#  \1/p' $config_h_file
+$SED -n 's/#\(\(undef\|define\) OCTAVE_IDX_TYPE.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) OCTAVE_SIZEOF_F77_INT_TYPE.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) OCTAVE_SIZEOF_IDX_TYPE.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) OCTAVE_SIZEOF_INT.*$\)/#  \1/p' $config_h_file
-
-cat << EOF
-
-#  if defined (OCTAVE_ENABLE_64)
-#    define OCTAVE_IDX_TYPE_FORMAT PRId64
-#  else
-#    define OCTAVE_IDX_TYPE_FORMAT PRId32
-#  endif
-
-EOF
-
 $SED -n 's/#\(\(undef\|define\) gid_t.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) uid_t.*$\)/#  \1/p' $config_h_file
 $SED -n 's/#\(\(undef\|define\) nlink_t.*$\)/#  \1/p' $config_h_file
@@ -372,6 +184,14 @@
 
 cat << EOF
 
+/* Enable inline functions or typedefs that provide access to
+   symbols that have been moved to the octave namespace so that
+   users of Octave may continue to access symbols using the
+   deprecated names.  */
+#  define OCTAVE_PROVIDE_DEPRECATED_SYMBOLS 1
+
+#  include "oct-conf-post-public.h"
+
 #endif
 
 #endif
--- a/build-aux/mk-opts.pl	Tue Nov 15 13:25:31 2022 -0300
+++ b/build-aux/mk-opts.pl	Tue Nov 15 13:15:28 2022 -0800
@@ -427,7 +427,7 @@
 
   for ($i = 0; $i < $OPT_NUM; $i++)
     {
-      if ($INIT_VALUE[$i])
+      if (defined $INIT_VALUE[$i])
         {
           print "      $OPTVAR[$i] = $INIT_VALUE[$i];\n";
         }
--- a/build-aux/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/build-aux/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -27,7 +27,8 @@
 	$(AM_V_GEN)$(SHELL) config.status $@-tmp $@
 
 GEN_CONFIG_INC = \
-  oct-conf-post.h
+  oct-conf-post-private.h \
+  oct-conf-post-public.h
 
 $(GEN_CONFIG_INC) : %.h : %.in.h config.status
 	$(AM_V_GEN)$(SHELL) config.status $@-tmp $@
--- a/build-aux/subst-config-vals.in.sh	Tue Nov 15 13:25:31 2022 -0300
+++ b/build-aux/subst-config-vals.in.sh	Tue Nov 15 13:15:28 2022 -0800
@@ -213,7 +213,7 @@
 QT_OPENGL_LIBS="@QT_OPENGL_LIBS@"
 RANLIB="@RANLIB@"
 RDYNAMIC_FLAG="@RDYNAMIC_FLAG@"
-READLINE_LIBS="@READLINE_LIBS@"
+READLINE_LIBS="@LIBREADLINE@"
 SHARED_LIBS="@SHARED_LIBS@"
 SH_LDFLAGS="@SH_LDFLAGS@"
 STATIC_LIBS="@STATIC_LIBS@"
@@ -227,7 +227,6 @@
 SUNDIALS_SUNLINSOLKLU_CPPFLAGS="@SUNDIALS_SUNLINSOLKLU_CPPFLAGS@"
 SUNDIALS_SUNLINSOLKLU_LDFLAGS="@SUNDIALS_SUNLINSOLKLU_LDFLAGS@"
 SUNDIALS_SUNLINSOLKLU_LIBS="@SUNDIALS_SUNLINSOLKLU_LIBS@"
-TERM_LIBS="@TERM_LIBS@"
 UMFPACK_CPPFLAGS="@UMFPACK_CPPFLAGS@"
 UMFPACK_LDFLAGS="@UMFPACK_LDFLAGS@"
 UMFPACK_LIBS="@UMFPACK_LIBS@"
@@ -391,7 +390,6 @@
   -e "s|%OCTAVE_CONF_SUNDIALS_SUNLINSOLKLU_CPPFLAGS%|\"${SUNDIALS_SUNLINSOLKLU_CPPFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_SUNDIALS_SUNLINSOLKLU_LDFLAGS%|\"${SUNDIALS_SUNLINSOLKLU_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_SUNDIALS_SUNLINSOLKLU_LIBS%|\"${SUNDIALS_SUNLINSOLKLU_LIBS}\"|" \
-  -e "s|%OCTAVE_CONF_TERM_LIBS%|\"${TERM_LIBS}\"|" \
   -e "s|%OCTAVE_CONF_UMFPACK_CPPFLAGS%|\"${UMFPACK_CPPFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_UMFPACK_LDFLAGS%|\"${UMFPACK_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_UMFPACK_LIBS%|\"${UMFPACK_LIBS}\"|" \
--- a/build-aux/subst-cross-config-vals.in.sh	Tue Nov 15 13:25:31 2022 -0300
+++ b/build-aux/subst-cross-config-vals.in.sh	Tue Nov 15 13:15:28 2022 -0800
@@ -217,7 +217,7 @@
 QT_OPENGL_LIBS="@QT_OPENGL_LIBS@"
 RANLIB="@RANLIB@"
 RDYNAMIC_FLAG="@RDYNAMIC_FLAG@"
-READLINE_LIBS="@READLINE_LIBS@"
+READLINE_LIBS="@LIBREADLINE@"
 SHARED_LIBS="@SHARED_LIBS@"
 SH_LDFLAGS="@SH_LDFLAGS@"
 STATIC_LIBS="@STATIC_LIBS@"
@@ -231,7 +231,6 @@
 SUNDIALS_SUNLINSOLKLU_CPPFLAGS="@SUNDIALS_SUNLINSOLKLU_CPPFLAGS@"
 SUNDIALS_SUNLINSOLKLU_LDFLAGS="@SUNDIALS_SUNLINSOLKLU_LDFLAGS@"
 SUNDIALS_SUNLINSOLKLU_LIBS="@SUNDIALS_SUNLINSOLKLU_LIBS@"
-TERM_LIBS="@TERM_LIBS@"
 UMFPACK_CPPFLAGS="@UMFPACK_CPPFLAGS@"
 UMFPACK_LDFLAGS="@UMFPACK_LDFLAGS@"
 UMFPACK_LIBS="@UMFPACK_LIBS@"
@@ -395,7 +394,6 @@
   -e "s|%OCTAVE_CONF_SUNDIALS_SUNLINSOLKLU_CPPFLAGS%|\"${SUNDIALS_SUNLINSOLKLU_CPPFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_SUNDIALS_SUNLINSOLKLU_LDFLAGS%|\"${SUNDIALS_SUNLINSOLKLU_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_SUNDIALS_SUNLINSOLKLU_LIBS%|\"${SUNDIALS_SUNLINSOLKLU_LIBS}\"|" \
-  -e "s|%OCTAVE_CONF_TERM_LIBS%|\"${TERM_LIBS}\"|" \
   -e "s|%OCTAVE_CONF_UMFPACK_CPPFLAGS%|\"${UMFPACK_CPPFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_UMFPACK_LDFLAGS%|\"${UMFPACK_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_UMFPACK_LIBS%|\"${UMFPACK_LIBS}\"|" \
--- a/configure.ac	Tue Nov 15 13:25:31 2022 -0300
+++ b/configure.ac	Tue Nov 15 13:15:28 2022 -0800
@@ -27,7 +27,7 @@
 
 ### Initialize Autoconf
 AC_PREREQ([2.65])
-AC_INIT([GNU Octave], [7.3.1], [https://octave.org/bugs.html], [octave],
+AC_INIT([GNU Octave], [8.0.0], [https://octave.org/bugs.html], [octave],
         [https://www.gnu.org/software/octave/])
 
 ### Declare version numbers
@@ -39,9 +39,9 @@
 ## explains how to update these numbers for release and development
 ## versions.
 
-OCTAVE_MAJOR_VERSION=7
-OCTAVE_MINOR_VERSION=3
-OCTAVE_PATCH_VERSION=1
+OCTAVE_MAJOR_VERSION=8
+OCTAVE_MINOR_VERSION=0
+OCTAVE_PATCH_VERSION=0
 
 dnl PACKAGE_VERSION is set by the AC_INIT VERSION argument.
 OCTAVE_VERSION="$PACKAGE_VERSION"
@@ -63,7 +63,7 @@
 dnl FIXME: Since we also set libtool versions for liboctave and libinterp,
 dnl perhaps we should be computing the "api version" from those versions numbers
 dnl in some way instead of setting it independently here.
-OCTAVE_API_VERSION="api-v57"
+OCTAVE_API_VERSION="api-v57+"
 
 AC_SUBST(OCTAVE_MAJOR_VERSION)
 AC_SUBST(OCTAVE_MINOR_VERSION)
@@ -135,7 +135,7 @@
   '${libdir}/octave/${version}/oct/${canonical_host_type}')
 
 ## Directories that Octave should search for object files that will be
-## dynamically loaded and that are specific to this site (i.e. customizations),
+## dynamically loaded and that are specific to this site (i.e., customizations),
 ## before consulting ${octfiledir}.  This should be a colon-separated list of
 ## directories.
 OCTAVE_SET_DEFAULT([localoctfiledir],
@@ -156,7 +156,7 @@
 OCTAVE_SET_DEFAULT([fcnfiledir], '${datadir}/octave/${version}/m')
 
 ## Directories that Octave should search for function files specific to this
-## site (i.e. customizations), before consulting ${fcnfiledir}.
+## site (i.e., customizations), before consulting ${fcnfiledir}.
 ## This should be a colon-separated list of directories.
 OCTAVE_SET_DEFAULT([localfcnfiledir], '${datadir}/octave/site/m')
 
@@ -253,7 +253,7 @@
 AM_CONDITIONAL([AMCOND_HAVE_ICON_TOOLS],
   [test -n "$ICOTOOL" && test -n "$RSVG_CONVERT"])
 
-### Path separator.
+### Determine path separator.
 
 sepchar=':'
 AC_ARG_WITH([sepchar],
@@ -280,9 +280,9 @@
   [Define this to be the path separator for your system, as a string.])
 
 ### Define the path to the shell on the host system.
-### Most systems will ensure /bin/sh is the default shell so this can be safely
-### ignored by almost everyone.  However, when building for Android, for
-### example, this will need to be set.
+dnl Most systems will ensure /bin/sh is the default shell so this can be safely
+dnl ignored by almost everyone.  However, there are exceptions, such as
+dnl Android, where this will need to be set.
 SHELL_PATH=/bin/sh
 AC_ARG_WITH([shell],
   [AS_HELP_STRING([--with-shell=SHELL],
@@ -300,34 +300,6 @@
 AC_DEFINE_UNQUOTED([SHELL_PATH], ["$SHELL_PATH"],
   [Define this to be the path to the shell command interpreter.])
 
-### Use the system-wide installation of GNU FreeFont if the user requests it.
-### By default, Octave includes its own copy of the FreeSans font, which it
-### installs in its own directory for use as a fallback default font.  If this
-### configuration option is used, then do not install our own copy of the fonts
-### and assume they can be found in the provided system directory.
-SYSTEM_FREEFONT_DIR=
-AC_ARG_WITH([system-freefont],
-  [AS_HELP_STRING([--with-system-freefont=DIR],
-    [use FreeSans fonts in DIR (default: install and use internal copy)])])
-case $with_system_freefont in
-  no | "")
-    SYSTEM_FREEFONT_DIR=
-    ;;
-  yes)
-    AC_MSG_ERROR([directory argument required for --with-system-freefont])
-    ;;
-  *)
-    SYSTEM_FREEFONT_DIR=$with_system_freefont
-    ;;
-esac
-if test -n "$SYSTEM_FREEFONT_DIR"; then
-  AC_MSG_NOTICE([configuring Octave to use system fonts in $SYSTEM_FREEFONT_DIR])
-  AC_DEFINE_UNQUOTED([SYSTEM_FREEFONT_DIR], ["$SYSTEM_FREEFONT_DIR"],
-    [Define this to be the system directory containing the GNU FreeFont fonts.])
-fi
-AM_CONDITIONAL([AMCOND_INSTALL_INTERNAL_FONT_FILES],
-  [test -z "$SYSTEM_FREEFONT_DIR"])
-
 ### Determine which C++ compiler to use (we expect to find g++).
 
 AC_PROG_CXX
@@ -336,14 +308,14 @@
 ENABLE_STD_PMR_POLYMORPHIC_ALLOCATOR=no
 AC_ARG_ENABLE(std-pmr-polymorphic-allocator,
   [AS_HELP_STRING([--enable-std-pmr-polymorphic-allocator],
-    [build libraries requiring std::pmr::polymorphic_allocator if possible. This allows more efficient transfer of arrays at the .mex file interface. That also means that all libraries including Octave headers (e.g., .oct files) must be able to compile with that C++17 feature.])],
+    [build libraries requiring std::pmr::polymorphic_allocator if possible.  This allows more efficient transfer of arrays at the .mex file interface.  That also means that all libraries including Octave headers (e.g., .oct files) must be able to compile with that C++17 feature.])],
   [case $enableval in
      yes) ENABLE_STD_PMR_POLYMORPHIC_ALLOCATOR=yes ;;
      no) ENABLE_STD_PMR_POLYMORPHIC_ALLOCATOR=no ;;
      *) AC_MSG_ERROR([bad value $enableval for --enable-std-pmr-polymorphic-allocator]) ;;
    esac])
 
-### Check compiler capabilities.
+### Determine compiler capabilities.
 
 if test $ENABLE_STD_PMR_POLYMORPHIC_ALLOCATOR = yes; then
   ## Test for flags to fully support C++17.
@@ -404,16 +376,16 @@
 
 GXX_VERSION=
 if test "$GXX" = yes; then
-  AC_MSG_CHECKING([C++ compiler version number])
-  gxx_version=`$CXX -v 2>&1 | $GREP "^.*g.. version" | \
-    $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`
-
-  AX_COMPARE_VERSION([$gxx_version], [lt], [4.1],
-    [warn_gxx_version="g++ version $gxx_version is likely to cause problems"
+  AC_CACHE_CHECK([g++ compiler version number],
+    [octave_cv_gxx_version],
+    [octave_cv_gxx_version=[`$CXX -v 2>&1 | $GREP "^.*g.. version" | $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`]
+  ])
+
+  AX_COMPARE_VERSION([$octave_cv_gxx_version], [lt], [4.1],
+    [warn_gxx_version="g++ version $octave_cv_gxx_version is likely to cause problems"
      OCTAVE_CONFIGURE_WARNING([warn_gxx_version])])
 
-  GXX_VERSION=$gxx_version
-  AC_MSG_RESULT([$GXX_VERSION])
+  GXX_VERSION=$octave_cv_gxx_version
 fi
 AC_SUBST(GXX_VERSION)
 
@@ -432,16 +404,16 @@
 
 GCC_VERSION=
 if test "$GCC" = yes; then
-  AC_MSG_CHECKING([C compiler version number])
-  gcc_version=`$CC -v 2>&1 | $GREP "^.*gcc version" | \
-    $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`
-
-  AX_COMPARE_VERSION([$gcc_version], [lt], [3],
-    [warn_gcc_version="gcc version $gcc_version is likely to cause problems"
+  AC_CACHE_CHECK([gcc compiler version number],
+    [octave_cv_gcc_version],
+    [octave_cv_gcc_version=[`$CC -v 2>&1 | $GREP "^.*gcc version" | $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`]
+  ])
+
+  AX_COMPARE_VERSION([$octave_cv_gcc_version], [lt], [3],
+    [warn_gcc_version="gcc version $octave_cv_gcc_version is likely to cause problems"
      OCTAVE_CONFIGURE_WARNING([warn_gcc_version])])
 
-  GCC_VERSION=$gcc_version
-  AC_MSG_RESULT([$GCC_VERSION])
+  GCC_VERSION=$octave_cv_gcc_version
 fi
 AC_SUBST(GCC_VERSION)
 
@@ -488,7 +460,7 @@
 dnl in case -lm is needed to compile Fortran programs.
 AC_CHECK_LIB(m, sin)
 
-### Determine the Fortran compiler and how to invoke it
+### Determine the Fortran compiler and how to invoke it.
 
 ## Prefer gfortran, but the user's F77 environment variable will override.
 AC_PROG_F77([gfortran])
@@ -512,10 +484,10 @@
 AC_F77_DUMMY_MAIN
 AC_F77_WRAPPERS
 
-### Must appear after checks for Fortran compiler.
+## Must appear after checks for Fortran compiler.
 OCTAVE_CHECK_FORTRAN_SYMBOL_AND_CALLING_CONVENTIONS
 
-### Must appear after checks for compilers.
+## Must appear after checks for all compilers.
 OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS
 
 ### Use a 64-bit integer type for array dimensions and indexing, if possible.
@@ -569,7 +541,7 @@
 AC_DEFINE_UNQUOTED(OCTAVE_IDX_TYPE, [$OCTAVE_IDX_TYPE],
   [Define to the type of octave_idx_type (64 or 32 bit signed integer).])
 
-### Check for pthread library
+### Check for pthread library.
 
 AX_PTHREAD
 dnl Include pthread libs and flags early in case other config tests need them.
@@ -587,7 +559,6 @@
 AM_CONDITIONAL([OCTAVE_CHECK_BROKEN_PTHREAD_STACKSIZE],
   [test $octave_cv_broken_pthread_stacksize = yes])
 
-
 ### Test whether the compiler supports OpenMP.
 dnl This is enabled by default to allow the option of using OpenMP in
 dnl loadable modules.
@@ -620,7 +591,7 @@
   AC_DEFINE(OCTAVE_ENABLE_OPENMP, 1, [Define to 1 if OpenMP is enabled])
 fi
 
-### Start determination of shared vs. static libraries
+### Start determination of shared vs. static libraries.
 
 ## Use -static if compiling on Alpha OSF/1 1.3 systems.
 case $canonical_host_type in
@@ -660,7 +631,7 @@
 
 XTRA_EXTERNAL_SH_LDFLAGS=
 case $host_os in
-  msdosmsvc | mingw*)
+  msdosmsvc | mingw* | cygwin*)
     FLIBS="$FLIBS -lkernel32"
     XTRA_EXTERNAL_SH_LDFLAGS="-Wl,liboctave/external/external.def"
   ;;
@@ -671,11 +642,10 @@
   AC_MSG_ERROR([You can't disable building both static AND shared libraries!])
 fi
 
-
 ### More configure argument checking related to linking
 
 case $host_os in
-  msdosmsvc | mingw* | AIX | BeOS | OS/2 )
+  msdosmsvc | mingw* | cygwin* | AIX | BeOS | OS/2 )
     DEFAULT_NO_UNDEFINED_LDFLAG="-no-undefined"
   ;;
   *)
@@ -684,7 +654,7 @@
 esac
 AC_ARG_ENABLE([no-undefined],
   [AS_HELP_STRING([--enable-no-undefined],
-    [pass -no-undefined to libtool when linking Octave and its shared libraries. This is done by default for msdosmsvc, mingw*, AIX, BeOS, or OS/2 hosts.])],
+    [pass -no-undefined to libtool when linking Octave and its shared libraries.  This is done by default for msdosmsvc, mingw*, cygwin*, AIX, BeOS, or OS/2 hosts.])],
   [case $enableval in
      yes) NO_UNDEFINED_LDFLAG="-no-undefined" ;;
      no)  NO_UNDEFINED_LDFLAG="" ;;
@@ -693,28 +663,33 @@
   [NO_UNDEFINED_LDFLAG="$DEFAULT_NO_UNDEFINED_LDFLAG"])
 AC_SUBST(NO_UNDEFINED_LDFLAG)
 
+case $host_os in
+  cygwin* )
+    DEFAULT_LINK_ALL_DEPS="yes"
+  ;;
+  *)
+    DEFAULT_LINK_ALL_DEPS="no"
+  ;;
+esac
 AC_ARG_ENABLE([link-all-dependencies],
   [AS_HELP_STRING([--enable-link-all-dependencies],
-    [link Octave and its shared libraries with all dependencies, not just those immediately referenced (should not be needed on most systems)])],
+    [link Octave and its shared libraries with all dependencies, not just those immediately referenced (should not be needed on most systems).  This is done by default for cygwin* or darwin* hosts.])],
   [case $enableval in
      yes) link_all_deps=yes ;;
      no)  link_all_deps=no ;;
      *) AC_MSG_ERROR([bad value $enableval for --enable-link-all-dependencies])
      ;;
    esac],
-  [link_all_deps=no])
+  [link_all_deps="$DEFAULT_LINK_ALL_DEPS"])
 AM_CONDITIONAL([AMCOND_LINK_ALL_DEPS], [test $link_all_deps = yes])
 
-### Check for BLAS and LAPACK libraries:
+### Check for BLAS and LAPACK libraries.
 
 ## Need to adjust FFLAGS to include correct integer size.
 save_FFLAGS="$FFLAGS"
 FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"
 
-OCTAVE_BLAS_WITH_F77_FUNC([], [],
-  [ax_blas_ok=yes
-  AC_MSG_CHECKING([BLAS can be called from Fortran])
-  AC_MSG_RESULT([yes assumed for cross compilation])])
+OCTAVE_BLAS
 AX_LAPACK
 
 ## Restore FFLAGS.
@@ -725,7 +700,7 @@
   save_FFLAGS="$FFLAGS"
   FFLAGS="-ff2c $FFLAGS $F77_INTEGER_8_FLAG"
 
-  OCTAVE_BLAS_WITH_F77_FUNC
+  OCTAVE_BLAS
   AX_LAPACK
 
   ## Restore FFLAGS, with -ff2c if that was helpful
@@ -754,7 +729,7 @@
          save_FFLAGS="$FFLAGS"
          FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"
 
-         OCTAVE_BLAS_WITH_F77_FUNC
+         OCTAVE_BLAS
          AX_LAPACK
 
          ## Restore FFLAGS.
@@ -782,7 +757,7 @@
   AC_MSG_ERROR([BLAS and LAPACK libraries are required])
 fi
 
-case $ax_blas_integer_size in
+case $ax_cv_blas_integer_size in
   4)
     HAVE_64_BIT_BLAS=no
   ;;
@@ -795,8 +770,8 @@
 esac
 
 OCTAVE_CHECK_SIZEOF_FORTRAN_INTEGER
-if test $octave_cv_sizeof_fortran_integer -ne $ax_blas_integer_size; then
-  if test $ax_blas_integer_size -eq 8; then
+if test $octave_cv_sizeof_fortran_integer -ne $ax_cv_blas_integer_size; then
+  if test $ax_cv_blas_integer_size -eq 8; then
     case $F77 in
       *gfortran*)
         case $F77_INTEGER_8_FLAG in
@@ -826,8 +801,8 @@
   fi
   ## We intentionally don't attempt to fix things up if the default
   ## Fortran integer size is 8 but BLAS appears to use 4-byte integers.
-  if test $octave_cv_sizeof_fortran_integer -ne $ax_blas_integer_size; then
-    AC_MSG_ERROR([your Fortran compiler must have an option for setting the default integer size to be the same size as your BLAS library uses ($ax_blas_integer_size bytes).  See the file INSTALL for more information.])
+  if test $octave_cv_sizeof_fortran_integer -ne $ax_cv_blas_integer_size; then
+    AC_MSG_ERROR([your Fortran compiler must have an option for setting the default integer size to be the same size as your BLAS library uses ($ax_cv_blas_integer_size bytes).  See the file INSTALL for more information.])
   fi
 fi
 AC_SUBST(F77_INTEGER_8_FLAG)
@@ -867,8 +842,9 @@
 AM_CONDITIONAL([AMCOND_BUILD_EXTERNAL_LIBXERBLA],
   [test -n "$BUILD_EXTERNAL_LIBXERBLA"])
 
-### Dynamic linking is now enabled only if we are building shared
-### libs and some API for dynamic linking has been detected.
+### Set options for dynamic linking if enabled.
+dnl Options set only only if we are building shared libs and some API for
+dnl dynamic linking has been detected.
 
 dnl FIXME: A lot of the following duplicates the functionality of
 dnl code generated by the dlopen option for LT_INIT.
@@ -1375,7 +1351,68 @@
 #endif
 ]])
 
-### Check for the Qhull library.
+### Configure Bison as push or pull parser.
+
+ENABLE_COMMAND_LINE_PUSH_PARSER=yes
+AC_ARG_ENABLE([command-line-push-parser],
+  [AS_HELP_STRING([--disable-command-line-push-parser],
+    [don't use Bison's push parser interface in the command line REPL])],
+  [if test "$enableval" = no; then ENABLE_COMMAND_LINE_PUSH_PARSER=no; fi], [])
+if test $ENABLE_COMMAND_LINE_PUSH_PARSER = yes; then
+  AC_DEFINE(OCTAVE_ENABLE_COMMAND_LINE_PUSH_PARSER, 1,
+    [Define to 1 to use Bison's push parser interface in the command line REPL.])
+fi
+
+### Configure compilation of *experimental* Virtual Machine evaluator.
+
+ENABLE_VM_EVALUATOR=yes
+AC_ARG_ENABLE([vm-evaluator],
+  [AS_HELP_STRING([--disable-vm-evaluator],
+    [don't compile *experimental* virtual machine evaluator])],
+  [if test "$enableval" = no; then ENABLE_VM_EVALUATOR=no; fi], [])
+if test $ENABLE_VM_EVALUATOR = yes; then
+  AC_DEFINE(OCTAVE_ENABLE_VM_EVALUATOR, 1,
+    [Define to 1 to build experimental Virtual Machine evaluator.])
+fi
+
+### Check for PCRE2 or PCRE regex library, requiring one to exist.
+
+have_pcre2=no
+have_pcre=no
+save_CPPLAGS="$CPPFLAGS"
+CPPFLAGS="-DPCRE2_CODE_UNIT_WIDTH=8 $CPPFLAGS"
+OCTAVE_CHECK_LIB(pcre2, PCRE2,
+  [], [pcre2.h pcre2/pcre2.h], [pcre2_compile_8], [], [],
+  [OCTAVE_CHECK_LIB_PCRE2_OK([have_pcre2=yes],
+    [AC_MSG_ERROR([PCRE2 library must be built with UTF support (--enable-utf)])])],
+  [libpcre2-8])
+CPPFLAGS="$save_CPPFLAGS"
+
+if test $have_pcre2 = no; then
+  OCTAVE_CHECK_LIB(pcre, PCRE,
+    [], [pcre.h pcre/pcre.h], [pcre_compile], [], [],
+    [OCTAVE_CHECK_LIB_PCRE_OK([have_pcre=yes],
+      [AC_MSG_ERROR([PCRE library must be built with UTF support (--enable-utf)])])],
+    [libpcre])
+fi
+
+if test $have_pcre2 = yes; then
+  AC_DEFINE(HAVE_PCRE2, 1, [Define to 1 if PCRE2 is available.])
+
+  ## Only one of PCRE2 or PCRE is used, so avoid having to define and use
+  ## both PCRE2_* and PCRE_* variables everywhere.
+
+  PCRE_CPPFLAGS="$PCRE2_CPPFLAGS"
+  PCRE_LDFLAGS="$PCRE2_LDFLAGS"
+  PCRE_LIBS="$PCRE2_LIBS"
+
+elif test $have_pcre = yes; then
+  AC_DEFINE(HAVE_PCRE, 1, [Define to 1 if PCRE is available.])
+else
+  AC_MSG_ERROR([to build Octave, you must have the PCRE or PCRE2 library and header files installed])
+fi
+
+### Check for Qhull library.
 
 QHULL_CPPFLAGS=
 QHULL_LDFLAGS=
@@ -1396,16 +1433,7 @@
 AC_SUBST(QHULL_LDFLAGS)
 AC_SUBST(QHULL_LIBS)
 
-### Check for PCRE regex library.
-
-OCTAVE_CHECK_LIB(pcre, PCRE,
-  [], [pcre.h pcre/pcre.h], [pcre_compile], [], [],
-  [OCTAVE_CHECK_LIB_PCRE_OK([],
-    [AC_MSG_ERROR([PCRE library must be built with UTF support (--enable-utf)])])
-  ],
-  [libpcre], [REQUIRED])
-
-### Check for RapidJSON header only library.
+### Check for RapidJSON header-only library.
 
 check_for_rapidjson=yes
 AC_ARG_ENABLE([rapidjson],
@@ -1460,21 +1488,6 @@
 
 OCTAVE_ENABLE_READLINE
 
-## Find a termlib to use.
-OCTAVE_CHECK_LIB_TERMLIB
-
-### Use push parser by default now.
-
-ENABLE_COMMAND_LINE_PUSH_PARSER=yes
-AC_ARG_ENABLE([command-line-push-parser],
-  [AS_HELP_STRING([--disable-command-line-push-parser],
-    [don't use Bison's push parser interface in the command line REPL])],
-  [if test "$enableval" = no; then ENABLE_COMMAND_LINE_PUSH_PARSER=no; fi], [])
-if test $ENABLE_COMMAND_LINE_PUSH_PARSER = yes; then
-  AC_DEFINE(OCTAVE_ENABLE_COMMAND_LINE_PUSH_PARSER, 1,
-    [Define to 1 to use Bison's push parser interface in the command line REPL.])
-fi
-
 ### Check for ZLIB library.
 
 OCTAVE_CHECK_LIB(z, ZLIB,
@@ -1522,7 +1535,7 @@
 fi
 
 ### Check for FFTW library.
-### Default to Fortran FFTPACK if it is not available.
+dnl Default to Fortran FFTPACK if it is not available.
 
 ## Check for FFTW header and library.
 OCTAVE_CHECK_LIB(fftw3, FFTW3,
@@ -1557,7 +1570,7 @@
   build_fftw_threads=no
 fi
 
-## Check for the multithreaded FFTW library.
+## Check for multithreaded FFTW library.
 ## Fallback to singlethreaded if not found or disabled.
 if test $build_fftw_threads = yes; then
   OCTAVE_CHECK_FFTW_THREADS(fftw3, fftw_plan_with_nthreads)
@@ -1600,7 +1613,7 @@
 LIBS="$save_LIBS"
 CPPFLAGS="$save_CPPFLAGS"
 
-### Checks for cURL header and library.
+### Check for cURL library existence and functionality.
 
 save_CPPFLAGS="$CPPFLAGS"
 save_LIBS="$LIBS"
@@ -1640,7 +1653,7 @@
     [AC_DEFINE(HAVE_SNDFILE, 1, [Define to 1 if sndfile is available.])],
     [warn_sndfile="sndfile library found, but does not seem to work properly; disabling audio file I/O functions"])])
 
-### Check for PortAudio
+### Check for PortAudio library.
 
 OCTAVE_CHECK_LIB(portaudio, PortAudio,
   [PortAudio library not found.  The audioplayer, audiorecorder, and audiodevinfo functions will be disabled.],
@@ -1648,7 +1661,7 @@
   [], [don't use PortAudio library, disable audio playback and recording],
   [], [portaudio-2.0])
 
-### Check for either of Graphics/ImageMagick++ libraries.
+### Check for either of GraphicsMagick++/ImageMagick++ libraries.
 
 check_magick=yes
 use_magick=no
@@ -1689,17 +1702,18 @@
     LIBS="$MAGICK_LDFLAGS $MAGICK_LIBS $LIBS"
     AC_LANG_PUSH(C++)
     AC_CHECK_HEADER([Magick++.h], [
-      AC_CACHE_CHECK([for Magick::ColorRGB in Magick++.h],
-        [octave_cv_func_magick_colorrgb],
+      AC_CACHE_CHECK([for Magick::ColorRGB and Magick::PixelPacket in Magick++.h],
+        [octave_cv_func_magick],
         [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
           #include <Magick++.h>
           ]], [[
           Magick::ColorRGB c;
+          Magick::PixelPacket pix;
           ]])],
-          octave_cv_func_magick_colorrgb=yes,
-          octave_cv_func_magick_colorrgb=no)
+          octave_cv_func_magick=yes,
+          octave_cv_func_magick=no)
         ])
-      if test $octave_cv_func_magick_colorrgb = yes; then
+      if test $octave_cv_func_magick = yes; then
         use_magick=yes
         warn_magick=
       fi
@@ -1727,7 +1741,7 @@
 AC_SUBST(MAGICK_LDFLAGS)
 AC_SUBST(MAGICK_LIBS)
 
-### Check for X11 libraries
+### Check for X11 libraries.
 
 AC_PATH_X
 if test "$have_x" = yes; then
@@ -1875,7 +1889,7 @@
 AC_SUBST(DEFAULT_TERMINAL_FONT)
 AC_SUBST(DEFAULT_TERMINAL_FONT_SIZE)
 
-### Check for FLTK library
+### Check for FLTK library.
 
 check_fltk=yes
 build_fltk_graphics=no
@@ -1990,7 +2004,7 @@
 AC_SUBST(FLTK_LDFLAGS)
 AC_SUBST(FLTK_LIBS)
 
-### Final determination of whether OpenGL graphics can be built
+### Final determination of whether OpenGL graphics can be built.
 if test $build_qt_graphics = no && test $build_fltk_graphics = no; then
   opengl_graphics=no
 else
@@ -2016,7 +2030,35 @@
   AC_SUBST(GL2PS_LIBS)
 fi
 
-### Check for the qrupdate library
+### Use the system-wide installation of GNU FreeFont if the user requests it.
+dnl By default, Octave includes its own copy of the FreeSans font which it
+dnl installs in its own directory for use as a fallback default font.  If this
+dnl configuration option is used, then do not install our own copy of the fonts
+dnl and assume they can be found in the provided system directory.
+SYSTEM_FREEFONT_DIR=
+AC_ARG_WITH([system-freefont],
+  [AS_HELP_STRING([--with-system-freefont=DIR],
+    [use FreeSans fonts in DIR (default: install and use internal copy)])])
+case $with_system_freefont in
+  no | "")
+    SYSTEM_FREEFONT_DIR=
+    ;;
+  yes)
+    AC_MSG_ERROR([directory argument required for --with-system-freefont])
+    ;;
+  *)
+    SYSTEM_FREEFONT_DIR=$with_system_freefont
+    ;;
+esac
+if test -n "$SYSTEM_FREEFONT_DIR"; then
+  AC_MSG_NOTICE([configuring Octave to use system fonts in $SYSTEM_FREEFONT_DIR])
+  AC_DEFINE_UNQUOTED([SYSTEM_FREEFONT_DIR], ["$SYSTEM_FREEFONT_DIR"],
+    [Define this to be the system directory containing the GNU FreeFont fonts.])
+fi
+AM_CONDITIONAL([AMCOND_INSTALL_INTERNAL_FONT_FILES],
+  [test -z "$SYSTEM_FREEFONT_DIR"])
+
+### Check for qrupdate library.
 
 dnl No need to adjust FFLAGS because only link is attempted.
 dnl Must supply proper LIBS, however.
@@ -2070,11 +2112,11 @@
   SUITESPARSECONFIG_LIBS="$SUITESPARSECONFIG_LIBS $LIB_CLOCK_GETTIME"
 fi
 
-### Reset below, after all checks for SuiteSparse libraries.
+## Save and restore LIBS after all checks for SuiteSparse libraries.
 suitesparse_save_LIBS="$LIBS"
 LIBS="$SUITESPARSECONFIG_LIBS $LIBS"
 
-### Check for AMD library
+### Check for AMD library.
 
 OCTAVE_CHECK_LIB(amd, AMD,
   [AMD library not found.  This will result in some lack of functionality for sparse matrices.],
@@ -2082,7 +2124,7 @@
   [amd_postorder],
   [], [don't use AMD library, disable some sparse matrix functionality])
 
-### Check for CAMD library
+### Check for CAMD library.
 
 OCTAVE_CHECK_LIB(camd, CAMD,
   [CAMD library not found.  This will result in some lack of functionality for sparse matrices.],
@@ -2090,7 +2132,7 @@
   [camd_postorder],
   [], [don't use CAMD library, disable some sparse matrix functionality])
 
-### Check for COLAMD library
+### Check for COLAMD library.
 
 OCTAVE_CHECK_LIB(colamd, COLAMD,
   [COLAMD library not found.  This will result in some lack of functionality for sparse matrices.],
@@ -2098,7 +2140,7 @@
   [colamd],
   [], [don't use COLAMD library, disable some sparse matrix functionality])
 
-### Check for CCOLAMD library
+### Check for CCOLAMD library.
 
 OCTAVE_CHECK_LIB(ccolamd, CCOLAMD,
   [CCOLAMD library not found.  This will result in some lack of functionality for sparse matrices.],
@@ -2107,8 +2149,8 @@
   [], [don't use CCOLAMD library, disable some sparse matrix functionality])
 
 ### Check for CHOLMOD library.
-### If your cholmod library requires cblas, then you will need to configure
-### with --with-cholmod="-lcholmod -lcblas".
+dnl If your cholmod library requires cblas, then you will need to configure
+dnl with --with-cholmod="-lcholmod -lcblas".
 
 save_LIBS="$LIBS"
 LIBS="$COLAMD_LDFLAGS $COLAMD_LIBS $AMD_LDFLAGS $AMD_LIBS $LAPACK_LIBS $BLAS_LIBS $FLIBS $LIBS"
@@ -2119,7 +2161,7 @@
   [], [don't use CHOLMOD library, disable some sparse matrix functionality])
 LIBS="$save_LIBS"
 
-### Check for SPQR library
+### Check for SPQR library.
 
 save_LIBS="$LIBS"
 LIBS="$CHOLMOD_LIBS $LIBS"
@@ -2130,7 +2172,7 @@
   [C++], [don't use SPQR library, disable some sparse matrix functionality])
 LIBS="$save_LIBS"
 
-### Check for CXSparse library
+### Check for CXSparse library.
 
 OCTAVE_CHECK_LIB(cxsparse, CXSparse,
   [CXSparse library not found.  This will result in some lack of functionality for sparse matrices.],
@@ -2186,7 +2228,7 @@
   [klu.h suitesparse/klu.h klu/klu.h], [klu_solve],
   [], [don't use KLU library, disable some sparse matrix functionality])
 
-### SUITESPARSECONFIG_LIBS added to LIBS above.
+## Restore LIBS after all suitesparse configuration tests
 LIBS="$suitesparse_save_LIBS"
 
 ## Collections of flags.
@@ -2256,11 +2298,11 @@
   LDFLAGS="$SUNDIALS_IDA_LDFLAGS $SUNDIALS_NVECSERIAL_LDFLAGS $KLU_LDFLAGS $BLAS_LDFLAGS $LDFLAGS"
   LIBS="$SUNDIALS_IDA_LIBS $SUNDIALS_NVECSERIAL_LIBS $KLU_LIBS $BLAS_LIBS $FLIBS $LIBS"
   if test -z "$warn_sundials_nvecserial" && test -z "$warn_sundials_ida"; then
-    dnl Any of the following tests could determine that SUNDIALS is incompatible
-    dnl and should be disabled. In that event, they all populate the same
-    dnl variable with appropriate warning messages, and further tests should be
-    dnl skipped if a warning message has already been generated that SUNDIALS is
-    dnl disabled.
+    dnl Any of the following tests could determine that SUNDIALS is
+    dnl incompatible and should be disabled.  In that event, they all populate
+    dnl the same variable with appropriate warning messages, and further tests
+    dnl should be skipped if a warning message has already been generated that
+    dnl SUNDIALS is disabled.
     warn_sundials_disabled=
     if test -z "$warn_sundials_disabled"; then
       OCTAVE_CHECK_SUNDIALS_COMPATIBLE_API
@@ -2282,10 +2324,10 @@
   LIBS="$save_LIBS"
 fi
 
-dnl Define this way instead of with an #if in oct-conf-post.h so that
+dnl Define this way instead of with an #if in oct-conf-post-private.h so that
 dnl the build features script will get the correct value.
 dnl
-dnl The test on the sunlinsol_klu.h header is a bit of a kluge.
+dnl FIXME: The test on the sunlinsol_klu.h header is a bit of a kluge.
 dnl How can we do a better job here?  Do we need to disable sundials
 dnl any tests fail, or can we fix __ode15__.cc so that it still partially
 dnl works when some things are missing (for example, KLU)?
@@ -2421,7 +2463,7 @@
       ## Under Win32 platform, we want JAVA_HOME to be in MSYS format; that is,
       ## without colon and backslashes, as it is also used as path separator.
       ## Use quoted paths as Java may be installed in a path with whitespaces
-      ## (e.g. C:\Program Files\Java\...).
+      ## (e.g., C:\Program Files\Java\...).
       if test -n "$JAVA_HOME"; then
         JAVA_HOME=`cd "$JAVA_HOME" && pwd`
       fi
@@ -2444,11 +2486,14 @@
   fi
 
   ## Check Java version is recent enough.
-  AC_MSG_CHECKING([for Java version])
-  java_version=[`"$JAVA" -version 2>&1 | $SED -n -e 's/^[^ ]* version[^0-9"]*"\([^"]*\)".*/\1/p'`]
-  AC_MSG_RESULT([$java_version])
-  java_major=[`echo $java_version | $SED -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\1/'`]
-  java_minor=[`echo $java_version | $SED -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\2/'`]
+  AC_CACHE_CHECK([for Java version],
+    [octave_cv_java_version],
+    [octave_cv_java_version=[`"$JAVA" -version 2>&1 | $SED -n -e 's/^[^ ]* version[^0-9"]*"\([^"]*\)".*/\1/p'`]
+  ])
+
+  java_major=[`echo $octave_cv_java_version | $SED -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\1/'`]
+  java_minor=[`echo $octave_cv_java_version | $SED -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\2/'`]
+
   if test $java_major -gt 1 || (test $java_major -eq 1 && test $java_minor -ge 5); then
     :  # Version is OK.  Do nothing.
   else
@@ -2457,7 +2502,7 @@
   fi
 
   ## At this point Win32 systems have enough configuration data.
-  ## We assume that all appropriate variables (e.g. INCLUDE and LIB) already
+  ## We assume that all appropriate variables (e.g., INCLUDE and LIB) already
   ## contain the required paths to compile and link against JDK.
   case $host_os in
     msdosmsvc)
@@ -2495,55 +2540,59 @@
 
   AC_MSG_CHECKING([for $jvmlib])
 
-  if test -z "$JAVA_LDPATH"; then
-    ## Run Java to try and determine library path to libjvm.so.
-    JAVA_TMP_LDPATH=`$JAVA -classpath ${srcdir}/build-aux OctJavaQry JAVA_LDPATH`
-    JAVA_TMP_LDPATH=`echo $JAVA_TMP_LDPATH | $SED -e "s/${PATH_SEPARATOR}/ /g"`
-    for dir in $JAVA_TMP_LDPATH; do
-      if test -f "$dir/$jvmlib"; then
-        JAVA_LDPATH=$dir
-        break
-      fi
-    done
-  fi
-
-  if test -z "$JAVA_LDPATH"; then
-    ## Nothing found.  Try Java again using bootpath argument.
-    JAVA_TMP_LDPATH=`$JAVA -classpath ${srcdir}/build-aux OctJavaQry JAVA_BOOTPATH`
-    JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_TMP_LDPATH}/client ${JAVA_TMP_LDPATH}/server"
-    for dir in $JAVA_TMP_LDPATH; do
-      if test -f "$dir/$jvmlib"; then
-        JAVA_LDPATH=$dir
-        break
+  AC_CACHE_VAL([octave_cv_java_ldpath],[
+    if test -z "$JAVA_LDPATH"; then
+      ## Run Java to try and determine library path to libjvm.so.
+      JAVA_TMP_LDPATH=`$JAVA -classpath ${srcdir}/build-aux OctJavaQry JAVA_LDPATH`
+      JAVA_TMP_LDPATH=`echo $JAVA_TMP_LDPATH | $SED -e "s/${PATH_SEPARATOR}/ /g"`
+      for dir in $JAVA_TMP_LDPATH; do
+        if test -f "$dir/$jvmlib"; then
+          JAVA_LDPATH=$dir
+          break
+        fi
+      done
+    fi
+
+    if test -z "$JAVA_LDPATH"; then
+      ## Nothing found.  Try Java again using bootpath argument.
+      JAVA_TMP_LDPATH=`$JAVA -classpath ${srcdir}/build-aux OctJavaQry JAVA_BOOTPATH`
+      JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_TMP_LDPATH}/client ${JAVA_TMP_LDPATH}/server"
+      for dir in $JAVA_TMP_LDPATH; do
+        if test -f "$dir/$jvmlib"; then
+          JAVA_LDPATH=$dir
+          break
+        fi
+      done
+    fi
+
+    if test -z "$JAVA_LDPATH"; then
+      ## Java failed to find its own library path.  Guess wildly.
+      JAVA_TMP_LDPATH=`ls -d $JAVA_HOME/jre/lib/*/client`
+      JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} `ls -d $JAVA_HOME/jre/lib/*/server`"
+      ## Add some paths that might work on Macs.
+      JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_HOME}/../Libraries ${JAVA_HOME}/Libraries"
+      ## Add some paths that might work on MinGW
+      JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_HOME}/bin/client ${JAVA_HOME}/bin/server"
+      for dir in $JAVA_TMP_LDPATH; do
+        if test -f "$dir/$jvmlib"; then
+          JAVA_LDPATH=$dir
+          break
+        fi
+      done
+    fi
+
+    ## Verify value passed in option --with-java-libdir
+    if test -n "$JAVA_LDPATH"; then
+      if test -f "${JAVA_LDPATH}/$jvmlib"; then
+        :  # libjvm found
+      else
+        JAVA_LDPATH=""
       fi
-    done
-  fi
-
-  if test -z "$JAVA_LDPATH"; then
-    ## Java failed to find its own library path.  Guess wildly.
-    JAVA_TMP_LDPATH=`ls -d $JAVA_HOME/jre/lib/*/client`
-    JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} `ls -d $JAVA_HOME/jre/lib/*/server`"
-    ## Add some paths that might work on Macs.
-    JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_HOME}/../Libraries ${JAVA_HOME}/Libraries"
-    ## Add some paths that might work on MinGW
-    JAVA_TMP_LDPATH="${JAVA_TMP_LDPATH} ${JAVA_HOME}/bin/client ${JAVA_HOME}/bin/server"
-    for dir in $JAVA_TMP_LDPATH; do
-      if test -f "$dir/$jvmlib"; then
-        JAVA_LDPATH=$dir
-        break
-      fi
-    done
-  fi
-
-  ## Verify value passed in option --with-java-libdir
-  if test -n "$JAVA_LDPATH"; then
-    if test -f "${JAVA_LDPATH}/$jvmlib"; then
-      :  # libjvm found
-    else
-      JAVA_LDPATH=""
     fi
-  fi
-
+
+    octave_cv_java_ldpath=$JAVA_LDPATH
+  ])
+  JAVA_LDPATH=$octave_cv_java_ldpath
   if test -z "$JAVA_LDPATH"; then
     AC_MSG_RESULT([not found])
     warn_java="Library $jvmlib not found.  Octave will not be able to call Java methods."
@@ -2573,13 +2622,19 @@
   esac
 
   ## Verify jni.h include file exists.
-  JNI_PATH=`echo $JAVA_CPPFLAGS | $SED -e 's/-I//g'`
-  have_jni=no
-  for dir in $JNI_PATH; do
-    if test -f "${dir}/jni.h"; then have_jni=yes; break; fi
-  done
-  if test $have_jni = yes; then
-    AC_MSG_RESULT([$dir])
+  AC_CACHE_VAL([octave_cv_java_have_jni],[
+    JNI_PATH=`echo $JAVA_CPPFLAGS | $SED -e 's/-I//g'`
+    octave_cv_java_have_jni=no
+    for dir in $JNI_PATH; do
+      if test -f "${dir}/jni.h"; then
+        octave_cv_java_have_jni=yes
+        octave_cv_java_jni_h_path=$dir
+        break
+      fi
+    done
+  ])
+  if test $octave_cv_java_have_jni = yes; then
+    AC_MSG_RESULT([$octave_cv_java_jni_h_path])
   else
     AC_MSG_RESULT([not found])
     warn_java="Include file <jni.h> not found.  Octave will not be able to call Java methods."
@@ -2665,16 +2720,16 @@
 install_build_logs=no
 AC_ARG_ENABLE([install-build-logs],
   [AS_HELP_STRING([--enable-install-build-logs],
-    [install build logs (i.e. config.log) with Octave])],
+    [install build logs (i.e., config.log) with Octave])],
   [if test "$enableval" = yes; then install_build_logs=yes; fi])
 AM_CONDITIONAL([AMCOND_INSTALL_BUILD_LOGS], [test $install_build_logs = yes])
 
-### Determine whether libraries should be linked with visibility attributes
-
-ENABLE_LIB_VISIBILITY_FLAGS=no
+### Determine whether libraries should be linked with visibility attributes.
+
+ENABLE_LIB_VISIBILITY_FLAGS=yes
 AC_ARG_ENABLE(lib-visibility-flags,
-  [AS_HELP_STRING([--enable-lib-visibility-flags],
-    [Build libraries with visibility flags (don't export all symbols). This feature is experimental and should only be used for testing.])],
+  [AS_HELP_STRING([--disable-lib-visibility-flags],
+    [don't build libraries with visibility flags (export all symbols)])],
   [case $enableval in
      yes) ENABLE_LIB_VISIBILITY_FLAGS=yes ;;
      no) ENABLE_LIB_VISIBILITY_FLAGS=no ;;
@@ -2707,7 +2762,7 @@
 AM_CONDITIONAL([AMCOND_LIB_VISIBILITY_FLAGS],
   [test $ENABLE_LIB_VISIBILITY_FLAGS = yes])
 
-### Set flags for symbol visibility
+### Set flags for symbol visibility.
 
 if test $ENABLE_LIB_VISIBILITY_FLAGS = yes; then
   EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
@@ -2887,13 +2942,13 @@
       [Define to 1 if compiler supports -Wimplicit-fallthrough warning])])
 fi
 
-### These are recommended by the gnulib bootstrap script:
+### Recommendations from the gnulib bootstrap script.
 
 GNULIB_LINK_DEPS="$FREXPF_LIBM $FREXP_LIBM $GETHOSTNAME_LIB $LIBSOCKET $LIB_CLOCK_GETTIME $LIB_CRYPTO $LIB_GETLOGIN $LIB_NANOSLEEP $LIB_SELECT $LTLIBICONV $LTLIBINTL $LTLIBTHREAD $INTL_MACOSX_LIBS"
 
-### FIXME: This is a kluge to transform $libdir/libiconv.dll.a to -liconv.
-### It would probably be better to fix gnulib to not give us an absolute
-### file name...
+## FIXME: This is a kluge to transform $libdir/libiconv.dll.a to -liconv.
+## It would probably be better to fix gnulib to not give us an absolute
+## file name...
 
 case $host_os in
   mingw*)
@@ -2911,7 +2966,9 @@
 
 AC_SUBST(GNULIB_LINK_DEPS)
 
-BASE_LIBOCTAVE_LINK_DEPS="$CURL_LIBS $SPARSE_XLIBS $ARPACK_LIBS $QRUPDATE_LIBS $FFTW_XLIBS $LAPACK_LIBS $BLAS_LIBS $READLINE_LIBS $TERM_LIBS $LIBGLOB $PCRE_LIBS $DL_LIBS $PTHREAD_LIBS $FLIBS $LIBS"
+### Set variables for link dependencies and options.
+
+BASE_LIBOCTAVE_LINK_DEPS="$CURL_LIBS $SPARSE_XLIBS $ARPACK_LIBS $QRUPDATE_LIBS $FFTW_XLIBS $LAPACK_LIBS $BLAS_LIBS $LTLIBREADLINE $LIBGLOB $PCRE_LIBS $DL_LIBS $PTHREAD_LIBS $FLIBS $LIBS"
 
 LIBOCTAVE_LINK_DEPS="$BASE_LIBOCTAVE_LINK_DEPS $GNULIB_LINK_DEPS"
 
@@ -2999,15 +3056,16 @@
 AC_SUBST(OCTAVE_GUI_LINK_OPTS)
 
 ##############################################################################
-### Configuration tests done
-
-### Restore original compilation flags
+### Configuration tests done.
+
+### Restore original compilation flags.
 CFLAGS="$original_octave_configure_CFLAGS"
 CXXFLAGS="$original_octave_configure_CXXFLAGS"
 
 ### Add footer to config.h
 
-AH_BOTTOM([#include "oct-conf-post.h"])
+AH_BOTTOM([#include "oct-conf-post-private.h"])
+AH_BOTTOM([#include "oct-conf-post-public.h"])
 
 ### Make all AC_DEFINES available to testif feature of test.m function.
 dnl This must reside at the bottom of configure.ac after all AC_DEFINES
@@ -3105,12 +3163,19 @@
   liboctave/octave.pc:liboctave/octave.in.pc
   libinterp/octinterp.pc:libinterp/octinterp.in.pc])
 
-dnl We use a .in.h file for oct-conf-post.h simply to copy it to the build tree
+dnl We use a .in.h file for oct-conf-post-private.h and
+dnl oct-conf-post-public.h simply to copy it to the build tree
 dnl so that we don't have to add the -I${top_srcdir} to any CPPFLAGS variables.
 
-AC_CONFIG_FILES([oct-conf-post.h-tmp:oct-conf-post.in.h])
-AC_CONFIG_COMMANDS([oct-conf-post.h],
-  [$SHELL $srcdir/build-aux/move-if-change oct-conf-post.h-tmp oct-conf-post.h])
+AC_CONFIG_FILES([
+  oct-conf-post-private.h-tmp:oct-conf-post-private.in.h
+  oct-conf-post-public.h-tmp:oct-conf-post-public.in.h])
+
+AC_CONFIG_COMMANDS([oct-conf-post-private.h],
+  [$SHELL $srcdir/build-aux/move-if-change oct-conf-post-private.h-tmp oct-conf-post-private.h])
+
+AC_CONFIG_COMMANDS([oct-conf-post-public.h],
+  [$SHELL $srcdir/build-aux/move-if-change oct-conf-post-public.h-tmp oct-conf-post-public.h])
 
 OCTAVE_CONFIG_MOVE_IF_CHANGE_FILES([
   liboctave/external/mk-f77-def.sh
@@ -3225,7 +3290,7 @@
   Qt lrelease:                   $LRELEASE $LRELEASEFLAGS
   Qt qcollectiongenerator:       $QCOLLECTIONGENERATOR $QCOLLECTIONGENERATORFLAGS
   Qt qhelpgenerator:             $QHELPGENERATOR $QHELPGENERATORFLAGS
-  READLINE libraries:            $READLINE_LIBS
+  READLINE libraries:            $LIBREADLINE
   Sndfile CPPFLAGS:              $SNDFILE_CPPFLAGS
   Sndfile LDFLAGS:               $SNDFILE_LDFLAGS
   Sndfile libraries:             $SNDFILE_LIBS
@@ -3242,7 +3307,6 @@
   SUNLINSOL KLU CPPFLAGS:        $SUNDIALS_SUNLINSOLKLU_CPPFLAGS
   SUNLINSOL KLU LDFLAGS:         $SUNDIALS_SUNLINSOLKLU_LDFLAGS
   SUNLINSOL KLU libraries:       $SUNDIALS_SUNLINSOLKLU_LIBS
-  TERM libraries:                $TERM_LIBS
   UMFPACK CPPFLAGS:              $UMFPACK_CPPFLAGS
   UMFPACK LDFLAGS:               $UMFPACK_LDFLAGS
   UMFPACK libraries:             $UMFPACK_LIBS
--- a/doc/interpreter/TODO	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-* Improve the index.
-
-* Describe the grammar (grammar.texi).
-
-* More examples.
-
-* Some things from NEWS that might not be documented yet:
-
-  * Expressions of the form
-
-      A(i,j) = x
-
-    where X is a scalar and the indices i and j define a matrix of
-    elements now work as you would expect rather than giving an error.
-    I am told that this is how Matlab 5.0 will behave when it is
-    released.
-    (assignment)
-
-  * Octave's parser now does some simple constant folding.  This means
-    that expressions like 3*i are now evaluated only once, when a
-    function is compiled, and the right hand side of expressions like
-    a = [1,2;3,4] are treated as true matrix constants rather than
-    lists of elements which must be evaluated each time they are
-    needed.
-    (???)
-
-  * Octave now attempts to continue after floating point exceptions
-    or out-of-memory errors.
-    (???)
-
-  * If Octave crashes, it now attempts to save all user-defined
-    variables in a file named 'octave-core' in the current directory
-    before exiting.
-    (???)
-
-  * The info reader is now a separate binary that runs as a
-    subprocess.  You still need the info reader distributed with
-    Octave though, because there are some new command-line arguments
-    that are not yet available in the public release of Info.
-    (install)
-
-  * If it is present, Octave will now use an 'ls-R' database file to
-    speed up recursive path searching.  Octave looks for a file called
-    ls-R in the directory specified by the environment variable
-    OCTAVE_DB_DIR.  If that is not set but the environment variable
-    OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave.
-    Otherwise, Octave looks in the directory $datadir/octave (normally
-    /usr/local/lib/octave).
-    (install)
--- a/doc/interpreter/contributors.in	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/contributors.in	Tue Nov 15 13:15:28 2022 -0800
@@ -34,6 +34,7 @@
 David Billinghurst
 Don Bindner
 Jakub Bogusz
+Gaël Bonithon
 Moritz Borgmann
 Paul Boven
 Richard Bovey
@@ -404,7 +405,8 @@
 Ariel Tankus
 Falk Tannhäuser
 Duncan Temple Lang
-Matthew Tenny
+Matthew Tennyhg
+Remi Thebault
 Kris Thielemans
 Georg Thimm
 Paul Thomas
--- a/doc/interpreter/doccheck/aspell-octave.en.pws	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/doccheck/aspell-octave.en.pws	Tue Nov 15 13:15:28 2022 -0800
@@ -32,8 +32,8 @@
 Autoconf
 autocorrelated
 autocovariances
+autoload
 Autoload
-autoload
 autoloaded
 Autoloading
 Automake
@@ -48,8 +48,8 @@
 backtrace
 bartlett
 Barycentric
+BaseValue
 basevalue
-BaseValue
 BDF
 bdf
 benchmarking
@@ -67,6 +67,7 @@
 binoinv
 binopdf
 Biomathematics
+bitwidth
 bitwise
 blas
 bmp
@@ -82,10 +83,10 @@
 broadcastable
 BufSize
 builtin
+bulleted
 Bulleted
-bulleted
+buttondownfcn
 ButtonDownFcn
-buttondownfcn
 BV
 ByRows
 BZ
@@ -144,11 +145,11 @@
 colorcube
 colormap
 colormaps
+ColorOrder
 colororder
-ColorOrder
 colperm
+commentstyle
 CommentStyle
-commentstyle
 ComplexEqn
 cond
 condest
@@ -172,8 +173,8 @@
 CreateFcn
 CRLF
 crossflow
+Crout
 crout
-Crout
 cryptographic
 CSparse
 CSV
@@ -220,16 +221,16 @@
 Delaunay
 delaunay
 delaunayn
+deletefcn
 DeleteFcn
-deletefcn
 delim
 deltaX
 det
 dggsvd
 diag
 diagcomp
+dialogs
 Dialogs
-dialogs
 diamondsuit
 differentiable
 digamma
@@ -256,8 +257,8 @@
 dt
 dx
 dy
+eastoutside
 EastOutside
-eastoutside
 Econometrics
 edgecolor
 EdgeLighting
@@ -270,8 +271,8 @@
 elementwise
 elseif
 emacs
+emptyvalue
 EmptyValue
-emptyvalue
 encodings
 endfunction
 endian
@@ -284,15 +285,15 @@
 eps
 eq
 equidistributed
+Equilibration
 equilibration
-Equilibration
 equispaced
 erf
 erfc
 erfi
 errno
+errorbar
 Errorbar
-errorbar
 Errorbars
 errorbars
 errordlg
@@ -330,8 +331,8 @@
 fieldname
 fieldnames
 FIFOs
+FileName
 filename
-FileName
 filenames
 filepaths
 Filesystem
@@ -346,10 +347,10 @@
 FLTK
 fminsearch
 fminunc
+FontConfig
 fontconfig
-FontConfig
+fontname
 FontName
-fontname
 forall
 forcecelloutput
 foregroundcolor
@@ -386,16 +387,18 @@
 geq
 gesdd
 gesvd
+getaudiodata
+getplayer
 gfortran
 Ghostscript
 Ghostscript's
+GIF
 gif
-GIF
 glibc
 globbing
 glpk
+GLS
 gls
-GLS
 glyphs
 GMRES
 Gnuplot
@@ -420,18 +423,18 @@
 gzip
 gzipped
 Hadamard
+HandleVisibility
 handlevisibility
-HandleVisibility
 Hankel
+Hanning
 hanning
-Hanning
 hardcode
 hardcoded
 hardcoding
+hdf
 HDF
-hdf
+headerlines
 HeaderLines
-headerlines
 headlength
 headstyle
 headwidth
@@ -446,8 +449,8 @@
 hggroups
 hgid
 hgload
+HH
 hh
-HH
 histc
 holomorphic
 horizontalalignment
@@ -459,6 +462,7 @@
 hygecdf
 hygeinv
 hygepdf
+hyperthreading
 hypervolume
 ichol
 ict
@@ -469,8 +473,8 @@
 ifelse
 ifft
 ifftn
+ignorecase
 IgnoreCase
-ignorecase
 ij
 ilu
 ilutp
@@ -522,7 +526,9 @@
 isosurface
 isosurfaces
 isovalue
+isplaying
 isreal
+isrecording
 issparse
 isvector
 iter
@@ -530,6 +536,7 @@
 ith
 iy
 iz
+jacobian
 Jacobian
 Jacobians
 javaaddpath
@@ -540,10 +547,11 @@
 JDK
 JIS
 JPattern
+JPEG
 jpeg
-JPEG
 jpg
 JSON
+Jupyter
 jvm
 JVM's
 kendall
@@ -551,7 +559,6 @@
 keypress
 keypressfcn
 KeyType
-Konrod
 kron
 Krylov
 kurtosis
@@ -597,8 +604,8 @@
 logncdf
 logninv
 lognpdf
+lookup
 Lookup
-lookup
 lookups
 lossless
 lsode
@@ -612,6 +619,7 @@
 lz
 lzma
 lzw
+Magick
 makefile
 makefiles
 makehgtform
@@ -632,8 +640,13 @@
 MaxStep
 mdl
 meansq
+Memoization
+memoize
+memoized
+memoizing
 menubar
 menubars
+menuselectedfcn
 MERCHANTABILITY
 Mersenne
 meshgrid
@@ -641,13 +654,12 @@
 meshstyle
 metadata
 MetaFile
+Metafile
 metafile
-Metafile
 metafiles
 mex
 mget
 michol
-Microsystems
 MinGW
 minima
 Minimizers
@@ -677,19 +689,18 @@
 multi
 multibyte
 multipage
+MultipleDelimsAsOne
 multipledelimsasone
-MultipleDelimsAsOne
 MultiSelect
 multistep
 MvPattern
 mxArray
 myclass
-myfun
 nabla
 NAMESPACE
 namespace
+NaN
 nan
-NaN
 nancond
 nanflag
 NaNs
@@ -705,7 +716,6 @@
 ndims
 ne
 neq
-NeXT
 NextPlot
 nfft
 ni
@@ -746,7 +756,6 @@
 NTSC
 numbertitle
 numel
-Numpy
 nzmax
 oct
 octaverc
@@ -778,18 +787,18 @@
 outlier
 outliers
 OutputAllIndices
+outputfcn
 OutputFcn
-outputfcn
 OutputSel
 overdetermined
 overridable
 paperorientation
+paperposition
 PaperPosition
-paperposition
 paperpositionmode
 papersize
+paperunits
 PaperUnits
-paperunits
 parametrically
 parseparams
 pbm
@@ -802,8 +811,8 @@
 pcre
 PCRE
 PCX
+PDF
 pdf
-PDF
 pdflatex
 pentadiagonal
 periodogram
@@ -812,10 +821,11 @@
 PGMRES
 PHP
 pict
+Piecewise
 piecewise
-Piecewise
 pinv
 PixelRegion
+playblocking
 PlotBoxAspectRatio
 png
 PNG
@@ -840,8 +850,8 @@
 precisiondate
 preconditioner
 preconditioners
+preformatted
 Preformatted
-preformatted
 premultiplied
 Prepend
 prepended
@@ -851,8 +861,8 @@
 PrettyWriter
 printf
 priori
+Profiler
 profiler
-Profiler
 programmatically
 prolate
 PromptString
@@ -902,11 +912,13 @@
 randperm
 rangle
 ranlib
+RapidJSON
 rasterized
 rceil
 rdivide
 readline
 Readline
+recordblocking
 RECT
 recursing
 redistributable
@@ -938,14 +950,14 @@
 restorePrevious
 RET
 retarget
+returnonerror
 ReturnOnError
-returnonerror
 rfloor
 RGB
 rgb
 RGBImage
+Rightarrow
 rightarrow
-Rightarrow
 rle
 rline
 rmdir
@@ -961,7 +973,6 @@
 Scalable
 schar
 Schur
-SCO
 screenful
 sed
 seealso
@@ -969,8 +980,8 @@
 Sep
 SHA
 shiftdim
+SIGNUM
 signum
-SIGNUM
 sim
 SIMAX
 SIMD
@@ -985,8 +996,8 @@
 slcidx
 slx
 southeastoutside
+SouthOutside
 southoutside
-SouthOutside
 southwestoutside
 sp
 spadesuit
@@ -1043,17 +1054,17 @@
 struct
 structs
 subarrays
+Subclasses
 subclasses
-Subclasses
 subdiagonal
 subdiagonals
 subdirectories
 subdirectory
 subexpressions
+subfunction
 Subfunction
-subfunction
+subfunctions
 Subfunctions
-subfunctions
 subinterval
 Subintervals
 subintervals
@@ -1067,8 +1078,8 @@
 subprocesses
 Subprocesses
 subsasgn
+Subscripted
 subscripted
-Subscripted
 subscripting
 subseteq
 subsindex
@@ -1091,15 +1102,15 @@
 supseteq
 surd
 SV
+svd
 SVD
-svd
 svds
 SVG
 svg
 Sym
 sym
+symamd
 SYMAMD
-symamd
 symbfact
 symrcm
 Syntaxes
@@ -1107,8 +1118,8 @@
 terminal's
 tex
 texi
+Texinfo
 texinfo
-Texinfo
 TextAlphaBits
 textarrow
 textbackgroundcolor
@@ -1123,6 +1134,7 @@
 textscan
 th
 thetaticks
+tickaligned
 ticklabels
 TikZ
 Timestamp
@@ -1154,8 +1166,8 @@
 triplot
 trisurf
 trivariate
+truecolor
 TrueColor
-truecolor
 tuples
 txi
 typedefs
@@ -1167,10 +1179,10 @@
 UI
 uibuttongroup
 Uibuttongroup
+uicontextmenu
 Uicontextmenu
-uicontextmenu
+uicontrol
 Uicontrol
-uicontrol
 uicontrols
 UID
 uimenu
@@ -1183,18 +1195,17 @@
 uipushtools
 uiputfile
 uitab
+Uitable
 uitable
-Uitable
 Uitoggletool
 uitoggletool
+uitoolbar
 Uitoolbar
-uitoolbar
 ulong
-Ultrix
 umfpack
 uminus
+unary
 Unary
-unary
 unconvertible
 undirected
 unifcdf
@@ -1215,6 +1226,7 @@
 unpermuted
 unpivoted
 unregister
+unregistering
 unscaled
 unshare
 Unshared
@@ -1249,29 +1261,30 @@
 vertices
 viewable
 viridis
+vorbis
 Vorbis
-vorbis
+Voronoi
 voronoi
-Voronoi
 waitbar
 waitbars
+wav
 WAV
-wav
+waypoint
+waypoints
 Waypoints
-waypoints
 WayPoints
 wblcdf
 wblinv
 wblpdf
+westoutside
 WestOutside
-westoutside
 Whitespace
 whitespace
 whos
 Wikipedia
 wildcard
+wildcards
 Wildcards
-wildcards
 windowbuttondownfcn
 windowbuttonmotionfcn
 windowbuttonupfcn
@@ -1282,6 +1295,7 @@
 wlen
 workspace
 wp
+writeable
 xb
 xboxes
 xc
@@ -1336,8 +1350,8 @@
 yticks
 yy
 YY
+yyyy
 YYYY
-yyyy
 yyyymmddTHHMMSS
 zggsvd
 Ziggurat
--- a/doc/interpreter/expr.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/expr.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -817,6 +817,8 @@
 @opindex @code{'}
 @DOCSTRING(ctranspose)
 
+@DOCSTRING(pagectranspose)
+
 @opindex .\
 @DOCSTRING(ldivide)
 
@@ -850,6 +852,8 @@
 @opindex @code{.'}
 @DOCSTRING(transpose)
 
+@DOCSTRING(pagetranspose)
+
 @opindex -
 @DOCSTRING(uminus)
 
--- a/doc/interpreter/genpropdoc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/genpropdoc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -930,6 +930,15 @@
 for the x-axis.  __modemsg__.   @xref{XREFxlim, , @w{xlim function}}.";
         s.valid = valid_2elvec;
 
+      case "xlimitmethod"
+        s.doc = "Method used to determine the x axis limits when the \
+@code{xlimmode} property is @qcode{\"auto\"}.  The default value, \
+@qcode{\"tickaligned\"} makes limits align with the closest ticks.  With \
+value @qcode{\"tight\"} the limits are adjusted to enclose all the graphics \
+objects in the axes, while with value @qcode{\"padded\"}, an additionnal \
+margin of about 7%% of the data extent is added around the objects. \
+@xref{XREFaxis, , @w{axis function}}.";
+
       case "xlimmode"
       case "xminorgrid"
         s.doc = "Control whether minor x grid lines are displayed.";
@@ -975,6 +984,15 @@
 for the y-axis.  __modemsg__.  @xref{XREFylim, , @w{ylim function}}.";
         s.valid = valid_2elvec;
 
+      case "ylimitmethod"
+        s.doc = "Method used to determine the y axis limits when the \
+@code{xlimmode} property is @qcode{\"auto\"}.  The default value, \
+@qcode{\"tickaligned\"} makes limits align with the closest ticks.  With \
+value @qcode{\"tight\"} the limits are adjusted to enclose all the graphics \
+objects in the axes, while with value @qcode{\"padded\"}, an additionnal \
+margin of about 7%% of the data extent is added around the objects. \
+@xref{XREFaxis, , @w{axis function}}.";
+
       case "ylimmode"
       case "yminorgrid"
         s.doc = "Control whether minor y grid lines are displayed.";
@@ -1013,6 +1031,15 @@
 for the z-axis.  __modemsg__.  @xref{XREFzlim, , @w{zlim function}}.";
         s.valid = valid_2elvec;
 
+      case "zlimitmethod"
+        s.doc = "Method used to determine the z axis limits when the \
+@code{xlimmode} property is @qcode{\"auto\"}.  The default value, \
+@qcode{\"tickaligned\"} makes limits align with the closest ticks.  With \
+value @qcode{\"tight\"} the limits are adjusted to enclose all the graphics \
+objects in the axes, while with value @qcode{\"padded\"}, an additionnal \
+margin of about 7%% of the data extent is added around the objects. \
+@xref{XREFaxis, , @w{axis function}}.";
+
       case "zlimmode"
       case "zminorgrid"
         s.doc = "Control whether minor z grid lines are displayed.";
@@ -1064,6 +1091,29 @@
 before rendering.\n\
 @xref{XREFinterpreterusage, , @w{Use of the interpreter property}}.";
 
+      case "itemhitfcn"
+        s.doc = "Callback function which is executed when a legend item \
+is clicked.  @xref{Callbacks, , @w{Callbacks section}}.\n\
+\n\
+The callback function must have the following prototype \
+@code{fcn (hlegend, evnt)}, where @code{hlegend} is the legend object handle \
+and @code{evnt} is a structure with the following fields:\n\
+@table @code\n\
+@item Peer\n\
+Handle of the plot object to which the clicked item is associated.\n\
+@item Region\n\
+May be @qcode{\"icon\"} or @qcode{\"label\"} depending on which part of \
+the item is clicked.\n\
+@item SelectionType\n\
+One of @qcode{\"normal\"}, @qcode{\"extend\"}, @qcode{\"open\"}, or \
+@qcode{\"alt\"}. \
+@xref{XREFfigureselectiontype, , @w{Figure @qcode{\"selectiontype\"}}}.\n\
+@item Source\n\
+Handle of the legend object.\n\
+@item EventName\n\
+Name is @qcode{\"ItemHit\"}.\n\
+@end table";
+
       case "location"
         s.doc = "Control the location of the legend.";
 
@@ -2077,8 +2127,8 @@
     if (isempty (props))
         props = {"autoupdate", "box", "color", "edgecolor", "fontangle", ...
                  "fontname", "fontsize", "fontunits", "fontweight", ...
-                 "location", "numcolumns", "orientation", "position", ...
-                 "string", "textcolor", "title", "units"};
+                 "itemhitfcn", "location", "numcolumns", "orientation", ...
+                 "position", "string", "textcolor", "title", "units"};
     endif
   elseif (strcmp (objname, "scatter"))
     ## Make sure to get a scatter object independent of graphics toolkit
--- a/doc/interpreter/gui.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/gui.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -108,6 +108,8 @@
 toolkit, although some functionality is available with the @code{fltk} toolkit.
 There is no support for the @code{gnuplot} toolkit.
 
+@DOCSTRING(uifigure)
+
 @DOCSTRING(uipanel)
 
 @DOCSTRING(uibuttongroup)
--- a/doc/interpreter/install.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/install.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -317,7 +317,7 @@
 been OpenGL-based.
 
 @item RapidJSON
-A fast JSON parser/generator for C++ with both SAX/DOM style API
+A fast JSON parser/generator for C++ with both @nospell{SAX/DOM} style API
 (@url{https://rapidjson.org/}).  RapidJSON is required to read or write
 from or to JSON files with the functions @code{jsondecode} and
 @code{jsonencode}.
@@ -649,7 +649,7 @@
 
 @item SuiteSparse
 
-@item @sc{sundials ida}
+@item @sc{sundials @nospell{ida}}
 
 @item @sc{arpack}
 @end itemize
@@ -795,7 +795,7 @@
 @noindent
 Other systems may require a different solution.
 
-@item @sc{sundials ida}
+@item @sc{sundials @nospell{ida}}
 (@url{https://computing.llnl.gov/projects/sundials/ida})
 
 When configuring with @code{cmake} add the flag
@@ -884,7 +884,7 @@
 
 @itemize @bullet
 @item
-On some SCO systems, @code{info} fails to compile if
+On some @nospell{SCO} systems, @code{info} fails to compile if
 @w{@code{HAVE_TERMIOS_H}} is defined in @file{config.h}.  Simply
 removing the definition from @file{info/config.h} should allow it to
 compile.
@@ -955,8 +955,8 @@
 @noindent
 while compiling @file{sighandlers.cc}, you may need to edit some files
 in the @code{gcc} include subdirectory to add proper prototypes for
-functions there.  For example, Ultrix 4.2 needs proper declarations for
-the @code{signal} function and the @w{@code{SIG_IGN}} macro in the file
+functions there.  For example, @nospell{Ultrix} 4.2 needs proper declarations
+for the @code{signal} function and the @w{@code{SIG_IGN}} macro in the file
 @file{signal.h}.
 
 On some systems the @w{@code{SIG_IGN}} macro is defined to be something
@@ -1022,7 +1022,7 @@
 with optimization turned off.
 
 @item
-On NeXT systems, if you get errors like this:
+On @nospell{NeXT} systems, if you get errors like this:
 
 @example
 @group
@@ -1065,7 +1065,7 @@
 this issue.
 
 @item
-On NeXT systems, linking to @file{libsys_s.a} may fail to resolve the
+On @nospell{NeXT} systems, linking to @file{libsys_s.a} may fail to resolve the
 following functions
 
 @example
--- a/doc/interpreter/matrix.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/matrix.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -112,8 +112,6 @@
 
 @DOCSTRING(circshift)
 
-@DOCSTRING(shift)
-
 @DOCSTRING(shiftdim)
 
 @DOCSTRING(sort)
--- a/doc/interpreter/mk-doc-cache.pl	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/mk-doc-cache.pl	Tue Nov 15 13:15:28 2022 -0800
@@ -34,25 +34,22 @@
 use File::Temp;
 
 my $doc_delim = "\x{1d}";
-my $tex_delim_pat = qr/\Q-*- texinfo -*-\E/;
+my $tex_delim_ptn = qr/\Q-*- texinfo -*-\E/;
 
-## Returns a File::Temp object with texinfo code.
+## Returns a File::Temp object with Texinfo code.
 sub make_texinfo_file
 {
   my $srcdir = shift;
   my $macro_fpath = shift;
   my @docstrings = @_;
 
-  my $t_file = File::Temp->new (UNLINK => 1);
+  my $tmpfile = File::Temp->new (UNLINK => 1);
 
   ## Only the first file is the macro file.  Copy its contents verbatim.
-  open (my $macro_fh, "<", $macro_fpath)
+  open (my $FH_macro, "<", $macro_fpath)
     or die "Unable to open $macro_fpath for reading: $!\n";
-  while (<$macro_fh>)
-    {
-      print {$t_file} $_;
-    }
-  close ($macro_fh);
+  while (<$FH_macro>) {  print {$tmpfile} $_;  }
+  close ($FH_macro);
 
   foreach my $filepath (@docstrings)
     {
@@ -64,35 +61,44 @@
           ## tree, from released sources.
           $filepath = File::Spec->catfile ($srcdir, $filepath);
         }
-      open (my $fh, "<", $filepath)
+      open (my $FH, "<", $filepath)
         or die "Unable to open $filepath for reading: $!\n";
 
       my $in_header = 1;
-      while (my $line = <$fh>)
+      while (my $line = <$FH>)
         {
           ## DOCSTRINGS header ends once we find the first function.
           if ($in_header && $line =~ m/^$doc_delim/)
             {
               $in_header = 0;
             }
-          next if $in_header;
-          next if $line =~ /$tex_delim_pat/;
+          next if ($in_header);
+          next if ($line =~ /$tex_delim_ptn/);
 
-          $line =~ s/\@seealso/\@xseealso/g;
+          ## Change @seealso to private @xseealso macro
+          if ($line =~ m'@seealso')
+          {
+            ## Combine @seealso macro spread over multiple lines
+            while ($line !~ m/}$/) {  $line .= <$FH>;  }
 
-          ## escape {}@ characters for texinfo
-          $line =~ s/([{}\@])/\@$1/g
-            if $line =~ m/^$doc_delim/;
+            ## escape @ characters in old-style class names like @ftp
+            $line =~ s/\@(\w)/\@\@$1/g;
+            $line =~ s'@@seealso'@xseealso';
+          }
 
-          print {$t_file} $line;
+          ## escape {}@ characters in Texinfo anchor name (e.g., @ftp/dir.m)
+          $line =~ s/([{}@])/\@$1/g if ($line =~ m/^$doc_delim/);
+
+          print {$tmpfile} $line;
         }
-      close ($fh);
+      close ($FH);
     }
 
-  print {$t_file} $doc_delim;
+  print {$tmpfile} $doc_delim;
 
-  $t_file->flush ();
-  return $t_file;
+  $tmpfile->flush ();
+
+  return $tmpfile;
 }
 
 sub get_info_text
@@ -106,7 +112,7 @@
     if (! defined $info_text);
 
   die "makeinfo produced no output!"
-    if ! $info_text;
+    if (! $info_text);
 
   return $info_text;
 }
@@ -117,7 +123,7 @@
 
   ## Constant patterns.  We only check for two underscores at the end,
   ## and not at the start, to also skip @class/__method__
-  my $private_name_pat = qr/__$/;
+  my $private_name_ptn = qr/__$/;
 
   my @formatted = ();
 
@@ -135,7 +141,7 @@
 
       my ($symbol, $doc) = split (/[\r\n]/, $block, 2);
 
-      next if (length ($symbol) > 2 && $symbol =~ m/$private_name_pat/);
+      next if (length ($symbol) > 2 && $symbol =~ m/$private_name_ptn/);
 
       if (! defined ($doc))
       {
@@ -156,6 +162,7 @@
 
       push (@formatted, [($symbol, $doc, $first_sentence)]);
     }
+
   return @formatted;
 }
 
@@ -164,22 +171,26 @@
   my ($str) = @_;
   my $len = length ($str);
 
-  print "# name: <cell-element>\n";
-  print "# type: sq_string\n";
-  print "# elements: 1\n";
-  print "# length: $len\n";
-  print "$str\n\n\n";
+  print <<__END_OF_ELEMENT__;
+# name: <cell-element>
+# type: sq_string
+# elements: 1
+# length: $len
+$str\n\n
+__END_OF_ELEMENT__
 }
 
 sub print_cache
 {
   my $num = @_;
 
-  print "# created by mk-doc-cache.pl\n";
-  print "# name: cache\n";
-  print "# type: cell\n";
-  print "# rows: 3\n";
-  print "# columns: $num\n";
+  print <<__END_OF_CACHE_HDR__;
+# created by mk-doc-cache.pl
+# name: cache
+# type: cell
+# rows: 3
+# columns: $num
+__END_OF_CACHE_HDR__
 
   foreach my $elt (@_)
     {
@@ -194,6 +205,8 @@
     }
 }
 
+## FIXME: This is a very C/C++ way of coding things.
+## Perl convention would just be to have the executable code at end of file.
 sub main
 {
   my $srcdir = shift;
--- a/doc/interpreter/mk-qthelp.pl	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/mk-qthelp.pl	Tue Nov 15 13:15:28 2022 -0800
@@ -26,8 +26,11 @@
 open (my $HTML, "<", $htmlfname) or die "Unable to open $htmlfname";
 
 # Skip through preamble of file to find start of list
-while (($_ = <$HTML>) !~ /^<div class="contents">/ ) {;}
-while (($_ = <$HTML>) !~ /^<ul class="no-bullet">/ ) {;}
+while (defined ($_ = <$HTML>) and ! /^<div class="contents">/ ) {;}
+while (defined ($_ = <$HTML>)
+         and ! /^<ul class="(?:no-bullet|toc-numbered-mark)">/ ) {;}
+
+die "index.html: reached EOF without finding data start pattern" if eof ($HTML);
 
 $level = 0;
 while (<$HTML>)
@@ -68,7 +71,11 @@
 open ($HTML, "<", $htmlfname) or die "Unable to open $htmlfname";
 
 # Skip through preamble of file to find start of list
-while (($_ = <$HTML>) !~ /^<table class="index-fn/ ) {;}
+while (defined ($_ = <$HTML>)
+         and ! /^<table class="(?:index-fn|fn-entries)/ ) {;}
+
+die "Function-Index.html: reached EOF without finding data start pattern"
+  if eof ($HTML);
 
 while (<$HTML>)
 {
--- a/doc/interpreter/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -346,7 +346,6 @@
 doc_EXTRA_DIST += \
   $(BUILT_OCTAVE_TEXI_SRC) \
   $(srcdir)/%reldir%/octave.info \
-  %reldir%/TODO \
   %reldir%/doc-cache \
   %reldir%/octave.dvi \
   %reldir%/octave.ps \
--- a/doc/interpreter/numbers.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/numbers.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -733,8 +733,8 @@
 
 @noindent
 where the results are respectively of types uint8, single, and single
-respectively.  This is done for Matlab compatibility.  Valid mixed operations
-are defined as follows:
+respectively.  This is done for @sc{matlab} compatibility.  Valid mixed
+operations are defined as follows:
 
 @multitable @columnfractions .2 .3 .3 .2
 @headitem @tab Mixed Operation @tab Result @tab
--- a/doc/interpreter/octave.css	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/octave.css	Tue Nov 15 13:15:28 2022 -0800
@@ -65,7 +65,7 @@
 /* Import web font Fantasque Sans Mono, Font Library Version 2016-04-05 */
 @font-face
 {
-  font-family: 'Fantasque Sans Mono', 'Courier New', Cousine, Courier, monospace;
+  font-family: 'Fantasque Sans Mono', FreeMono, 'Courier New', Cousine, Courier, monospace;
   src: local('Fantasque Sans Mono Bold'),
        local('FantasqueSansMono-Bold'),
        url('https://fontlibrary.org/assets/fonts/fantasque-sans-mono/b0cbb25e73a9f8354e96d89524f613e7/a46033d3a07d9385620dc83b7655203f/FantasqueSansMonoBold.ttf') format('truetype');
@@ -75,7 +75,7 @@
 
 @font-face
 {
-  font-family: 'Fantasque Sans Mono', 'Courier New', Cousine, Courier,  'monospace';
+  font-family: 'Fantasque Sans Mono', FreeMono, 'Courier New', Cousine, Courier,  'monospace';
   src: local('Fantasque Sans Mono Bold Italic'),
        local('FantasqueSansMono-BoldItalic'),
        url('https://fontlibrary.org/assets/fonts/fantasque-sans-mono/b0cbb25e73a9f8354e96d89524f613e7/b0683ef4c834908aa372ec78dea42349/FantasqueSansMonoBoldItalic.ttf') format('truetype');
@@ -85,7 +85,7 @@
 
 @font-face
 {
-  font-family: 'Fantasque Sans Mono', 'Courier New', Cousine, Courier, monospace;
+  font-family: 'Fantasque Sans Mono', FreeMono, 'Courier New', Cousine, Courier, monospace;
   src: local('Fantasque Sans Mono Italic'),
        local('FantasqueSansMono-Italic'),
        url('https://fontlibrary.org/assets/fonts/fantasque-sans-mono/b0cbb25e73a9f8354e96d89524f613e7/b78d0a48e4443f797e8d45dcf97594f7/FantasqueSansMonoItalic.ttf') format('truetype');
@@ -95,7 +95,7 @@
 
 @font-face
 {
-  font-family: 'Fantasque Sans Mono', 'Courier New', Cousine, Courier, monospace;
+  font-family: 'Fantasque Sans Mono', FreeMono, 'Courier New', Cousine, Courier, monospace;
   src: local('Fantasque Sans Mono Regular'),
        local('FantasqueSansMono-Regular'),
        url('https://fontlibrary.org/assets/fonts/fantasque-sans-mono/b0cbb25e73a9f8354e96d89524f613e7/f3fdc4f0f26e4431f54e8b552d55480c/FantasqueSansMonoRegular.ttf') format('truetype');
@@ -104,7 +104,7 @@
 }
 
 /* Use custom fonts */
-code, kbd, samp, tt, pre { font-family: 'Fantasque Sans Mono', 'Courier New', Cousine, Courier, monospace; }
+code, kbd, samp, tt, pre { font-family: 'Fantasque Sans Mono', FreeMono, 'Courier New', Cousine, Courier, monospace; }
 
 code, kbd, samp, tt {
   font-style: italic;
--- a/doc/interpreter/octave.texi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/octave.texi	Tue Nov 15 13:15:28 2022 -0800
@@ -664,6 +664,7 @@
 * Broadcasting::               Broadcasting operations
 * Function Application::       Applying functions to arrays, cells, and structs
 * Accumulation::               Accumulation functions
+* Memoization::                Memoization techniques
 * Miscellaneous Techniques::   Other techniques for speeding up code
 * Examples::
 
--- a/doc/interpreter/preface.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/preface.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -110,7 +110,7 @@
 External Research Program.
 
 @item
-Sun Microsystems, Inc., for an Academic Equipment grant.
+@nospell{Sun Microsystems}, Inc., for an Academic Equipment grant.
 
 @item
 International Business Machines, Inc., for providing equipment as part
--- a/doc/interpreter/sparse.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/sparse.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -530,13 +530,6 @@
 @noindent
 returns a full matrix as can be seen.
 
-
-Additionally, if @code{sparse_auto_mutate} is true, all sparse functions
-test the amount of memory occupied by the sparse matrix to see if the
-amount of storage used is larger than the amount used by the full
-equivalent.  Therefore @code{speye (2) * 1} will return a full matrix as
-the memory used is smaller for the full version than the sparse version.
-
 As all of the mixed operators and functions between full and sparse
 matrices exist, in general this does not cause any problems.  However,
 one area where it does cause a problem is where a sparse matrix is
@@ -561,11 +554,6 @@
 always returns a sparse matrix, even if the memory used will be larger
 than its full representation.
 
-@DOCSTRING(sparse_auto_mutate)
-
-Note that the @code{sparse_auto_mutate} option is incompatible with
-@sc{matlab}, and so it is off by default.
-
 @node Mathematical Considerations
 @subsubsection Mathematical Considerations
 
--- a/doc/interpreter/stats.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/stats.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -151,6 +151,8 @@
 
 @DOCSTRING(zscore)
 
+@DOCSTRING(normalize)
+
 @DOCSTRING(histc)
 
 @noindent
--- a/doc/interpreter/vectorize.txi	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/interpreter/vectorize.txi	Tue Nov 15 13:15:28 2022 -0800
@@ -42,6 +42,7 @@
 * Broadcasting::               Broadcasting operations
 * Function Application::       Applying functions to arrays, cells, and structs
 * Accumulation::               Accumulation functions
+* Memoization::                Memoization techniques
 * Miscellaneous Techniques::   Other techniques for speeding up code
 * Examples::
 @end menu
@@ -409,10 +410,10 @@
       +=  -=  .*=  ./=  .\=  .^=  &=  |=
 @end example
 
-Here is a real example of the power of broadcasting.  The Floyd-Warshall
-algorithm is used to calculate the shortest path lengths between every pair of
-vertices in a graph.  A naive implementation for a graph adjacency matrix of
-order @var{n} might look like this:
+Here is a real example of the power of broadcasting.  The
+@nospell{Floyd-Warshall} algorithm is used to calculate the shortest path
+lengths between every pair of vertices in a graph.  A naive implementation for
+a graph adjacency matrix of order @var{n} might look like this:
 
 @example
 @group
@@ -470,8 +471,8 @@
 faster ordinary matrix multiplication, @code{@var{c} = @var{a}*@var{b};}.
 
 A note on terminology: ``broadcasting'' is the term popularized by the
-Numpy numerical environment in the Python programming language.  In other
-programming languages and environments, broadcasting may also be known
+@nospell{Numpy} numerical environment in the Python programming language.  In
+other programming languages and environments, broadcasting may also be known
 as @emph{binary singleton expansion} (@nospell{BSX}, in @sc{matlab}, and the
 origin of the name of the @code{bsxfun} function), @emph{recycling} (R
 programming language), @emph{single-instruction multiple data} (SIMD),
@@ -551,6 +552,82 @@
 
 @DOCSTRING(accumdim)
 
+@node Memoization
+@section Memoization
+
+Memoization is a technique to cache the results of slow function calls and
+return the cached value when the function is called with the same inputs again,
+instead of reevaluating it.  It is very common to replace function calls with
+lookup tables if the same inputs are happening over and over again in a known,
+predictable way.  Memoization is, at its core, an extension of this practice
+where the lookup table is extended even during runtime for new arguments not
+seen previously.  A basic theoretical background can be found on Wikipedia or
+any undergraduate-level computer science textbook.
+
+Octave's @code{memoize} function provides drop-in memoization functionality for
+any user function or Octave function, including compiled functions.
+
+@DOCSTRING(memoize)
+
+To memoize a function @code{z = foo(x, y)}, use this general pattern:
+
+@example
+@group
+foo2 = memoize (@@(@var{x, y}) @var{foo(x, y)});
+z = foo2 (x, y);
+@end group
+@end example
+
+In the above example, the first line creates a memoized version @code{foo2} of
+the function @code{foo}.  For simple functions with only trivial wrapping, this
+line can also be shortened to:
+
+@example
+@group
+foo2 = memoize (@@foo);
+@end group
+@end example
+
+The second line @code{z = foo2 (x, y);} calls that memoized version @code{foo2}
+instead of the original function, allowing @code{memoize} to intercept the call
+and replace it with a looked-up value from a table if the inputs have occurred
+before, instead of evaluating the original function again.
+
+Note that this will not accelerate the @emph{first} call to the function but
+only subsequent calls.
+
+Note that due to the overhead incurred by @code{memoize} to create and manage
+the lookup tables for each function, this technique is useful only for
+functions that take at least a couple of seconds to execute.  Such functions
+can be replaced by table lookups taking only a millisecond or so, but if the
+original function itself was taking only milliseconds, memoizing it will not
+speed it up.
+
+Recursive functions can be memoized as well, using a pattern like:
+
+@example
+@group
+function z = foo (x, y)
+  persistent foo2 = memoize (@@foo);
+  foo2.CacheSize = 1e6;
+
+  ## Call the memoized version when recursing
+  z = foo2 (x, y);
+endfunction
+@end group
+@end example
+
+The @code{CacheSize} can be optionally increased in anticipation of a large
+number of function calls, such as from inside a recursive function.  If
+@code{CacheSize} is exceeded, the memoization tables are resized, causing a
+slowdown.  Increasing the @code{CacheSize} thus works like preallocation to
+speed up execution.
+
+The function @code{clearAllMemoizedCaches} clears the memoization tables when
+they are no longer needed.
+
+@DOCSTRING(clearAllMemoizedCaches)
+
 @node Miscellaneous Techniques
 @section Miscellaneous Techniques
 @cindex execution speed
--- a/doc/refcard/refcard.tex	Tue Nov 15 13:25:31 2022 -0300
+++ b/doc/refcard/refcard.tex	Tue Nov 15 13:15:28 2022 -0800
@@ -40,7 +40,7 @@
 % horizontal and vertical margin space measured from *paper edge*
 % and the interline and interspec spacing.
 % In order to support a new papersize, you have to fiddle with the
-% latter four dimensions. Just try out a few values.
+% latter four dimensions.  Just try out a few values.
 % All other values will be computed at process time so it should be
 % quite easy to support different paper sizes - only four values to
 % guess :-)
@@ -55,8 +55,7 @@
 % I chose to omit.  In general, not all synonyms for commands are
 % covered, nor all variations of a command.
 
-\def\octaveversion{3.0.0}
-\def\refcardedition{2.0}
+\def\octaveversion{8.0.0}
 
 % ------------------
 % multicolumn format
@@ -135,9 +134,9 @@
 
 % No printed folding guide:
 
-%\def\vdecor{\hskip\hmargin plus1fil
-%  \hskip\barwidth plus1fil
-%  \hskip\hmargin plus1fil}
+\def\vdecor{\hskip\hmargin plus1fil
+  \hskip\barwidth plus1fil
+  \hskip\hmargin plus1fil}
 
 % Solid line folding guide:
 
@@ -147,11 +146,11 @@
 
 % For small marks near top and bottom as folding guide:
 
-\def\vdecor{\hskip\hmargin plus1fil%
-  \vbox to \vsize{\hbox to \barwidth{\vrule height\barheight width\barwidth}%
-  \vfill
-  \hbox to \barwidth{\vrule height\barheight width\barwidth}}%
-  \hskip\hmargin plus1fil}
+%\def\vdecor{\hskip\hmargin plus1fil%
+%  \vbox to \vsize{\hbox to \barwidth{\vrule height\barheight width\barwidth}%
+%  \vfill
+%  \hbox to \barwidth{\vrule height\barheight width\barwidth}}%
+%  \hskip\hmargin plus1fil}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                      %
@@ -378,19 +377,16 @@
 % The actual text of the reference card
 % -------------------------------------
 
-{\vbbf Octave Quick Reference}\hfil{\smrm Octave Version \octaveversion}\qquad
+{\vbbf Octave Quick Reference}\hfil{\smrm Octave \octaveversion}\qquad
+{\smrm Copyright 1996-2022 The Octave Project Developers}
 
-\sec Starting Octave;
-octave&start interactive Octave session\cr
-octave {\it file}&run Octave on commands in {\it file}\cr
-octave --eval {\it code}&Evaluate {\it code} using Octave\cr
+\altsec Starting and Stopping;
+octave \opt{-\hbox{}-gui}&start Octave CLI/GUI session\cr
+octave {\it file}&run Octave commands in {\it file}\cr
+octave --eval {\it code}&evaluate {\it code} using Octave\cr
 octave --help&describe command line options\cr
-\endsec
-
-\sec Stopping Octave;
 quit {\rm or} exit&exit Octave\cr
-INTERRUPT&({\it e.g.} \ctl{c}) terminate current command and return to
-  top-level prompt\cr
+Ctrl-C&terminate current command and return to top-level prompt\cr
 \endsec
 
 \sec Getting Help;
@@ -400,162 +396,93 @@
 lookfor {\it str}&search for {\it command} based on {\it str}\cr
 \endsec
 
-\sec Motion in Info;
-SPC {\rm or} C-v&scroll forward one screenful\cr
-DEL {\rm or} M-v&scroll backward one screenful\cr
-C-l&redraw the display\cr
-\endsec
-
-\sec Node Selection in Info;
-n&select the next node\cr
-p&select the previous node\cr
-u&select the `up' node\cr
-t&select the `top' node\cr
-d&select the directory node\cr
-<&select the first node in the current file\cr
->&select the last node in the current file\cr
-% ]&move forward through the node structure\cr
-% [&move backward through the nodes\cr
-g&reads the name of a node and selects it\cr
-C-x k&kills the current node\cr
-\endsec
-
-\sec Searching in Info;
-s&search for a string\cr
-C-s&search forward incrementally\cr
-C-r&search backward incrementally\cr
-i&search index \& go to corresponding node\cr
-,&go to next match from last `i' command\cr
-\endsec
-
-\sec Command-Line Cursor Motion;
-C-b&move back one character\cr
-C-f&move forward one character\cr
-C-a&move to the start of the line\cr
-C-e&move to the end of the line\cr
-M-f&move forward a word\cr
-M-b&move backward a word\cr
-C-l&clear screen, reprinting current line at top\cr
+\sec Command Completion and History;
+TAB&complete a command or variable name\cr
+Alt-?&list possible completions\cr
+Ctrl-r Ctrl-s&search command history\cr
 \endsec
 
-\sec Inserting or Changing Text;
-M-TAB&insert a tab character\cr
-DEL&delete character to the left of the cursor\cr
-C-d&delete character under the cursor\cr
-C-v&add the next character verbatim\cr
-C-t&transpose characters at the point\cr
-M-t&transpose words at the point\cr
-% M-u&uppercase the current word\cr
-% M-l&lowercase the current word\cr
-% M-c&capitalize the current word\cr
-\endsec
-
-\vfill
-\line{\smrm \opt{ } surround optional arguments
-  \hfill ... show one or more arguments}
-\vskip0.25\baselineskip
-\eject
-
-\sec Killing and Yanking;
-C-k&kill to the end of the line\cr
-C-y&yank the most recently killed text\cr
-M-d&kill to the end of the current word\cr
-M-DEL&kill the word behind the cursor\cr
-M-y&rotate the kill ring and yank the new top\cr
-\endsec
-
-\sec Command Completion and History;
-TAB&complete a command or variable name\cr
-M-?&list possible completions\cr
-
-RET&enter the current line \cr
-C-p&move `up' through the history list\cr
-C-n&move `down' through the history list\cr
-M-<&move to the first line in the history\cr
-M->&move to the last line in the history\cr
-C-r&search backward in the history list\cr
-C-s&search forward in the history list\cr
-
-history \opt{{-q}} \opt{{\it N\/}}&list {\it N\/} previous history lines,
-  omitting history numbers if {\tt -q}\cr
-history -w \opt{{\it file}}&write history to {\it file\/} ({\tt
-  \char'0176/.octave\_hist} if no {\it file\/} argument)\cr
-history -r \opt{{\it file}}&read history from {\it file\/} ({\tt
-  \char'0176/.octave\_hist} if no {\it file\/} argument)\cr
-
-edit\_history {\it lines}&edit and then run previous
-  commands from the history list\cr
-run\_history {\it lines}&run previous commands from the
-  history list\cr
-\quad\opt{{\it beg\/}} \opt{{\it end\/}}&Specify the first and last
-  history commands to edit or run.\cr
-\omit\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
-  If {\it beg}\/ is greater than {\it end},
-  reverse the list of commands before editing.  If {\it end\/} is
-  omitted, select commands from {\it beg\/} to the end of the history
-  list.  If both arguments are omitted, edit the previous item in the
-  history list.}\span\cr
-\endsec
-
-\sec Shell Commands;
+\sec Directory and Path Commands;
 cd {\it dir}&change working directory to {\it dir}\cr
 pwd&print working directory\cr
 ls \opt{{\it options}}&print directory listing\cr
-getenv ({\it string})&return value of named environment variable\cr
-system ({\it cmd})&execute arbitrary shell command string\cr
+what&list .m/.mat files in the current directory\cr
+path&search path for Octave functions\cr
+pathdef&default search path\cr
+addpath ({\it dir})&add a directory to the path\cr
+getenv ({\it var})&value of environment variable\cr
+\endsec
+
+\altsec Package Management;
+\omit\vbox{\rm\vskip0.25ex
+  Add-on packages are independent of core Octave, listed at
+  {https://gnu-octave.github.io/packages/} \vskip0.75ex}\span\cr
+pkg install -forge {\it pkg}&download and install {\it pkg}\cr
+pkg install {\it file.tar.gz}&install pre-downloaded package file\cr
+pkg list&show installed packages\cr
+pkg load / pkg unload&load/unload installed package\cr
+statistics optimization control signal image symbolic etc.&various common
+packages\cr
 \endsec
 
 \sec Matrices;
 \omit\vbox{\rm\vskip0.25ex
   Square brackets delimit literal matrices.  Commas separate elements
   on the same row.  Semicolons separate rows.  Commas may be replaced
-  by spaces, and semicolons may be replaced by one or more newlines.
+  by spaces, and semicolons may be replaced by newlines.
   Elements of a matrix may be arbitrary expressions, assuming
   all the dimensions agree.\vskip0.75ex}\span\cr
 [ {\it x}, {\it y}, ... ]&enter a row vector\cr
 [ {\it x}; {\it y}; ... ]&enter a column vector\cr
 [ {\it w}, {\it x}; {\it y}, {\it z} ]&enter a 2$\times$2 matrix\cr
+rows columns&number of rows/columns of matrix\cr
+zeros ones&create matrix of zeros/ones\cr
+eye diag&create identity/diagonal matrix\cr
+rand randi randn&create matrix of random values\cr
+sparse spalloc&create a sparse matrix\cr
+all&true if all elements nonzero\cr
+any&true if at least one element nonzero\cr
+nnz&number of nonzero elements\cr
 \endsec
 
 \sec Multi-dimensional Arrays;
-\omit\vbox{\rm\vskip0.25ex
-  Multi-dimensional arrays may be created with the {\it cat} or
-  {\it reshape} commands from two-dimensional sub-matrices.
-  \vskip0.75ex}\span\cr
-squeeze ({\it arr})&remove singleton dimensions of the array.\cr
-ndims ({\it arr})&number of dimensions in the array.\cr
-permute ({\it arr}, {\it p})&permute the dimensions of an array.\cr
-ipermute ({\it arr}, {\it p})&array inverse permutation.\cr
-\endsec
-
-\vfill\eject
-
-\sec ;
-shiftdim ({\it arr}, {\it s})&rotate the array dimensions.\cr
-circshift ({\it arr}, {\it s})&rotate the array elements.\cr
-\endsec
-
-\sec Sparse Matrices;
-sparse (...)&create a sparse matrix.\cr
-speye ({\it n)}&create sparse identity matrix.\cr
-sprand ({\it n}, {\it m}, {\it d})&sparse rand matrix of density {\it d}.\cr
-spdiags (...)&sparse generalization of {\it diag}.\cr
-nnz ({\it s})&No. nonzero elements in sparse matrix.\cr
+ndims&number of dimensions\cr
+reshape squeeze&change array shape\cr
+resize&change array shape, lossy\cr
+cat&join arrays along a given dimension\cr
+permute ipermute shiftdim&like N-dimensional transpose\cr
+circshift&cyclically shift array elements\cr
+meshgrid&matrices useful for vectorization\cr
 \endsec
 
 \sec Ranges;
+\omit\vbox{\rm\vskip0.25ex
+  Create sequences of real numbers as row vectors.\vskip0.75ex}\span\cr
 {\it base} : {\it limit}\cr
 {\it base} : {\it incr} : {\it limit}\cr
 \omit\hfill\vbox{\hsize=\idnwid\rm\vskip0.75ex
-  Specify a range of values beginning with {\it base\/} with no elements
-  greater than {\it limit}.  If it is omitted, the default value of
-  {\it incr\/} is 1.  Negative increments are permitted.}\span\cr
+  {\it incr} == 1 if not specified.  Negative ranges allowed.}\span\cr
 \endsec
 
-\sec Strings and Common Escape Sequences;
+\altsec Numeric Types and Values;
+\omit\vbox{\rm\vskip0.5ex
+  Integers saturate in Octave.  They do not roll over.
+  \vskip0.75ex}\span\cr
+int8 int16 int32 int64&signed integers\cr
+uint8 uint16 uint32 uint64&unsigned integers\cr
+single double&32-bit/64-bit IEEE floating point\cr
+intmin intmax flintmax&integer limits of given type\cr
+realmin realmax&floating point limits of given type\cr
+inf nan NA&IEEE infinity, NaN, missing value\cr
+eps&machine precision\cr
+pi e&3.14159..., 2.71828...\cr
+i j&$\sqrt{-1}$\cr
+\endsec
+
+\sec Strings;
 \omit\vbox{\rm\vskip0.5ex
   A {\it string constant\/} consists of a sequence of characters
-  enclosed in either double-quote or single-quote marks. Strings
+  enclosed in either double-quote or single-quote marks.  Strings
   in double-quotes allow the use of the escape sequences below.
   \vskip0.75ex}\span\cr
 \char'134\char'134&a literal backslash\cr
@@ -563,419 +490,315 @@
 \char'134 '&a literal single-quote character\cr
 \char'134 n&newline, ASCII code 10\cr
 \char'134 t&horizontal tab, ASCII code 9\cr
+sprintf sscanf&formatted IO to/from string\cr
+strcmp&compare strings\cr
+strcat&join strings\cr
+strfind regexp&find matching patterns\cr
+strrep regexprep&find and replace patterns\cr
 \endsec
 
 \sec Index Expressions;
-{\it var} ({\it idx})&select elements of a vector\cr
-{\it var} ({\it idx1}, {\it idx2})&select elements of a matrix\cr
-
-\quad {\it scalar}&select row (column) corresponding to {\it scalar}\cr
-\quad {\it vector}&select rows (columns) corresponding to the elements
-  of {\it vector}\cr
-\quad {\it range}&select rows (columns) corresponding to the elements
-  of {\it range}\cr
-\quad :&select all rows (columns)\cr
+{\it var}({\it idx})&select elements of a vector\cr
+{\it var}({\it idx1}, {\it idx2})&select elements of a matrix\cr
+{\it var}({[1 3], :})&rows 1 and 3\cr
+{\it var}({:, [2 end]})&the second and last columns\cr
+{\it var}({1:2:end, 2:2:end})&get odd rows and even columns\cr
+{\it var1}({\it var2} == 0)&elements of {\it var1} corresponding to zero
+elements of {\it var2}\cr
+{\it var}({:})&all elements as a column vector\cr
 \endsec
 
-\sec Global and Persistent Variables;
-global {\it var1} ...&Declare variables global.\cr
-global {\it var1} = {\it val}&Declare variable global. Set initial value.\cr
-persistent {\it var1}&Declare a variable as static to a function.\cr
-persistent {\it var1} = {\it val}&Declare a variable as static to a
-  function and set its initial value.\cr
-\omit\hfill\vbox{\rm\vskip0.25ex
-  Global variables may be accessed inside the body of a function
-  without having to be passed in the function parameter list provided
-  they are declared global when used.}\span\cr
+\sec Cells, Structures, and Classdefs;
+{\it{var}}$\{${\it{idx}}$\}$ = ...&set an element of a cell array\cr
+cellfun ({\it f}, {\it c})&apply a function to elements of cell array\cr
+{\it{var}}.{\it{field}} = ...&set a field of a structure\cr
+fieldnames ({\it s})&returns the fields of a structure\cr
+structfun ({\it f}, {\it s})&apply a function to fields of structure\cr
+classdef&define new classes for OOP\cr
+\endsec
+
+\sec Assignment Expressions;
+{\it var} = {\it expr}&assign value to variable\cr
+{\it var}({\it idx}) = {\it expr}&only the indexed elements are changed\cr
+{\it var}({\it idx}) = []&delete the indexed elements\cr
 \endsec
 
-\sec Selected Built-in Functions;
-EDITOR&editor to use with {\tt edit\_history}\cr
-Inf, NaN&IEEE infinity, NaN\cr
-NA&Missing value\cr
-PAGER&program to use to paginate output\cr
-ans&last result not explicitly assigned\cr
-eps&machine precision\cr
-pi&$\pi$\cr
-1i&$\sqrt{-1}$\cr
-realmax&maximum representable value\cr
-realmin&minimum representable value\cr
-\endsec
-
-\vfill
-\centerline{\smrm Copyright 1996-2022 The Octave Project Developers\qquad Permissions on back}
-\eject
-
-\sec Assignment Expressions;
-{\it var} = {\it expr}&assign expression to variable\cr
-{\it var} ({\it idx}) = {\it expr}&assign expression to indexed variable\cr
-{\it var} ({\it idx}) = []&delete the indexed elements.\cr
-{\it var} $\{${\it idx}$\}$ = {\it expr}&assign elements of a cell array.\cr
-\endsec
-
-\sec Arithmetic and Increment Operators;
-{\it x} + {\it y}&addition\cr
-{\it x} - {\it y}&subtraction\cr
+\sec Arithmetic Operators;
+%
+% FIXME These operators look ugly, but putting them in math mode causes
+% some of them to break even more.
+%
+\omit \vbox{\rm\vskip0.75ex
+  If two operands are of different sizes, scalars and singleton dimensions are
+  automatically expanded.  Non-singleton dimensions need to match.
+  \vskip0.75ex}\span\cr
+{\it x} + {\it y}, {\it x} - {\it y}&addition, subtraction\cr
 {\it x} * {\it y}&matrix multiplication\cr
-{\it x} .* {\it y}&element by element multiplication\cr
+{\it x} .* {\it y}&element-by-element multiplication\cr
 {\it x} / {\it y}&right division, conceptually equivalent to
   {\tt (inverse~(y')~*~x')'}\cr
-{\it x} ./ {\it y}&element by element right division\cr
+{\it x} ./ {\it y}&element-by-element right division\cr
 {\it x} \char'134{} {\it y}&left division, conceptually equivalent to
   {\tt inverse~(x)~*~y}\cr
-{\it x} .\char'134{} {\it y}&element by element left division\cr
+{\it x} .\char'134{} {\it y}&element-by-element left division\cr
 {\it x} \char'136{} {\it y}&power operator\cr
-{\it x} .\char'136{} {\it y}&element by element power operator\cr
-- {\it x}&negation\cr
-+ {\it x}&unary plus (a no-op)\cr
-{\it x} '&complex conjugate transpose\cr
-{\it x} .'&transpose\cr
-++ {\it x}\quad{\rm(}-- {\it x}{\rm)}&increment (decrement),
-  return {\it new\/} value\cr
-{\it x} ++\quad{\rm(}{\it x} --{\rm)}&increment (decrement),
-  return {\it old\/} value\cr
+{\it x} .\char'136{} {\it y}&element-by-element power operator\cr
++= -= *= .*= /= ./= \char'134{}= .\char'134{}= \char'136{}= .\char'136{}=&
+in-place equivalents of the above operators\cr
+-{\it x}&negation\cr
++{\it x}&unary plus (a no-op)\cr
+{\it x}$'$&complex conjugate transpose\cr
+{\it x}.$'$&transpose\cr
+++{\it x} --{\it x}&increment / decrement, return {\it new\/} value\cr
+{\it x}++ {\it x}--&increment / decrement, return {\it old\/} value\cr
 \endsec
 
 \sec Comparison and Boolean Operators;
 \omit \vbox{\rm\vskip0.75ex
   These operators work on an element-by-element basis.  Both arguments
   are always evaluated.\vskip0.75ex}\span\cr
-{\it x} < {\it y}&true if {\it x\/} is less than {\it y}\cr
-{\it x} <= {\it y}&true if {\it x\/} is less than or equal to {\it y}\cr
-{\it x} == {\it y}&true if {\it x\/} is equal to {\it y}\cr
-{\it x} >= {\it y}&true if {\it x\/} is greater than or equal to {\it y}\cr
-{\it x} > {\it y}&true if {\it x\/} is greater than {\it y}\cr
-{\it x} != {\it y}&true if {\it x\/} is not equal to {\it y}\cr
-{\it x} \& {\it y}&true if both {\it x\/} and {\it y\/} are true\cr
-{\it x} | {\it y}&true if at least one of {\it x\/} or {\it y\/} is true\cr
-! {\it bool}&true if {\it bool\/} is false\cr
+< <= == >= >&relational operators\cr
+!= \char'176 =&not equal to\cr
+\& &logical AND\cr
+|  &logical OR\cr
+! \char'176 &logical NOT\cr
 \endsec
 
 \sec Short-circuit Boolean Operators;
 \omit \vbox{\rm\vskip0.75ex
-  Operators evaluate left-to-right. Operands are only evaluated if
+  Operators evaluate left-to-right.  Operands are only evaluated if
   necessary, stopping once overall truth value can be determined.
-  Operands are converted to scalars using the {\tt all}
-  function.\vskip0.75ex}\span\cr
-{\it x} \&\& {\it y}&true if both {\it x\/} and {\it y\/} are true\cr
-{\it x} || {\it y}&true if at least one of {\it x\/} or {\it y\/} is true\cr
-\endsec
-
-\sec Operator Precedence;
-\omit \vbox{\rm\vskip0.5ex
-  Table of Octave operators, in order of increasing
-  precedence.\vskip0.75ex}\span\cr
-;\ \ ,&statement separators\cr
-=&assignment, groups left to right\cr
-||\ \ \&\&&logical ``or'' and ``and''\cr
-|\ \ \&&element-wise ``or'' and ``and''\cr
-< <= == >= > !=&relational operators\cr
-:&colon\cr
-+\ \ -&addition and subtraction\cr
-* / \char'134\ \ .*\ \ ./\ \ .\char'134&multiplication and division\cr
-'\ \ .'&transpose\cr
-+\ \ -\ \ ++\ \ --\ \ !&unary minus, increment, logical ``not''\cr
-\char'136\ \ .\char'136&exponentiation\cr
-\endsec
-
-\vfill\eject
-
-\sec Paths and Packages;
-path&display the current Octave function path.\cr
-pathdef&display the default path.\cr
-addpath ({\it dir})&add a directory to the path.\cr
-EXEC\_PATH&manipulate the Octave executable path.\cr
-pkg list&display installed packages.\cr
-pkg load {\it pack}&Load an installed package.\cr
-\endsec
-
-\sec Cells and Structures;
-{\it{var}}.{\it{field}} = ...&set a field of a structure.\cr
-{\it{var}}$\{${\it{idx}}$\}$ = ...&set an element of a cell array.\cr
-cellfun ({\it f}, {\it c})&apply a function to elements of cell array.\cr
-fieldnames ({\it s})&returns the fields of a structure.\cr
-\endsec
-
-\widesec Statements;
-for {\it identifier} = {\it expr} {\it stmt-list} endfor\cr
-\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
-  Execute {\it stmt-list} once for each column of {\it expr}.  The
-  variable {\it identifier} is set to the value of the current column
-  during each iteration.}\cr\cr
-while ({\it condition}) {\it stmt-list} endwhile\cr
-\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
-  Execute {\it stmt-list} while {\it condition} is true.}\cr\cr
-\hbox{\vtop{\hsize=\itmwid\tt break}
-  \vtop{\hsize=\dfnwid\rm exit innermost loop}}\cr
-\hbox{\vtop{\hsize=\itmwid\tt continue}
-  \vtop{\hsize=\dfnwid\rm go to beginning of innermost loop}}\cr
-\hbox{\vtop{\hsize=\itmwid\tt return}
-  \vtop{\hsize=\dfnwid\rm return to calling function}}\cr\cr
-if ({\it condition}) {\it if-body} \opt{{\tt else} {\it else-body}} endif\cr
-\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
-  Execute {\it if-body} if {\it condition} is true, otherwise execute
-  {\it else-body}.}\cr
-if ({\it condition}) {\it if-body} \opt{{\tt elseif} ({\it condition})
-  {\it elseif-body}} endif\cr
-\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
-  Execute {\it if-body} if {\it condition} is true, otherwise execute
-  the {\it elseif-body} corresponding to the first {\tt elseif}
-  condition that is true, otherwise execute {\it else-body}.}\cr
-\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
-  Any number of {\tt elseif} clauses may appear in an {\tt if}
-  statement.}\cr\cr
-unwind\_protect {\it body} unwind\_protect\_cleanup {\it cleanup} end\cr
-\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
-  Execute {\it body}.  Execute {\it cleanup} no matter how control
-exits {\it body}.}\cr
-try {\it body} catch {\it cleanup} end\cr
-\hfill\vbox{\hsize=\idnwid\rm\vskip0.25ex
-  Execute {\it body}. Execute {\it cleanup} if {\it body} fails.}\cr
-\endsec
-
-\altsec Strings;
-strcmp ({\it s}, {\it t})&compare strings\cr
-strcat ({\it s}, {\it t}, ...)&concatenate strings\cr
-regexp ({\it str}, {\it pat})&strings matching regular expression\cr
-regexprep ({\it str}, {\it pat}, {\it rep})&Match and replace sub-strings\cr
-\endsec
-
-\widesec Defining Functions;
-function \opt{{\it ret-list}} {\it function-name}
-  \opt{\hskip0.2em({\it arg-list})\hskip0.2em}\cr
-\quad{\it function-body}\cr
-endfunction\cr\cr
-{\rm {\it ret-list\/} may be a single identifier or a comma-separated
-  list of identifiers delimited by square-brackets.\vskip0.75ex}\cr
-{\rm {\it arg-list\/} is a comma-separated list of identifiers and may
-  be empty.}\cr
+  Non-scalar operands are converted to scalars with
+  {\tt all}.\vskip0.75ex}\span\cr
+{\it x} \&\& {\it y}&logical AND\cr
+{\it x} || {\it y}&logical OR\cr
 \endsec
 
 \vfill\eject
 
-\sec Function Handles;
-@{\it{func}}& Define a function handle to {\it func}.\cr
-@({\it var1}, ...) {\it expr}&Define an anonymous function handle.\cr
-str2func ({\it str})&Create a function handle from a string.\cr
-functions ({\it handle})&Return information about a function handle.\cr
-func2str ({\it handle})&Return a string representation of a
-function handle.\cr
-{\it handle} ({\it arg1}, ...)&Evaluate a function handle.\cr
-feval ({\it func}, {\it arg1}, ...)&Evaluate a function handle or
-  string, passing remaining args to {\it func}\cr
-\omit\vbox{\rm\vskip0.25ex
-  Anonymous function handles take a copy of the variables in the
-  current workspace.\vskip0.75ex}\span\cr
-\endsec
-
-\sec Miscellaneous Functions;
-eval ({\it str})&evaluate {\it str} as a command\cr
-error ({\it message})&print message and return to top level\cr
-warning ({\it message})&print a warning message\cr
-clear {\it pattern}&clear variables matching pattern\cr
-exist ({\it str})&check existence of variable or function\cr
-who, whos&list current variables\cr
-whos {\it var}&details of the variable {\it var}\cr
-\endsec
-
-\sec Basic Matrix Manipulations;
-rows ({\it a})&return number of rows of {\it a}\cr
-columns ({\it a})&return number of columns of {\it a}\cr
-all ({\it a})&check if all elements of {\it a\/} nonzero\cr
-any ({\it a})&check if any elements of {\it a\/} nonzero\cr
+\sec Operator Precedence;
+\omit \vbox{\rm\vskip0.5ex
+  Table of Octave operators, in order of {\tt decreasing}
+  precedence.\vskip0.75ex}\span\cr
+() $\{\}$ . & array index, cell index, structure index\cr
+'\ \ .'\ \ \char'136\ \ .\char'136&transpose and exponentiation\cr
++\ \ -\ \ ++\ \ --\ \ !&unary minus, increment, logical ``not''\cr
+* / \char'134\ \ .*\ \ ./\ \ .\char'134&multiplication and division\cr
++\ \ -&addition and subtraction\cr
+:&colon\cr
+< <= == >= > !=&relational operators\cr
+\&\ \ |&element-wise ``and'' and ``or''\cr
+\&\&\ \ ||&logical ``and'' and ``or''\cr
+= += -= *= /=  etc.&assignment, groups left to right\cr
+;\ \ ,&statement separators\cr
 \endsec
 
-\sec ;
-find ({\it a})&return indices of nonzero elements\cr
-sort ({\it a})&order elements in each column of {\it a}\cr
-sum ({\it a})&sum elements in columns of {\it a}\cr
-prod ({\it a})&product of elements in columns of {\it a}\cr
-min ({\it args})&find minimum values\cr
-max ({\it args})&find maximum values\cr
-rem ({\it x}, {\it y})&find remainder of {\it x}/{\it y}\cr
-reshape ({\it a}, {\it m}, {\it n})&reformat {\it a} to be {\it m} by
-  {\it n}\cr
-diag ({\it v}, {\it k})&create diagonal matrices\cr
-linspace ({\it b}, {\it l}, {\it n})&create vector of linearly-spaced
-  elements\cr
-logspace ({\it b}, {\it l}, {\it n})&create vector of log-spaced
-  elements\cr
-eye ({\it n}, {\it m})&create {\it n\/} by {\it m\/} identity matrix\cr
-ones ({\it n}, {\it m})&create {\it n\/} by {\it m\/} matrix of ones\cr
-zeros ({\it n}, {\it m})&create {\it n\/} by {\it m\/} matrix of zeros\cr
-rand ({\it n}, {\it m})&create {\it n\/} by {\it m\/} matrix of random
-  values\cr
+\altsec General programming;
+\omit \vbox{\rm\vskip0.5ex
+  endfor, endwhile, endif etc. can all be replaced by end.
+  \vskip0.75ex}\span\cr
+for x = 1:10
+
+endfor & for loop\cr
+\cr
+
+while (x <= 10)
+
+endwhile & while loop\cr
+\cr
+
+do
+
+until (x > 10) & do-until loop\cr
+\cr
+
+if (x < 5)
+
+elseif (x < 6)
+
+else
+
+endif & if-then-else\cr
+\cr
+
+switch (tf)
+
+case "true"
+
+case "false"
+
+otherwise
+
+endswitch & switch-case\cr
+\cr
+
+break & exit innermost loop\cr
+\cr
+
+continue & go to start of innermost loop\cr
+\cr
+
+return & jump back from function to caller\cr
+\cr
+
+try
+
+catch & cleanup only on exception\cr
+\cr
+
+unwind\char'137 protect
+
+unwind\char'137 protect\char'137 cleanup& cleanup always \cr
 \endsec
 
-% sin ({\it a}) cos({\it a}) tan({\it a})&trigonometric functions\cr
-% asin ({\it a}) acos({\it a}) atan({\it a})&inverse trigonometric functions\cr
-% sinh ({\it a}) cosh({\it a}) tanh({\it a})&hyperbolic trig functions\cr
-% asinh ({\it a}) acosh({\it a}) atanh({\it a})&inverse hyperbolic trig
-% functions\cr\cr
-
-\sec Linear Algebra;
-chol ({\it a})&Cholesky factorization\cr
-det ({\it a})&compute the determinant of a matrix\cr
-eig ({\it a})&eigenvalues and eigenvectors\cr
-expm ({\it a})&compute the exponential of a matrix\cr
-hess ({\it a})&compute Hessenberg decomposition\cr
-inverse ({\it a})&invert a square matrix\cr
-norm ({\it a}, {\it p})&compute the {\it p}-norm of a matrix\cr
-pinv ({\it a})&compute pseudoinverse of {\it a}\cr
-qr ({\it a})&compute the QR factorization of a matrix\cr
-rank ({\it a})&matrix rank\cr
-sprank ({\it a})&structural matrix rank\cr
-schur ({\it a})&Schur decomposition of a matrix\cr
-svd ({\it a})&singular value decomposition\cr
-syl ({\it a}, {\it b}, {\it c})&solve the Sylvester equation\cr
+\widesec Functions;
+function \opt{{\it ret-list} =} {\it function-name}
+  \opt{\hskip0.2em({\it arg-list})\hskip0.2em}\cr
+\quad{\it function-body}\cr
+endfunction\cr\cr
+{\rm {\it ret-list\/} may be a single identifier or a comma-separated
+  list of identifiers enclosed by square brackets.\vskip0.75ex}\cr
+{\rm {\it arg-list\/} is a comma-separated list of identifiers and may
+  be empty.}\cr
 \endsec
 
-\vfill\eject
-
-\sec Equations, ODEs, DAEs, Quadrature;
-*fsolve&solve nonlinear algebraic equations\cr
-*lsode&integrate nonlinear ODEs\cr
-*dassl&integrate nonlinear DAEs\cr
-*quad&integrate nonlinear functions\cr
-perror ({\it nm}, {\it code})&for functions that return numeric
-  codes, print error message for named function and given error
-  code\cr\cr
-\omit \vbox{\rm
-  {\tt *} See the on-line or printed manual for the complete list of
-  arguments for these functions.}\span\cr
+\sec Function Handles and Evaluation;
+@{\it{func}}&create a function handle to {\it func}\cr
+@({\it vars}) {\it expr}&define an anonymous function\cr
+str2func func2str&convert function to/from string\cr
+functions ({\it handle})&Return information about a function handle\cr
+{\it f} ({\it args})&Evaluate a function handle {\it f}\cr
+feval &Evaluate a function handle or string\cr
+eval ({\it str})&evaluate {\it str} as a command\cr
+system ({\it cmd})&execute arbitrary shell command string\cr
+&\cr
+\omit\vbox{\rm\vskip0.25ex
+  Anonymous function handles make a copy of the variables in the
+  current workspace at the time of creation.\vskip0.75ex}\span\cr
 \endsec
 
-% \altsec Sets;
-% create\_set ({\it a}, {\it b})&create row vector of unique values\cr
-% complement ({\it a}, {\it b})&elements of {\it b} not in {\it a}\cr
-% intersection ({\it a}, {\it b})&intersection of sets {\it a} and {\it b}\cr
-% union ({\it a}, {\it b})&union of sets {\it a} and {\it b}\cr
-% \endsec
-
-\sec Signal Processing;
-fft ({\it a})&Fast Fourier Transform using FFTW\cr
-ifft ({\it a})&inverse FFT using FFTW\cr
-freqz ({\it args})&FIR filter frequency response\cr
-filter ({\it a}, {\it b}, {\it x})&filter by transfer function\cr
-conv ({\it a}, {\it b})&convolve two vectors\cr
-hamming ({\it n})&return Hamming window coefficients\cr
-hanning ({\it n})&return Hanning window coefficients\cr
+\altsec Global and Persistent Variables;
+global {\it var} = ...&declare \& initialize global variable\cr
+persistent {\it var} = ...&persistent/static variable\cr
+\omit\hfill\vbox{\rm\vskip0.25ex
+  Global variables may be accessed inside the body of a function
+  without having to be passed in the function parameter list provided
+  that they are declared global when used.}\span\cr
 \endsec
 
-\altsec Image Processing;
-colormap ({\it map})&set the current colormap\cr
-gray2ind ({\it i}, {\it n})&convert gray scale to Octave image\cr
-image ({\it img}, {\it zoom})&display an Octave image matrix\cr
-imagesc ({\it img}, {\it zoom})&display scaled matrix as image\cr
-imread ({\it file})&load an image file\cr
-imshow ({\it img}, {\it map})&display Octave image\cr
-imshow ({\it i}, {\it n})&display gray scale image\cr
-imshow ({\it r}, {\it g}, {\it b})&display RGB image\cr
-imwrite ({\it img}, {\it file})&write images in various file formats\cr
-ind2gray ({\it img}, {\it map})&convert Octave image to gray scale\cr
-ind2rgb ({\it img}, {\it map})&convert indexed image to RGB\cr
-rgb2ind ({\it r}, {\it g}, {\it b})&convert RGB to Octave image\cr
-save a matrix to {\it file}\span\cr
+\sec Common Functions;
+disp&display value of variable\cr
+printf&formatted output to {\tt stdout}\cr
+input scanf&input from {\tt stdin}\cr
+who whos&list current variables\cr
+clear {\it pattern}&clear variables matching pattern\cr
+exist&check existence of identifier\cr
+find&return indices of nonzero elements\cr
+sort&return a sorted array\cr
+unique&discard duplicate elements\cr
+sortrows&sort whole rows in numerical or lexicographic order\cr
+sum prod&sum or product\cr
+mod rem&remainder functions\cr
+min max range mean median std&basic statistics\cr
 \endsec
 
-\altsec C-style Input and Output;
-fopen ({\it name}, {\it mode})&open file {\it name}\cr
-fclose ({\it file})&close {\it file}\cr
-printf ({\it fmt}, ...)&formatted output to {\tt stdout}\cr
-fprintf ({\it file}, {\it fmt}, ...)&formatted output to {\it file}\cr
-sprintf ({\it fmt}, ...)&formatted output to string\cr
-scanf ({\it fmt})&formatted input from {\tt stdin}\cr
-fscanf ({\it file}, {\it fmt})&formatted input from {\it file}\cr
-sscanf ({\it str}, {\it fmt})&formatted input from {\it string}\cr
-fgets ({\it file}, {\it len})&read {\it len\/} characters from {\it file\/}\cr
-fflush ({\it file})&flush pending output to {\it file}\cr
-ftell ({\it file})&return file pointer position\cr
-frewind ({\it file})&move file pointer to beginning\cr
-freport&print a info for open files\cr
-fread ({\it file}, {\it size}, {\it prec})&read binary data files\cr
-fwrite ({\it file}, {\it size}, {\it prec})&write binary data files\cr
-feof ({\it file})&determine if pointer is at EOF\cr
-\omit \vbox{\rm\vskip0.75ex
-  A file may be referenced either by name or by the number returned
-  from {\tt fopen}.  Three files are preconnected when Octave starts:
-  {\tt stdin}, {\tt stdout}, and {\tt stderr}.\vskip0.75ex}\span\cr
+\sec Error Handling, Debugging, Profiling;
+error ({\it message})&print message and return to top level\cr
+warning ({\it message})&print a warning message\cr
+debug&guide to all debugging commands\cr
+profile&start/stop/clear/resume profiling\cr
+profshow profexplore&show the results of profiling\cr
+\endsec
+
+\sec File I/O, Loading, Saving;
+save load &save/load variables to/from file\cr
+save -binary &save in binary format (faster)\cr
+dlmread dlmwrite&read/write delimited data\cr
+csvread csvwrite&read/write CSV files\cr
+xlsread xlswrite&read/write XLS spreadsheets\cr
+&\cr
+fopen fclose & open/close files\cr
+fprintf fscanf textscan&formatted file I/O\cr
+fflush&flush pending output\cr
 \endsec
 
-\sec Other Input and Output functions;
-save {\it file} {\it var} ...&save variables in {\it file}\cr
-load {\it file}&load variables from {\it file}\cr
-disp ({\it var})&display value of {\it var} to screen\cr
-\endsec
-
-\vfill\eject
-
-\sec Polynomials;
-compan ({\it p})&companion matrix\cr
-conv ({\it a}, {\it b})&convolution\cr
-deconv ({\it a}, {\it b})&deconvolve two vectors\cr
-poly ({\it a})&create polynomial from a matrix\cr
-polyderiv ({\it p})&derivative of polynomial\cr
-polyreduce ({\it p})&integral of polynomial\cr
-polyval ({\it p}, {\it x})&value of polynomial at {\it x}\cr
-polyvalm ({\it p}, {\it x})&value of polynomial at {\it x}\cr
-roots ({\it p})&polynomial roots\cr
-residue ({\it a}, {\it b})&partial fraction expansion of
-ratio {\it a}/{\it b}\cr
+\sec Math Functions;
+\omit \vbox{\rm\vskip0.5ex
+  Run {\tt doc <function>} to find related functions.
+  \vskip0.75ex}\span\cr
+cov corrcoef&covariance, correlation coefficient\cr
+tan tanh atan2&trig and hyperbolic functions\cr
+cross curl del2&vector algebra functions\cr
+&\cr
+det inv& determinant matrix inverse\cr
+eig &eigenvalues and eigenvectors\cr
+norm &vector norm, matrix norm\cr
+rank &matrix rank\cr
+qr &QR factorization\cr
+chol &Cholesky factorization\cr
+svd &singular value decomposition\cr
+&\cr
+fsolve&solve nonlinear algebraic equations\cr
+lsode ode45&integrate nonlinear ODEs\cr
+dassl&integrate nonlinear DAEs\cr
+integral&integrate nonlinear functions\cr
+&\cr
+union&set union\cr
+intersection&set intersection\cr
+setdiff&set difference\cr
+&\cr
+roots &polynomial roots\cr
+poly &matrix characteristic polynomial\cr
+polyder polyint&polynomial derivative or integral\cr
+polyfit polyval&polynomial fitting and evaluation\cr
+residue &partial fraction expansion\cr
+legendre bessel&special functions\cr
+&\cr
+conv conv2& convolution, polynomial multiplication\cr
+deconv& deconvolution, polynomial division\cr
+&\cr
+fft fft2 ifft({\it a})&FFT / inverse FFT\cr
+freqz &FIR filter frequency response\cr
+filter &filter by transfer function\cr
 \endsec
 
-\sec Statistics;
-corrcoef ({\it x}, {\it y})&correlation coefficient\cr
-cov ({\it x}, {\it y})&covariance\cr
-mean ({\it a})&mean value\cr
-median ({\it a})&median value\cr
-std ({\it a})&standard deviation\cr
-var ({\it a})&variance\cr
-\endsec
-
-\sec Plotting Functions;
-plot ({\it args})&2D plot with linear axes\cr
-plot3 ({\it args})&3D plot with linear axes\cr
-line ({\it args})&2D or 3D line\cr
-patch ({\it args})&2D patch\cr
-semilogx ({\it args})&2D plot with logarithmic x-axis\cr
-semilogy ({\it args})&2D plot with logarithmic y-axis\cr
-loglog ({\it args})&2D plot with logarithmic axes\cr
-bar ({\it args})&plot bar charts\cr
-stairs ({\it x}, {\it y})&plot stairsteps\cr
-stem ({\it x}, {\it y})&plot a stem graph\cr
-hist ({\it y}, {\it x})&plot histograms\cr
-contour ({\it x}, {\it y}, {\it z})&contour plot\cr
-title ({\it string})&set plot title\cr
-axis ({\it limits})&set axis ranges\cr
-xlabel ({\it string})&set x-axis label\cr
-ylabel ({\it string})&set y-axis label\cr
-zlabel ({\it string})&set z-axis label\cr
-text ({\it x}, {\it y}, {\it str})&add text to a plot\cr
-legend ({\it string})&set label in plot key\cr
-grid \opt{on$|$off}&set grid state\cr
-hold \opt{on$|$off}&set hold state\cr
-ishold&return 1 if hold is on, 0 otherwise\cr
-mesh ({\it x}, {\it y}, {\it z})&plot 3D surface\cr
-meshgrid ({\it x}, {\it y})&create mesh coordinate matrices\cr
+\altsec Plotting and Graphics;
+plot plot3 &2D / 3D plot with linear axes\cr
+line &2D or 3D line\cr
+patch fill&2D patch, optionally colored\cr
+semilogx semilogy loglog&logarithmic axes\cr
+bar hist&bar chart, histogram\cr
+stairs stem&stairsteps and stem graphs\cr
+contour &contour plot\cr
+mesh trimesh surf &plot 3D surfaces\cr
+&\cr
+figure&new figure\cr
+hold on&add to existing figure\cr
+title &set plot title\cr
+axis &set axis range and aspect\cr
+xlabel ylabel zlabel &set axis labels\cr
+text &add text to a plot\cr
+grid legend &draw grid or legend\cr
+&\cr
+image imagesc spy&display matrix as image\cr
+imwrite saveas print&save figure or image\cr
+imread&load an image\cr
+colormap &get or set colormap\cr
 \endsec
 
 \vskip 0pt plus 2fill
 \hrule width \hsize
 \par\vskip10pt
 {\smrm\parskip=6pt
-Edition \refcardedition\ for Octave Version \octaveversion.
+Quick reference for Octave \octaveversion.
 Copyright 1996-2022 The Octave Project Developers.  The authors assume
-no responsibility for any errors on this card.
+no responsibility for any errors on this card.  This card may be freely
+distributed under the terms of the GNU General Public License.
 
-This card may be freely distributed under the terms of the GNU
-General Public License.
+Octave license and copyright: https://octave.org/copyright/
 
 \TeX{} Macros for this card by Roland Pesch (pesch@cygnus.com),
 originally for the GDB reference card
-
-Octave itself is free software; you are welcome to distribute copies of
-it under the terms of the GNU General Public License.  There is
-absolutely no warranty for Octave.
 }
 
 \end
--- a/etc/HACKING.md	Tue Nov 15 13:25:31 2022 -0300
+++ b/etc/HACKING.md	Tue Nov 15 13:15:28 2022 -0800
@@ -399,6 +399,80 @@
 These guidelines also appear in the GNU libtool manual, see
 https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html.
 
+Merging the default branch to stable before a release
+-----------------------------------------------------
+
+To merge default to stable for a release with version == MAJOR:
+
+NOTE, I use two separate repos, one in `/path/to/octave-stable` that is
+updated to the stable branch and one in `/path/to/octave-default` that
+is updated to the default branch.
+
+1. Update the repo in `/path/to/octave-stable` to the most recent change
+   on the stable branch.  Ensure that there are no pending changes (be
+   careful to avoid wiping out any changes you are currently working
+   on!):
+
+       cd /path/to/octave-stable
+       hg update -C stable
+
+2. Merge default to stable (there should never be any conflicts here;
+   you are just making the stable branch be whatever is on the current
+   default branch):
+
+       hg merge default
+
+3. Commit the change (replace VERSION with the correct version; it
+   should be of the form MAJOR.1.0):
+
+       hg commit -m "maint: Merge default to stable to begin VERSION release process."
+
+4. Bump version numbers and release date in `configure.ac` for pre-release:
+
+  * Set version in AC_INIT to MAJOR.0.1
+  * OCTAVE_MAJOR_VERSION should already be correct.
+  * Set OCTAVE_MINOR_VERSION to 0.
+  * Set OCTAVE_PATCH_VERSION to 1.
+  * Set OCTAVE_RELEASE_DATE to the current date.
+  * Set the year in OCTAVE_COPYRIGHT to the current year.  The
+    copyright dates in the source files should have already been
+    updated during the development cycle.  If not, that should be done
+    in a separate change before the merge.
+  * OCTAVE_API_VERSION and shared library version numbers may be
+    updated in a separate changeset just prior to creating the first
+    test release.
+
+       hg commit  ## Use commit message similar to the one in 8f8fab4c93ae
+
+5. Update the repo in `/path/to/octave-default` to the most recent change
+   on the default branch.  Ensure that there are no pending changes (be
+   careful to avoid wiping out any changes you are currently working
+   on!):
+
+       cd /path/to/octave-default
+       hg update -C default
+
+6. Merge stable back to default (there should not be conflicts in this
+   merge):
+
+       hg merge stable
+       hg commit -m "maint: Merge stable to default."
+
+7. Bump versions in `configure.ac` to begin active development of MAJOR+1:
+
+  * Set version in AC_INIT to MAJOR+1.0.0
+  * Set OCTAVE_MAJOR_VERSION to MAJOR+1
+  * Set OCTAVE_MINOR_VERSION to 0
+  * Set OCTAVE_PATCH_VERSION to 0
+
+       hg commit  ## Use commit message similar to the one in 1455418a5c4c
+
+8. Remove functions and properties deprecated in MAJOR-1 (see ecf207896f76,
+   for example)
+
+9. Update NEWS file for next development cycle (see 0ec5eaabaf2c, for
+   example).
+
 
 ################################################################################
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/NEWS.8.md	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,170 @@
+Summary of important user-visible changes for version 8 (yyyy-mm-dd):
+---------------------------------------------------------------------
+
+### General improvements
+
+- Octave's libraries are now built using symbol visibility by default.
+  That means that less symbols are exported from these libraries.
+  Configure with `--disable-lib-visibility-flags` to export all symbols
+  (as in previous versions).
+
+- `filter` is now 5X faster, which also speeds up `deconv`, `fftfilt`
+  and `arma_rnd` by the same amount.
+
+- `integral` can now output a second argument passing the error
+  measurement used by the underlying integrator.
+
+- `perms` now accepts a second argument "unique" to return only unique
+  permutations for inputs with repeated elements.  It is faster and
+  takes less memory to call `perms ('aaaabbbbcccc', "unique")` than to
+  call `unique (perms ('aaaabbbbcccc'), "rows")`.
+
+- `quadgk` can now accept the `ArrayValued` input parameter to handle
+  array-valued input functions.
+
+- `delaunayn` now has consistent trivial simplex checking and removal
+  for all input dimensions, simplex checking 3D inputs is now
+  vectorized, and >3D simplex checking performance has been improved.
+  Simplexes points are now ordered so they will all have positive
+  outward normal vectors.  Input type checking has also been added for
+  improved error handling.
+
+- `factor` now factorizes all 64-bit integers in roughly the same time.
+  Previously, the product of two large primes took much longer to factorize
+  than highly composite inputs.
+
+- `Refine` option is now implemented in functions `ode45`, `ode23`,
+  and `ode23s`.
+
+- Octave is now compatible to PCRE2 (UTF-8). PCRE2 is preferred over PCRE
+  if both are installed.  Configure with `--without-pcre2` if you prefer
+  that Octave uses PCRE in this case.
+
+### Graphical User Interface
+
+
+### Graphics backend
+
+- When printing, the option `-svgconvert` is now the default.  If you want to
+use the more limited EPS-based tool chain (the former default)&mdash;e.g., if
+you encounter inaccurate image rendering&mdash;you can pass the `-nosvgconvert`
+option to the `print` function.
+
+- Additional properties have been added to the `figure` graphics object:
+    * `"innerposition"` (equivalent to `"position"`)
+    * `"windowstate"` (not yet implemented)
+
+- Legend now features a new property `"itemhitfcn"`, allowing the
+  execution of a callback function when a legend item is clicked.
+
+### Matlab compatibility
+
+- `inline` functions now support all Matlab methods.  The performance
+  of `inline` functions has also been improved.
+
+- `sub2ind` now supports index values outside of the size specified by
+  the subscripts.
+
+- `cylinder` now accepts a scalar for the radius argument.
+
+- `clock` now has an optional second output `ISDST` which indicates if
+  Daylight Savings Time is in effect for the system's time zone.
+
+- `print` now accepts option `-image` to specify the "opengl" renderer
+  and `-vector` to specify the "painters" renderer.
+
+- `format` now accepts the option "default", which is equivalent to
+  calling `format` without any options to reset the default state.
+
+- `quadgk` now stops iterating when `error <= tolerance` while the previous
+  condition was `error < tolerance`.
+
+- `mean` now accepts vector dimensions and options to handle `NaN` values.
+  The option `"a"` (arithmetic mean), `"g"` (geometric mean), and `"h"`
+  (harmonic mean) are no longer accepted, only the arithmetic mean is computed.
+  For the geometric and harmonic mean, please use respective functions
+  `geomean` and `harmmean` from the Octave Statistics package.
+
+- `var` and `std` now optionally output a second argument containing the mean
+  or weighted mean.
+
+- `integral` can now accept the 'ArrayValued' option in combination with
+  'RelTol' and 'WayPoints'.
+
+- File system operations that remove files (e.g., `unlink` or `rmdir`) now also
+  remove files that have their read-only file attribute set on Windows.
+
+- The default state for certain graphics properties has been made
+  consistent with Matlab.
+
+  Object      | Property         | Default State
+  ------------|------------------|------------
+  `figure`    | `"dockcontrols"` | `"on"`
+
+- `ode45`, `ode23`, and `ode23s` have improved results for options `Events`,
+  `OutputFcn`, and `Refine`, along with corrected orientation of struct
+  outputs.
+
+### Alphabetical list of new functions added in Octave 8
+
+* `clearAllMemoizedCaches`
+* `matlab.lang.MemoizedFunction`
+* `memoize`
+* `normalize`
+* `pagectranspose`
+* `pagetranspose`
+* `uifigure`
+
+### Deprecated functions, properties, and operators
+
+The following functions and properties have been deprecated in Octave 8
+and will be removed from Octave 10 (or whatever version is the second
+major release after 8):
+
+- Functions
+
+  Function               | Replacement
+  -----------------------|------------------
+  `shift`                | `circshift`
+  `sparse_auto_mutate`   | none (see below)
+
+- The `sparse_auto_mutate` function no longer has any effect on Octave's
+  behavior.  Previously, after calling `sparse_auto_mutate (true)`,
+  Octave would automatically convert sparse matrices to full when a
+  sparse matrix required more memory than simply using full matrix
+  storage.  This setting was `false` by default for compatibility with
+  Matlab.  Now you must manually convert to full storage when desired.
+
+
+- Properties
+
+  The following property names are discouraged, but there is no fixed
+  date for their removal.
+
+  Object           | Property    | Replacement
+  -----------------|-------------|------------
+  `uimenu`         | `label`     | `text`
+  `uimenu`         | `callback`  | `menuselectedfcn`
+
+The following functions were deprecated in Octave 6 and have been removed
+from Octave 8.
+
+- Functions
+
+  Function               | Replacement
+  -----------------------|------------------
+  `runtests`             | `oruntests`
+
+- The environment variable used by `mkoctfile` for linker flags is now
+  `LDFLAGS` rather than `LFLAGS`.  `LFLAGS` was deprecated in Octave 6,
+  and will be removed in a future version of Octave.
+
+### Old release news
+
+- [Octave 7.x](etc/NEWS.7)
+- [Octave 6.x](etc/NEWS.6)
+- [Octave 5.x](etc/NEWS.5)
+- [Octave 4.x](etc/NEWS.4)
+- [Octave 3.x](etc/NEWS.3)
+- [Octave 2.x](etc/NEWS.2)
+- [Octave 1.x](etc/NEWS.1)
Binary file etc/fonts/FreeMono.otf has changed
Binary file etc/fonts/FreeMonoBold.otf has changed
Binary file etc/fonts/FreeMonoBoldOblique.otf has changed
Binary file etc/fonts/FreeMonoOblique.otf has changed
--- a/etc/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/etc/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -12,6 +12,7 @@
   %reldir%/NEWS.5.md \
   %reldir%/NEWS.6.md \
   %reldir%/NEWS.7.md \
+  %reldir%/NEWS.8.md \
   %reldir%/gdbinit
 
 %canon_reldir%_EXTRA_DIST += \
@@ -25,6 +26,10 @@
   %reldir%/OLD-ChangeLogs/test-ChangeLog
 
 fallback_FONT_FILES = \
+  %reldir%/fonts/FreeMono.otf \
+  %reldir%/fonts/FreeMonoBold.otf \
+  %reldir%/fonts/FreeMonoBoldOblique.otf \
+  %reldir%/fonts/FreeMonoOblique.otf \
   %reldir%/fonts/FreeSans.otf \
   %reldir%/fonts/FreeSansBold.otf \
   %reldir%/fonts/FreeSansBoldOblique.otf \
--- a/libgui/graphics/FigureWindow.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/graphics/FigureWindow.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -30,6 +30,7 @@
 #include <QMenu>
 
 #include "FigureWindow.h"
+#include "gui-preferences-global.h"
 
 namespace octave
 {
@@ -38,7 +39,7 @@
     : FigureWindowBase (xparent)
   {
     // set icon from application resources
-    setWindowIcon (QIcon (":/actions/icons/graphic_logo_Figure.png"));
+    setWindowIcon (QIcon (global_icon_paths.at (ICON_THEME_OCTAVE)));
   }
 
   FigureWindow::~FigureWindow (void)
--- a/libgui/graphics/Logger.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/graphics/Logger.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -65,13 +65,13 @@
     return s_instance;
   }
 
-#define STATIC_LOGGER(fun) \
-  void Logger::fun (const char *fmt, ...) \
+#define STATIC_LOGGER(fcn) \
+  void Logger::fcn (const char *fmt, ...) \
   { \
     QMutexLocker lock (s_mutex); \
     va_list vl; \
     va_start (vl, fmt); \
-    instance ()->fun ## V (fmt, vl); \
+    instance ()->fcn ## V (fmt, vl); \
     va_end (vl); \
   }
 
--- a/libgui/graphics/Menu.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/graphics/Menu.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -294,13 +294,13 @@
 
     if (action->isCheckable ())
       action->setChecked (! action->isChecked ());
-    emit gh_callback_event (m_handle, "callback");
+    emit gh_callback_event (m_handle, "menuselectedfcn");
   }
 
   void
   Menu::actionHovered (void)
   {
-    emit gh_callback_event (m_handle, "callback");
+    emit gh_callback_event (m_handle, "menuselectedfcn");
   }
 
   void
--- a/libgui/graphics/ToolBarButton.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/graphics/ToolBarButton.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -29,11 +29,13 @@
 
 #include <QAction>
 #include <QIcon>
+#include <QString>
 #include <QWidget>
 
 #include "ToolBarButton.h"
 #include "QtHandlesUtils.h"
 #include "octave-qobject.h"
+#include "gui-preferences-global.h"
 
 namespace octave
 {
@@ -155,9 +157,7 @@
   template <typename T>
   QIcon ToolBarButton<T>::get_icon (const std::string& name)
   {
-    octave::resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-
-    return rmgr.icon (QString::fromStdString (name));
+    return QIcon (global_icon_paths.at (ICON_THEME_OCTAVE) + QString::fromStdString (name) + ".png");
   }
 
 }
--- a/libgui/graphics/qopengl-functions.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/graphics/qopengl-functions.h	Tue Nov 15 13:15:28 2022 -0800
@@ -63,9 +63,9 @@
 
 #if defined (HAVE_QOPENGLFUNCTIONS_1_1)
 
-    void glAlphaFunc (GLenum func, GLclampf ref)
+    void glAlphaFunc (GLenum fcn, GLclampf ref)
     {
-      m_glfcns.glAlphaFunc (func, ref);
+      m_glfcns.glAlphaFunc (fcn, ref);
     }
 
     void glBegin (GLenum mode)
@@ -150,9 +150,9 @@
       m_glfcns.glDeleteTextures (n, textures);
     }
 
-    void glDepthFunc (GLenum func)
+    void glDepthFunc (GLenum fcn)
     {
-      m_glfcns.glDepthFunc (func);
+      m_glfcns.glDepthFunc (fcn);
     }
 
     void glDisable (GLenum cap)
--- a/libgui/qterminal/libqterminal/unix/kpty.cpp	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/qterminal/libqterminal/unix/kpty.cpp	Tue Nov 15 13:15:28 2022 -0800
@@ -294,8 +294,8 @@
   {
     for (const char* s4 = "0123456789abcdef"; *s4; s4++)
     {
-      ptyName = QString().sprintf("/dev/pty%c%c", *s3, *s4).toAscii();
-      d->ttyName = QString().sprintf("/dev/tty%c%c", *s3, *s4).toAscii();
+      ptyName = QString().sprintf("/dev/pty%c%c", *s3, *s4).toLatin1();
+      d->ttyName = QString().sprintf("/dev/tty%c%c", *s3, *s4).toLatin1();
 
       d->masterFd = ::open(ptyName.data(), O_RDWR);
       if (d->masterFd >= 0)
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp	Tue Nov 15 13:15:28 2022 -0800
@@ -20,6 +20,21 @@
 
 */
 
+#include <algorithm>
+#include <csignal>
+#include <cstdio>
+#include <cstdarg>
+#include <cstring>
+
+#define WIN32_LEAN_AND_MEAN
+#if ! defined (_WIN32_WINNT) && ! defined (NTDDI_VERSION)
+#define _WIN32_WINNT 0x0500
+#endif
+#include <windows.h>
+#include <fcntl.h>
+#include <io.h>
+#include <versionhelpers.h>
+
 #include <QApplication>
 #include <QClipboard>
 #include <QColor>
@@ -40,19 +55,6 @@
 #include <QUrl>
 #include <QMimeData>
 
-#include <fcntl.h>
-#include <io.h>
-#include <stdio.h>
-#include <stdarg.h>
-#define WIN32_LEAN_AND_MEAN
-#if ! defined (_WIN32_WINNT) && ! defined (NTDDI_VERSION)
-#define _WIN32_WINNT 0x0500
-#endif
-#include <windows.h>
-#include <versionhelpers.h>
-#include <cstring>
-#include <csignal>
-
 #include "QWinTerminalImpl.h"
 #include "QTerminalColors.h"
 
@@ -273,7 +275,7 @@
 {
   if (end.y () < begin.y ()
       || (end.y () == begin.y () && end.x () < begin.x ()))
-    qSwap (begin, end);
+    std::swap (begin, end);
 }
 
 //////////////////////////////////////////////////////////////////////////////
@@ -371,7 +373,8 @@
   m_font.setPointSize (9);
   m_font.setStyleHint (QFont::TypeWriter);
 
-  m_buffer = m_tmpBuffer = 0;
+  m_buffer = nullptr;
+  m_tmpBuffer = nullptr;
 
   m_consoleView = new QConsoleView (parent);
   m_horizontalScrollBar = new QScrollBar (Qt::Horizontal, parent);
@@ -454,10 +457,9 @@
       TerminateProcess (m_process, (UINT)-1);
       m_consoleThread->wait ();
     }
-  if (m_buffer)
-    delete [] m_buffer;
-  if (m_tmpBuffer)
-    delete [] m_tmpBuffer;
+
+  delete [] m_buffer;
+  delete [] m_tmpBuffer;
 }
 
 //////////////////////////////////////////////////////////////////////////////
@@ -1059,29 +1061,14 @@
   COORD bs;
   SMALL_RECT sr;
 
-  bs.X = sbi.dwSize.X;
+  bs.X = m_bufferSize.width ();
   bs.Y = m_bufferSize.height ();
-  sr.Left   = sbi.srWindow.Left;
-  sr.Right  = sbi.srWindow.Right;
-  sr.Top    = m_consoleRect.top ();
+  sr.Left = m_consoleRect.left ();
+  sr.Right = m_consoleRect.right ();
+  sr.Top = m_consoleRect.top ();
   sr.Bottom = m_consoleRect.bottom ();
 
-  if (bs.Y > sbi.dwSize.Y)
-    {
-      SetConsoleScreenBufferSize (hStdOut, bs);
-      SetConsoleWindowInfo (hStdOut, TRUE, &sr);
-    }
-  else
-    {
-      SetConsoleWindowInfo (hStdOut, TRUE, &sr);
-      SetConsoleScreenBufferSize (hStdOut, bs);
-    }
-
-  bs.X = m_bufferSize.width ();
-  sr.Left  = m_consoleRect.left ();
-  sr.Right = m_consoleRect.right ();
-
-  if (bs.X > sbi.dwSize.X)
+  if (bs.X * bs.Y > sbi.dwSize.X * sbi.dwSize.Y)
     {
       SetConsoleScreenBufferSize (hStdOut, bs);
       SetConsoleWindowInfo (hStdOut, TRUE, &sr);
@@ -1097,12 +1084,10 @@
   log ("  window: (%d, %d) -> (%d, %d)\n",
        sr.Left, sr.Top, sr.Right, sr.Bottom);
 
-  if (m_buffer)
-    delete [] m_buffer;
-  if (m_tmpBuffer)
-    delete [] m_tmpBuffer;
+  delete [] m_buffer;
+  delete [] m_tmpBuffer;
 
-  int bufSize = m_consoleRect.width () * m_consoleRect.height ();
+  std::size_t bufSize = m_consoleRect.width () * m_consoleRect.height ();
 
   m_buffer = new CHAR_INFO[bufSize];
   m_tmpBuffer = new CHAR_INFO[bufSize];
@@ -1262,6 +1247,8 @@
 
   if (GetConsoleScreenBufferInfo (hStdOut, &sbi))
     {
+      bool need_console_sync = false;
+
       if (m_bufferSize.width () != sbi.dwSize.X
           || m_bufferSize.height () != sbi.dwSize.Y)
         {
@@ -1270,6 +1257,7 @@
           m_bufferSize.rheight () = sbi.dwSize.Y;
           updateHorizontalScrollBar ();
           updateVerticalScrollBar ();
+          need_console_sync = true;
         }
 
       if (m_cursorPos.x () != sbi.dwCursorPosition.X
@@ -1301,20 +1289,28 @@
                                  sbi.srWindow.Bottom - sbi.srWindow.Top + 1);
           updateHorizontalScrollBar ();
           updateVerticalScrollBar ();
+          syncConsoleParameters ();
           updateConsoleView ();
           return;
         }
 
+      if (need_console_sync)
+      {
+        syncConsoleParameters ();
+        updateConsoleView ();
+        return;
+      }
+
       if (m_tmpBuffer && m_buffer)
         {
           grabConsoleBuffer (m_tmpBuffer);
           if (memcmp (m_tmpBuffer, m_buffer,
-                      sizeof (CHAR_INFO) * m_consoleRect.width () *
-                      m_consoleRect.height ()))
+                      sizeof (CHAR_INFO) * m_consoleRect.width ()
+                      * m_consoleRect.height ()))
             {
               // FIXME: compute the area to update based on the
               // difference between the 2 buffers.
-              qSwap (m_buffer, m_tmpBuffer);
+              std::swap (m_buffer, m_tmpBuffer);
               updateConsoleView (false);
             }
         }
@@ -1741,7 +1737,7 @@
   d->setCursorColor (useForegroundColor, color);
 }
 
-void QWinTerminalImpl::setScrollBufferSize(int value)
+void QWinTerminalImpl::setScrollBufferSize (int value)
 {
   d->setScrollBufferSize (value);
 }
--- a/libgui/src/command-widget.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/command-widget.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -27,12 +27,15 @@
 #  include "config.h"
 #endif
 
+#if defined (HAVE_QSCINTILLA)
+
 #include <QGroupBox>
 #include <QHBoxLayout>
 #include <QLabel>
 #include <QLineEdit>
 #include <QPushButton>
-#include <QTextBrowser>
+#include <QTextEdit>
+#include <QTextBlock>
 #include <QVBoxLayout>
 
 #include "command-widget.h"
@@ -47,44 +50,29 @@
 
 namespace octave
 {
-  command_widget::command_widget (base_qobject&, QWidget *p)
+  command_widget::command_widget (base_qobject& oct_qobj, QWidget *p)
     : QWidget (p), m_incomplete_parse (false),
-      m_prompt (new QLabel ("", this)),
-      m_line_edit (new QLineEdit (this)),
-      m_output_display (new QTextBrowser (this)),
-      m_input_color (QColor ())
+      m_prompt (QString ()),
+      m_console (new console (this, oct_qobj))
   {
     QPushButton *pause_button = new QPushButton (tr("Pause"), this);
     QPushButton *stop_button = new QPushButton (tr("Stop"), this);
     QPushButton *resume_button = new QPushButton (tr("Continue"), this);
 
-    QGroupBox *input_group_box = new QGroupBox (tr("Command Input"));
+    QGroupBox *input_group_box = new QGroupBox ();
     QHBoxLayout *input_layout = new QHBoxLayout;
-    input_layout->addWidget (m_prompt);
-    input_layout->addWidget (m_line_edit);
     input_layout->addWidget (pause_button);
     input_layout->addWidget (stop_button);
     input_layout->addWidget (resume_button);
     input_group_box->setLayout (input_layout);
 
-    QGroupBox *output_group_box = new QGroupBox (tr("Command Output"));
-    QHBoxLayout *output_layout = new QHBoxLayout ();
-    output_layout->addWidget (m_output_display);
-    output_group_box->setLayout (output_layout);
-
     QVBoxLayout *main_layout = new QVBoxLayout ();
-    main_layout->addWidget (output_group_box);
+    main_layout->addWidget (m_console);
     main_layout->addWidget (input_group_box);
 
     setLayout (main_layout);
 
-    setFocusProxy (m_line_edit);
-
-    connect (m_line_edit, &QLineEdit::returnPressed,
-             this, &command_widget::accept_input_line);
-
-    connect (this, &command_widget::clear_line_edit,
-             m_line_edit, &QLineEdit::clear);
+    setFocusProxy (m_console);
 
     connect (pause_button, &QPushButton::clicked,
              this, &command_widget::interpreter_pause);
@@ -94,39 +82,47 @@
 
     connect (stop_button, &QPushButton::clicked,
              this, &command_widget::interpreter_stop);
+
+    connect (this, &command_widget::new_command_line_signal,
+             m_console, &console::new_command_line);
+
+    insert_interpreter_output ("\n\n    Welcome to Octave\n\n");
+
+  }
+
+  void command_widget::init_command_prompt ()
+  {
+    emit interpreter_event
+      ([=] (interpreter& interp)
+       {
+         // INTERPRETER THREAD
+
+         event_manager& evmgr = interp.get_event_manager ();
+         input_system& input_sys = interp.get_input_system ();
+         std::string prompt = input_sys.PS1 ();
+         evmgr.update_prompt (command_editor::decode_prompt_string (prompt));
+
+         emit new_command_line_signal ();
+       });
   }
 
   void command_widget::update_prompt (const QString& prompt)
   {
-    m_prompt->setText (prompt);
+    m_prompt = prompt;
+  }
+
+  QString command_widget::prompt ()
+  {
+    return m_prompt;
   }
 
   void command_widget::insert_interpreter_output (const QString& msg)
   {
-    QTextCursor cursor = m_output_display->textCursor ();
-
-    cursor.insertText (msg);
-
-    m_output_display->setTextCursor (cursor);
+    m_console->append (msg);
   }
 
-  void command_widget::accept_input_line (void)
+  void command_widget::process_input_line (const QString& input_line)
   {
-    QTextCursor cursor = m_output_display->textCursor ();
-
-    QString input_line = m_line_edit->text ();
-
-    QString style;
-    if (! m_incomplete_parse)
-      {
-        style = QString ("<div style=\"color:%1; font-weight:bold;\">[in]:</div> ")
-                .arg (m_input_color.name ());
-        m_output_display->insertHtml (style);
-      }
-    style = QString ("<div style=\"color:%1\">%2</div><br>")
-            .arg (m_input_color.name ()).arg (input_line);
-    m_output_display->insertHtml (style);
-
     emit interpreter_event
       ([=] (interpreter& interp)
        {
@@ -142,9 +138,10 @@
            = m_incomplete_parse ? input_sys.PS2 () : input_sys.PS1 ();
 
          evmgr.update_prompt (command_editor::decode_prompt_string (prompt));
+
+         emit new_command_line_signal ();
        });
 
-    emit clear_line_edit ();
   }
 
   void command_widget::notice_settings (const gui_settings *settings)
@@ -158,20 +155,152 @@
     term_font.setPointSize
       (settings->value (cs_font_size).toInt ());
 
-    m_line_edit->setFont (term_font);
-    m_output_display->setFont (term_font);
+    m_console->setFont (term_font);
 
     // Colors
     int mode = settings->value (cs_color_mode).toInt ();
     QColor fgc = settings->color_value (cs_colors[0], mode);
     QColor bgc = settings->color_value (cs_colors[1], mode);
 
-    m_output_display->setStyleSheet (QString ("color: %1; background-color:%2;")
+    m_console->setStyleSheet (QString ("color: %1; background-color:%2;")
                                      .arg (fgc.name ()).arg (bgc.name ()));
-    m_line_edit->setStyleSheet (QString ("color: %1; background-color:%2;")
-                                .arg (fgc.name ()).arg (bgc.name ()));
+  }
+
+
+  // The console itself using QScintilla.
+  // This implementation is partly based on the basic concept of
+  // "qpconsole" as proposed by user "DerManu" in the Qt-forum thread
+  // https://forum.qt.io/topic/28765/command-terminal-using-qtextedit
+
+  console::console (command_widget *p, base_qobject&)
+    : QsciScintilla (p),
+      m_command_position (-1),
+      m_cursor_position (0),
+      m_text_changed (false),
+      m_command_widget (p),
+      m_last_key_string (QString ())
+  {
+    setMargins (0);
+    setWrapMode (QsciScintilla::WrapWord);
+
+    connect (this, SIGNAL (cursorPositionChanged (int, int)),
+             this, SLOT (cursor_position_changed (int, int)));
+
+    connect (this, SIGNAL (textChanged (void)),
+             this, SLOT (text_changed (void)));
+
+    connect (this, SIGNAL (modificationAttempted (void)),
+             this, SLOT (move_cursor_to_end (void)));
+  }
+
+  // Prepare a new command line with the current prompt
+  void console::new_command_line (const QString& command)
+  {
+    if (! text (lines () -1).isEmpty ())
+      append ("\n");
+
+    append_string (m_command_widget->prompt ());
+
+    int line, index;
+    getCursorPosition (&line,&index);
+    m_command_position = positionFromLineIndex (line, index);
+
+    append_string (command);
+  }
+
+  // Accept the current command line (or block)
+  void console::accept_command_line ()
+  {
+    QString input_line = text (lines () - 1);
+
+    if (input_line.startsWith (m_command_widget->prompt ()))
+      input_line.remove(0, m_command_widget->prompt ().length ());
+
+    input_line = input_line.trimmed ();
+
+    append_string ("\n");
+
+    if (input_line.isEmpty ())
+      new_command_line ();
+    else
+      m_command_widget->process_input_line (input_line);
+  }
+
+  // Execute a command
+  void console::execute_command (const QString& command)
+  {
+    if (command.trimmed ().isEmpty ())
+      return;
 
-    m_input_color = interpolate_color (fgc, bgc, 0.75, 0.5);
+    new_command_line (command);
+    accept_command_line ();
+  }
+
+  // Append a string and update the curdor püosition
+  void console::append_string (const QString& string)
+  {
+    setReadOnly (false);
+    append (string);
+
+    int line, index;
+    lineIndexFromPosition (text ().length (), &line, &index);
+
+    setCursorPosition (line, index);
+  }
+
+  // Cursor position changed: Are we in the command line or not?
+  void console::cursor_position_changed (int line, int col)
+  {
+    m_cursor_position = positionFromLineIndex (line, col);
+    if (m_cursor_position < m_command_position)
+      {
+        // We are in the read only area
+        if (m_text_changed && (m_cursor_position == m_command_position - 1))
+          {
+            setReadOnly (false);
+            insert (m_command_widget->prompt ().right (1)); // And here we have tried to remove the prompt by Backspace
+            setCursorPosition (line+1, col);
+          }
+        setReadOnly (true);
+      }
+    else
+      setReadOnly (false);  // Writable area
+
+    m_text_changed = false;
+  }
+
+  // User attempted to type on read only mode: move cursor at end and allow
+  // editing
+  void console::move_cursor_to_end (void)
+  {
+    if ((! m_last_key_string.isEmpty ()) && (m_last_key_string.at (0).isPrint ()))
+      {
+        append_string (m_last_key_string);
+        setReadOnly (true); // Avoid that changing read only text is done afterwards
+      }
+  }
+
+  // Text has changed: is cursor still in "writable" area?
+  // This signal seems to be emitted before cursor position changed.
+  void console::text_changed (void)
+  {
+    m_text_changed = true;
+  }
+
+  // Re-implement key event
+  void console::keyPressEvent (QKeyEvent *e)
+  {
+    if (e->key () == Qt::Key_Return)
+      // On "return", accept the current command line
+      accept_command_line ();
+    else
+      {
+        // Otherwise, store text process the expected event
+        m_last_key_string = e->text ();
+        QsciScintilla::keyPressEvent(e);
+      }
   }
 
 }
+
+#endif
\ No newline at end of file
--- a/libgui/src/command-widget.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/command-widget.h	Tue Nov 15 13:15:28 2022 -0800
@@ -28,17 +28,55 @@
 
 #include <QWidget>
 
+#include <Qsci/qsciscintilla.h>
+
 #include "octave-qobject.h"
 #include "gui-settings.h"
 
-class QLabel;
-class QLineEdit;
-class QStrung;
-class QTextBrowser;
+class QsciScintilla;
 
 namespace octave
 {
   class base_qobject;
+  class command_widget;
+
+  class console : public QsciScintilla
+  {
+    Q_OBJECT
+
+  public:
+
+    console (command_widget *p, base_qobject& oct_qobj);
+
+  public slots:
+
+    void cursor_position_changed (int line, int col);
+
+    void text_changed (void);
+
+    void move_cursor_to_end (void);
+
+    void new_command_line (const QString& command = QString ());
+
+    void execute_command (const QString& command);
+
+  protected:
+
+    void keyPressEvent (QKeyEvent *e);
+
+  private:
+
+    void append_string (const QString& string);
+
+    void accept_command_line (void);
+
+    int m_command_position;
+    int m_cursor_position;
+    bool m_text_changed;
+    command_widget *m_command_widget;
+    QString m_last_key_string;
+
+  };
 
   class command_widget : public QWidget
   {
@@ -48,6 +86,12 @@
 
     command_widget (base_qobject& oct_qobj, QWidget *p);
 
+    console * get_console ( ) { return m_console; };
+
+    void init_command_prompt ();
+
+    QString prompt (void);
+
   signals:
 
     void clear_line_edit (void);
@@ -59,25 +103,23 @@
     void interpreter_event (const fcn_callback& fcn);
     void interpreter_event (const meth_callback& meth);
 
+    void new_command_line_signal (const QString& command = QString ());
+
   public slots:
 
+    void process_input_line (const QString& input_line);
+
     void update_prompt (const QString& prompt);
 
     void insert_interpreter_output (const QString& msg);
 
     void notice_settings (const gui_settings *settings);
 
-  protected slots:
-
-    void accept_input_line (void);
-
   private:
 
     bool m_incomplete_parse;
-    QLabel *m_prompt;
-    QLineEdit *m_line_edit;
-    QTextBrowser *m_output_display;
-    QColor m_input_color;
+    QString m_prompt;
+    console *m_console;
   };
 }
 
--- a/libgui/src/community-news.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/community-news.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -33,6 +33,7 @@
 
 #include "community-news.h"
 #include "gui-utils.h"
+#include "gui-preferences-dw.h"
 #include "gui-preferences-nr.h"
 #include "news-reader.h"
 #include "octave-qobject.h"
@@ -78,9 +79,14 @@
     resource_manager& rmgr = oct_qobj.get_resource_manager ();
     gui_settings *settings = rmgr.get_settings ();
 
-    // FIXME: should be configurable...  See also the icon for the
-    // release notes window.
-    QString icon = ":/actions/icons/logo.png";
+    QString icon;
+    QString icon_set = settings->value (dw_icon_set).toString ();
+    if (icon_set != "NONE")
+      // No extra icon for Community news, take the one of the release notes
+      icon = dw_icon_set_names[icon_set] + "ReleaseWidget.png";
+    else
+      icon = dw_icon_set_names[icon_set];
+
     setWindowIcon (QIcon (icon));
 
     // FIXME: This is a news reader preference, so shouldn't it be used
--- a/libgui/src/documentation-dock-widget.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/documentation-dock-widget.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -38,7 +38,6 @@
     : octave_dock_widget ("DocumentationDockWidget", p, oct_qobj),
       m_docs (new documentation (this, oct_qobj))
   {
-    setWindowIcon (QIcon (":/actions/icons/logo.png"));
     set_title (tr ("Documentation"));
     setStatusTip (tr ("See the documentation for help."));
 
--- a/libgui/src/documentation.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/documentation.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -34,6 +34,7 @@
 #include <QDir>
 #include <QFile>
 #include <QFileInfo>
+#include <QFontDatabase>
 #include <QHelpContentWidget>
 #include <QHelpIndexWidget>
 #if defined (HAVE_NEW_QHELPINDEXWIDGET_API) \
@@ -96,7 +97,7 @@
     m_help_engine->setProperty ("_q_readonly",
                                 QVariant::fromValue<bool> (true));
 
-    QString tmpdir = QDir::tempPath();
+    QString tmpdir = QString::fromStdString (sys::env::get_temp_directory ());
     m_collection
       = QString::fromStdString (sys::tempnam (tmpdir.toStdString (),
                                               "oct-qhelp-"));
@@ -417,13 +418,13 @@
     // Zoom
     m_tool_bar->addSeparator ();
     m_action_zoom_in
-      = add_action (rmgr.icon ("zoom-in"), tr ("Zoom in"),
+      = add_action (rmgr.icon ("view-zoom-in"), tr ("Zoom in"),
                     SLOT (zoom_in (void)), m_doc_browser, m_tool_bar);
     m_action_zoom_out
-      = add_action (rmgr.icon ("zoom-out"), tr ("Zoom out"),
+      = add_action (rmgr.icon ("view-zoom-out"), tr ("Zoom out"),
                     SLOT (zoom_out (void)), m_doc_browser, m_tool_bar);
     m_action_zoom_original
-      = add_action (rmgr.icon ("zoom-original"), tr ("Zoom original"),
+      = add_action (rmgr.icon ("view-zoom-original"), tr ("Zoom original"),
                     SLOT (zoom_original (void)), m_doc_browser, m_tool_bar);
 
     // Bookmarks (connect slots later)
@@ -995,6 +996,40 @@
     setOpenLinks (false);
     connect (this, &documentation_browser::anchorClicked,
              this, [=] (const QUrl& url) { handle_index_clicked (url); });
+
+    // Make sure we have access to one of the monospace fonts listed in
+    // octave.css for rendering formated code blocks
+    QStringList fonts = {"Fantasque Sans Mono", "FreeMono", "Courier New",
+                         "Cousine", "Courier"};
+
+    bool load_default_font = true;
+
+    for (int i = 0; i < fonts.size (); ++i)
+      {
+        QFont font (fonts.at (i));
+        if (font.exactMatch ())
+          {
+            load_default_font = false;
+            break;
+          }
+      }
+
+    if (load_default_font)
+      {
+        QString fonts_dir =
+          QString::fromStdString (sys::env::getenv ("OCTAVE_FONTS_DIR")
+                                  + sys::file_ops::dir_sep_str ());
+
+        QStringList default_fonts = {"FreeMono", "FreeMonoBold",
+                                     "FreeMonoBoldOblique", "FreeMonoOblique"};
+
+        for (int i = 0; i < default_fonts.size (); ++i)
+          {
+            QString fontpath =
+              fonts_dir + default_fonts.at(i) + QString (".otf");
+            QFontDatabase::addApplicationFont (fontpath);
+          }
+      }
   }
 
   void documentation_browser::handle_index_clicked (const QUrl& url,
--- a/libgui/src/files-dock-widget.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/files-dock-widget.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -41,6 +41,8 @@
 #include <QMessageBox>
 #include <QProcess>
 #include <QSizePolicy>
+#include <QStyledItemDelegate>
+#include <QTimer>
 #include <QToolButton>
 #include <QUrl>
 
@@ -70,10 +72,116 @@
     }
   };
 
+  // to have file renamed in the file tree, it has to be renamed in
+  // QFileSystemModel::setData.
+  // For the editor to behave correctly, some signals must be sent before
+  // and after the rename
+  class file_system_model : public QFileSystemModel
+  {
+  public:
+    file_system_model (files_dock_widget *p) : QFileSystemModel (p) {}
+
+    ~file_system_model () = default;
+
+    bool setData (const QModelIndex &idx, const QVariant &value,
+                  int role) override
+    {
+      if (!idx.isValid () || idx.column () != 0 || role != Qt::EditRole
+          || (flags (idx) & Qt::ItemIsEditable) == 0)
+        {
+          return false;
+        }
+
+      QString new_name = value.toString ();
+      QString old_name = idx.data ().toString ();
+      if (new_name == old_name)
+        return true;
+      if (new_name.isEmpty ()
+          || QDir::toNativeSeparators (new_name).contains (QDir::separator ()))
+        {
+          display_rename_failed_message (old_name, new_name);
+          return false;
+        }
+
+      auto parent_dir = QDir(filePath (parent (idx)));
+
+      files_dock_widget *fdw = static_cast<files_dock_widget*>(parent());
+
+
+      fdw->file_remove_signal(parent_dir.filePath(old_name), parent_dir.filePath(new_name));
+
+      if (!parent_dir.rename (old_name, new_name))
+        {
+          display_rename_failed_message (old_name, new_name);
+          fdw->file_renamed_signal(false);
+          return false;
+        }
+
+      fdw->file_renamed_signal(true);
+
+      emit fileRenamed(parent_dir.absolutePath(), old_name, new_name);
+      revert();
+
+      return true;
+    }
+
+  private:
+    void display_rename_failed_message (const QString &old_name,
+                                        const QString &new_name)
+    {
+      const QString message =
+
+          files_dock_widget::tr ("Could not rename file \"%1\" to \"%2\".")
+              .arg (old_name)
+              .arg (new_name);
+      QMessageBox::information (static_cast<QWidget *> (parent ()),
+                                QFileSystemModel::tr ("Invalid filename"),
+                                message, QMessageBox::Ok);
+    }
+  };
+
+  // Delegate to improve ergonomy of file renaming by pre-selecting the text
+  // before the extension.
+  class RenameItemDelegate : public QStyledItemDelegate
+  {
+  public:
+    RenameItemDelegate (QObject *parent = nullptr)
+        : QStyledItemDelegate{ parent }
+    {
+    }
+
+    void setEditorData (QWidget *editor,
+                        const QModelIndex &index) const override
+    {
+      QLineEdit *line_edit = qobject_cast<QLineEdit *> (editor);
+
+      if (!line_edit)
+        {
+          QStyledItemDelegate::setEditorData (editor, index);
+          return;
+        }
+
+      QString filename = index.data (Qt::EditRole).toString ();
+
+      int select_len = filename.indexOf (QChar ('.'));
+      if (select_len == -1)
+        select_len = filename.size ();
+
+      line_edit->setText (filename);
+
+      // Qt calls QLineEdit::selectAll after this function is called, so to
+      // actually restrict the selection, we have to post the modification at
+      // the end of the event loop.
+      // QTimer allows this easily with 0 as timeout.
+      QTimer::singleShot (0, [=] () {
+        line_edit->setSelection (0, select_len);
+      });
+    }
+  };
+
   files_dock_widget::files_dock_widget (QWidget *p, base_qobject& oct_qobj)
     : octave_dock_widget ("FilesDockWidget", p, oct_qobj)
   {
-    setWindowIcon (QIcon (":/actions/icons/logo.png"));
     set_title (tr ("File Browser"));
     setToolTip (tr ("Browse your files"));
 
@@ -121,7 +229,7 @@
     resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
 
     QAction *directory_up_action
-      = new QAction (rmgr.icon ("go-up"), "", m_navigation_tool_bar);
+      = new QAction (rmgr.icon ("folder-up", false, "go-up"), "", m_navigation_tool_bar);
     directory_up_action->setToolTip (tr ("One directory up"));
 
     m_sync_browser_directory_action
@@ -146,8 +254,9 @@
     popdown_menu->addAction (m_sync_octave_directory_action);
     popdown_button->setMenu (popdown_menu);
     popdown_button->setPopupMode (QToolButton::InstantPopup);
-    popdown_button->setDefaultAction (new QAction (rmgr.icon ("applications-system"),
-                                                   "", m_navigation_tool_bar));
+    popdown_button->setDefaultAction (
+        new QAction (rmgr.icon ("folder-settings", false, "applications-system"),
+        "", m_navigation_tool_bar));
 
     popdown_menu->addSeparator ();
     popdown_menu->addAction (rmgr.icon ("folder"),
@@ -202,7 +311,7 @@
         startup_dir = QDir ();
       }
 
-    m_file_system_model = new QFileSystemModel (this);
+    m_file_system_model = new file_system_model (this);
     m_file_system_model->setResolveSymlinks (false);
     m_file_system_model->setFilter (
       QDir::System | QDir::NoDotAndDotDot | QDir::AllEntries);
@@ -219,6 +328,24 @@
     m_file_tree_view->setAnimated (true);
     m_file_tree_view->setToolTip (tr ("Double-click to open file/folder, right click for alternatives"));
 
+    // allow renaming directly in the tree view with
+    // m_file_tree_view->edit(index)
+    m_file_system_model->setReadOnly (false);
+    // delegate to improve rename ergonomy by pre-selecting text up to the
+    // extension
+    auto *rename_delegate = new RenameItemDelegate (this);
+    m_file_tree_view->setItemDelegateForColumn (0, rename_delegate);
+    // prevent the tree view to override Octave's double-click behavior
+    m_file_tree_view->setEditTriggers (QAbstractItemView::NoEditTriggers);
+    // create the rename action (that will be added to context menu)
+    // and associate to F2 key shortcut
+    m_rename_action = new QAction (tr ("Rename..."), this);
+    m_rename_action->setShortcut (Qt::Key_F2);
+    m_rename_action->setShortcutContext(Qt::WidgetWithChildrenShortcut);
+    connect (m_rename_action, &QAction::triggered, this,
+             &files_dock_widget::contextmenu_rename);
+    addAction(m_rename_action);
+
     // get sort column and order as well as column state (order and width)
 
     m_file_tree_view->sortByColumn
@@ -582,8 +709,7 @@
           }
 
         menu.addSeparator ();
-        menu.addAction (tr ("Rename..."),
-                        this, &files_dock_widget::contextmenu_rename);
+        menu.addAction (m_rename_action);
         menu.addAction (rmgr.icon ("edit-delete"), tr ("Delete..."),
                         this, &files_dock_widget::contextmenu_delete);
 
@@ -694,37 +820,8 @@
     if (rows.size () > 0)
       {
         QModelIndex index = rows[0];
-
-        QFileInfo info = m_file_system_model->fileInfo (index);
-        QDir path = info.absoluteDir ();
-        QString old_name = info.fileName ();
-        bool ok;
-
-        QString new_name
-          = QInputDialog::getText (this, tr ("Rename file/directory"),
-                                   tr ("Rename file/directory:\n")
-                                   + old_name + tr ("\n to: "),
-                                   QLineEdit::Normal, old_name, &ok);
-        if (ok && new_name.length () > 0)
-          {
-            new_name = path.absolutePath () + '/' + new_name;
-            old_name = path.absolutePath () + '/' + old_name;
-            // editor: close old
-            emit file_remove_signal (old_name, new_name);
-            // Do the renaming
-            QFile f (old_name);  // Must use QFile, not QDir (bug #56298)
-            bool st = f.rename (new_name);
-            if (! st)
-              QMessageBox::warning (this, tr ("Rename error"),
-                                    tr ("Could not rename file \"%1\" to \"%2\".").
-                                    arg (old_name).arg (new_name));
-            // editor: load new/old file depending on success
-            emit file_renamed_signal (st);
-            // Clear cache of file browser
-            m_file_system_model->revert ();
-          }
+        m_file_tree_view->edit(index);
       }
-
   }
 
   void files_dock_widget::contextmenu_delete (bool)
@@ -791,8 +888,8 @@
                                           tr ("Could not delete file \"%1\".").
                                           arg (info.filePath ()));
                     // Reload the old file
-                    emit file_renamed_signal (false);
                   }
+                emit file_renamed_signal (st);
               }
 
             m_file_system_model->revert ();
--- a/libgui/src/files-dock-widget.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/files-dock-widget.h	Tue Nov 15 13:15:28 2022 -0800
@@ -207,6 +207,7 @@
     QToolBar *m_navigation_tool_bar;
     QAction *m_sync_octave_directory_action;
     QAction *m_sync_browser_directory_action;
+    QAction *m_rename_action;
 
     //! The file system model.
 
--- a/libgui/src/gui-preferences-dw.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/gui-preferences-dw.h	Tue Nov 15 13:15:28 2022 -0800
@@ -33,32 +33,31 @@
 
 const gui_pref
 dw_title_custom_style ("DockWidgets/widget_title_custom_style",
-                       QVariant (false));
+                       QVariant (true));
 
-const gui_pref dw_title_3d ("DockWidgets/widget_title_3d", QVariant (50));
+const gui_pref dw_title_3d ("DockWidgets/widget_title_3d", QVariant (20));
 
-const gui_pref
-dw_title_fg_color ("DockWidgets/title_fg_color", QVariant (QColor (0, 0, 0)));
+const gui_pref dw_title_fg_color ("DockWidgets/title_fg_color",
+                                  QVariant (QColor (0, 0, 0)));
 
 const gui_pref dw_title_fg_color_active ("DockWidgets/title_fg_color_active",
-                                         QVariant (QColor (0, 0, 0)));
+                                         QVariant (QColor (255, 255, 255)));
 
 const gui_pref dw_title_bg_color ("DockWidgets/title_bg_color",
-                                  QVariant (QColor (255, 255, 255)));
+                                  QVariant (QColor (192, 192, 192)));
 
 const gui_pref dw_title_bg_color_active ("DockWidgets/title_bg_color_active",
-                                         QVariant (QColor (192, 192, 192)));
+                                         QVariant (QColor (128, 128, 128)));
 
 const gui_pref dw_icon_set ("DockWidgets/widget_icon_set", QVariant ("NONE"));
 
-const struct { QString name; QString path; } dw_icon_set_names[]
+const QHash <QString, QString> dw_icon_set_names
   = {
       // array of possible icon sets (name, path (complete for NONE))
       // the first entry here is the default!
-      {"NONE",    ":/actions/icons/logo.png"},
-      {"GRAPHIC", ":/actions/icons/graphic_logo_"},
-      {"LETTER",  ":/actions/icons/letter_logo_"},
-      {"", ""} // end marker has empty name
+      {"NONE",    ":/icons/octave/128x128/logo.png"},
+      {"GRAPHIC", ":/icons/octave/128x128/graphic_logo_"},
+      {"LETTER",  ":/icons/octave/128x128/letter_logo_"}
     };
 
 // The following keys have to be used with .arg (objectName ())
--- a/libgui/src/gui-preferences-ed.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/gui-preferences-ed.h	Tue Nov 15 13:15:28 2022 -0800
@@ -30,7 +30,7 @@
 #include <Qsci/qsciscintilla.h>
 #endif
 
-#include "gui-preferences.h"
+#include "gui-settings.h"
 #include "localcharset-wrapper.h"
 
 // Editor preferences
@@ -144,6 +144,10 @@
 ed_highlight_current_line ("editor/highlightCurrentLine", QVariant (true));
 
 const gui_pref
+ed_highlight_current_line_color ("editor/highlightCurrentLineColor",
+                                 QVariant (settings_color_no_change));
+
+const gui_pref
 ed_show_white_space ("editor/show_white_space", QVariant (false));
 
 const gui_pref
@@ -199,6 +203,9 @@
 const gui_pref
 ed_session_lines ("editor/saved_session_lines", QVariant (QStringList ()));
 
+const gui_pref
+ed_session_bookmarks ("editor/saved_session_bookmarks", QVariant (QStringList ()));
+
 // Tabs
 const QStringList
 ed_tab_position_names (QStringList ()
--- a/libgui/src/gui-preferences-global.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/gui-preferences-global.h	Tue Nov 15 13:15:28 2022 -0800
@@ -84,11 +84,48 @@
 const gui_pref
 global_icon_theme ("use_system_icon_theme", QVariant (true));
 
-// Other
+enum
+{
+  ICON_THEME_SYSTEM = 0,
+  ICON_THEME_OCTAVE,
+  ICON_THEME_TANGO,
+  ICON_THEME_CURSORS
+}  ;
+
+const QStringList
+global_icon_paths (QStringList ()
+                        << ""
+                        << ":/icons/octave/128x128/"
+                        << ":/icons/tango/128x128/"
+                        << ":/icons/cursors/"
+                       );
+
+const gui_pref
+global_icon_theme_index ("icon_theme", QVariant (ICON_THEME_SYSTEM));
+const QStringList
+global_all_icon_themes (QStringList ()
+                        << ""
+                        << "octave"
+                        << "tango"
+                        << "cursors");
+const QStringList
+global_all_icon_theme_names (QStringList ()
+                        << "System"
+                        << "Octave"
+                        << "Tango");
 
 const gui_pref
 global_status_bar ("show_status_bar", QVariant (true));
 
+
+enum
+{
+  EXTRA_STYLE_FUSION_DARK = 0
+}  ;
+const QStringList
+global_extra_styles (QStringList ()
+                        << "Fusion-Dark");
+
 #if defined (Q_OS_MAC)
 // prevent native file dialogs on MAC by setting the default "false" and
 // setting the flag for ignoring the pref to "true" (3rd argument)
--- a/libgui/src/gui-settings.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/gui-settings.h	Tue Nov 15 13:15:28 2022 -0800
@@ -126,6 +126,7 @@
 // Some constants used several times in the settings
 
 // Special color indicating no change compared to default color
+// or automatically computed color
 const QColor settings_color_no_change (255, 0, 255);
 
 // Other color schemes (currently one extra, but possibly more in the future)
--- a/libgui/src/history-dock-widget.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/history-dock-widget.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -310,7 +310,6 @@
 
     m_filter_checkbox = new QCheckBox ();
 
-    setWindowIcon (QIcon (":/actions/icons/logo.png"));
     set_title (tr ("Command History"));
     setWidget (new QWidget ());
 
Binary file libgui/src/icons/applications-system.png has changed
--- a/libgui/src/icons/applications-system.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg53383"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/categories"
-   sodipodi:docname="applications-system.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective31" />
-    <linearGradient
-       id="linearGradient3264">
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="0"
-         id="stop3266" />
-      <stop
-         id="stop3276"
-         offset="0.25"
-         style="stop-color:#f8f8f8;stop-opacity:1;" />
-      <stop
-         id="stop3272"
-         offset="0.5"
-         style="stop-color:#e2e2e2;stop-opacity:1;" />
-      <stop
-         style="stop-color:#b0b0b0;stop-opacity:1;"
-         offset="0.75"
-         id="stop3274" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop3268" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3264"
-       id="linearGradient3281"
-       gradientUnits="userSpaceOnUse"
-       x1="14.462892"
-       y1="12.284524"
-       x2="34.534348"
-       y2="39.684914"
-       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)" />
-    <linearGradient
-       id="linearGradient2300">
-      <stop
-         id="stop2302"
-         offset="0.0000000"
-         style="stop-color:#000000;stop-opacity:0.32673267;" />
-      <stop
-         id="stop2304"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="aigrd1"
-       gradientUnits="userSpaceOnUse"
-       x1="99.7773"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311">
-      <stop
-         offset="0"
-         style="stop-color:#184375"
-         id="stop53300" />
-      <stop
-         offset="1"
-         style="stop-color:#C8BDDC"
-         id="stop53302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd1"
-       id="linearGradient53551"
-       gradientUnits="userSpaceOnUse"
-       x1="99.7773"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311"
-       gradientTransform="matrix(0.200685,0.000000,0.000000,0.200685,-0.585758,-1.050787)" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       r="11.689870"
-       fy="72.568001"
-       fx="14.287618"
-       cy="68.872971"
-       cx="14.287618"
-       gradientTransform="matrix(1.399258,-2.234445e-7,8.196178e-8,0.513264,4.365074,4.839285)"
-       id="radialGradient2308"
-       xlink:href="#linearGradient2300"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3264"
-       id="linearGradient3760"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)"
-       x1="14.462892"
-       y1="12.284524"
-       x2="34.534348"
-       y2="39.684914" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd1"
-       id="linearGradient3773"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.200685,0,0,0.200685,-54.33576,-1.050787)"
-       x1="99.7773"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:showpageshadow="false"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.11764706"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6568542"
-     inkscape:cx="43.652227"
-     inkscape:cy="21.164787"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="872"
-     inkscape:window-height="697"
-     inkscape:window-x="562"
-     inkscape:window-y="151" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>System Applications</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz/</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>system</rdf:li>
-            <rdf:li>applications</rdf:li>
-            <rdf:li>group</rdf:li>
-            <rdf:li>category</rdf:li>
-            <rdf:li>admin</rdf:li>
-            <rdf:li>root</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="shadow"
-     id="layer2"
-     inkscape:groupmode="layer">
-    <path
-       transform="matrix(1.186380,0.000000,0.000000,1.186380,-4.539687,-7.794678)"
-       d="M 44.285715 38.714287 A 19.928572 9.8372450 0 1 1  4.4285717,38.714287 A 19.928572 9.8372450 0 1 1  44.285715 38.714287 z"
-       sodipodi:ry="9.8372450"
-       sodipodi:rx="19.928572"
-       sodipodi:cy="38.714287"
-       sodipodi:cx="24.357143"
-       id="path1538"
-       style="color:#000000;fill:url(#radialGradient2308);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.50000042;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-  </g>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       style="opacity:1;color:#000000;fill:url(#linearGradient3773);fill-opacity:1;fill-rule:nonzero;stroke:#3f4561;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 22.699525,0.94746963 C 22.22635,0.97984519 21.766437,1.0531317 21.301673,1.1063165 L 21.269903,1.1063165 L 20.157975,7.1742671 C 18.345621,7.5870046 16.640562,8.2874574 15.106644,9.2392765 L 10.118853,5.6493371 C 8.770521,6.6961412 7.543552,7.9170049 6.465374,9.2392765 L 9.928236,14.290607 C 8.876814,15.89739 8.086153,17.732094 7.640841,19.659632 C 7.640765,19.668743 7.640779,19.689813 7.640841,19.691401 L 1.60466,20.644482 C 1.494303,21.545851 1.445813,22.477386 1.445813,23.408418 C 1.445813,24.170171 1.466846,24.921747 1.541121,25.664043 L 7.577303,26.744202 C 8.0066,28.840363 8.822112,30.797987 9.960006,32.526228 L 6.370066,37.450482 C 7.398201,38.726866 8.585171,39.888962 9.864698,40.913343 L 14.947798,37.418712 C 16.724273,38.551956 18.707343,39.346604 20.856901,39.737877 L 21.809983,45.742288 C 22.487237,45.803935 23.181758,45.805827 23.874992,45.805827 C 24.853677,45.805826 25.788512,45.768738 26.734236,45.64698 L 27.877933,39.515491 C 29.91886,39.007587 31.836112,38.126493 33.501113,36.942172 L 38.393596,40.500342 C 39.662366,39.420897 40.822583,38.180154 41.824689,36.846863 L 38.266519,31.700225 C 39.230125,30.036028 39.897817,28.199859 40.23622,26.235892 L 46.240632,25.282811 C 46.29329,24.656221 46.30417,24.048546 46.30417,23.408418 C 46.30417,22.296018 46.174875,21.205317 46.018246,20.136172 L 39.918526,19.024244 C 39.440518,17.259164 38.656214,15.612364 37.662901,14.13176 L 41.25284,9.2075071 C 40.140075,7.8466524 38.870718,6.5895264 37.472284,5.5222596 L 32.293876,9.0804296 C 30.805549,8.200202 29.203897,7.5248159 27.464931,7.1424978 L 26.51185,1.1063165 C 25.644369,1.0042729 24.769749,0.94746963 23.874992,0.94746963 C 23.633166,0.94746964 23.384286,0.93986063 23.144296,0.94746963 C 23.027301,0.95117908 22.911525,0.94066346 22.794833,0.94746963 C 22.763228,0.94931296 22.73107,0.94531125 22.699525,0.94746963 z M 23.525529,16.387386 C 23.641592,16.381497 23.757473,16.387386 23.874992,16.387386 C 27.635598,16.387386 30.705408,19.457196 30.705408,23.217802 C 30.705409,26.978407 27.635597,30.016448 23.874992,30.016448 C 20.114387,30.016449 17.076346,26.978407 17.076346,23.217802 C 17.076347,19.574716 19.927558,16.569963 23.525529,16.387386 z "
-       id="path3243" />
-    <path
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       sodipodi:type="arc"
-       style="opacity:0.64772728;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.62180054;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path3283"
-       sodipodi:cx="23.511301"
-       sodipodi:cy="23.781593"
-       sodipodi:rx="12.727922"
-       sodipodi:ry="12.727922"
-       d="M 36.239223 23.781593 A 12.727922 12.727922 0 1 1  10.783379,23.781593 A 12.727922 12.727922 0 1 1  36.239223 23.781593 z"
-       transform="matrix(0.616598,0,0,0.616598,9.38202,8.539674)" />
-    <path
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       id="path3285"
-       d="M 21.995808,2.1484671 L 21.103024,8.0235243 C 19.404254,8.4103946 16.279442,9.5936035 14.841657,10.485771 L 10.091975,6.9406268 C 8.828145,7.9218257 8.741474,7.9883656 7.730867,9.2277688 L 11.165063,14.320988 C 10.179537,15.827071 8.995796,18.510982 8.570778,20.42893 C 8.570778,20.42893 2.552988,21.443355 2.552988,21.443355 C 2.449547,22.288234 2.49926,24.096528 2.56888,24.792303 L 8.317097,25.82782 C 8.71949,27.79261 10.225324,30.955232 11.291904,32.575161 L 7.656902,37.377719 C 8.620601,38.57411 8.813474,38.683589 10.01281,39.64377 L 14.873441,36.082733 C 16.538581,37.144954 19.84373,38.437109 21.858571,38.80386 L 22.656299,44.604952 C 23.291109,44.662736 25.044829,44.824827 25.931283,44.710701 L 26.824066,38.671821 C 28.737084,38.195749 32.042539,36.838896 33.603191,35.728798 L 38.458624,39.236958 C 39.647878,38.225166 39.658533,38.072709 40.597835,36.822978 L 36.999815,31.708667 C 37.90303,30.148767 39.070902,27.098068 39.388097,25.257187 L 45.279046,24.279744 C 45.328399,23.692424 45.330802,22.054578 45.18399,21.052439 L 39.182092,20.016922 C 38.73404,18.362463 37.196418,15.381153 36.265359,13.993342 L 40.080075,9.1907857 C 39.037052,7.915218 38.64924,7.7402002 37.338448,6.7398212 L 32.313994,10.337839 C 30.918941,9.5127782 28.137095,8.2550417 26.507114,7.8966842 L 25.619528,2.1484671 C 24.806414,2.0528187 22.460488,2.0952921 21.995808,2.1484671 z "
-       style="opacity:0.34659089;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999923;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:nodetypes="ccccccccccccccccccccccccccccccccc" />
-    <path
-       style="opacity:0.5;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 10.102903,6.2970655 C 8.7545689,7.3438694 8.1656464,7.9719226 7.0874684,9.2941942 L 10.489927,14.259153 C 9.4385072,15.857755 8.3316275,18.426114 8.1423859,19.987706 C 8.1423859,19.987706 2.0798859,21.0319 2.0798859,21.0319 C 2.0109129,21.595256 1.90625,22.884803 1.90625,22.884803 L 2.0830267,24.447303 C 2.5107567,24.535638 2.9231817,24.617818 3.3642767,24.666053 L 3.8642767,23.134803 C 4.2083177,23.163279 4.5439297,23.197303 4.8955267,23.197303 C 5.2467347,23.197303 5.6139847,23.163473 5.9580267,23.134803 L 6.4267767,24.666053 C 6.8680647,24.617818 7.3115487,24.535638 7.7392767,24.447303 L 7.7392767,22.884803 C 8.4250337,22.72518 9.0712777,22.497045 9.7080267,22.228553 L 10.645527,23.509803 C 11.047878,23.327709 11.421123,23.133984 11.801777,22.916053 L 11.301777,21.416053 C 11.89901,21.053803 12.463529,20.620706 12.989277,20.166053 L 14.270527,21.103553 C 14.596162,20.806973 14.91164,20.491691 15.208027,20.166053 L 14.270527,18.916053 C 14.725373,18.390305 15.127027,17.826171 15.489277,17.228553 L 16.989277,17.697303 C 17.207208,17.316456 17.432571,16.943209 17.614277,16.541053 L 16.333027,15.603553 C 16.601517,14.966804 16.798016,14.320561 16.958027,13.634803 L 18.551777,13.634803 C 18.640112,13.207076 18.691236,12.763591 18.739277,12.322303 L 17.239277,11.853553 C 17.268139,11.509705 17.301777,11.142456 17.301777,10.791053 C 17.301776,10.43965 17.267753,10.104039 17.239277,9.7598034 L 18.739277,9.2910534 C 18.69373,8.8711662 18.633686,8.4490548 18.551777,8.0410534 C 17.404349,8.4403544 15.999117,9.1941729 14.983265,9.8245243 L 10.102903,6.2970655 z "
-       id="path3767"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       sodipodi:nodetypes="cccccccccsccccccccccccccccccccsccccc" />
-    <path
-       style="opacity:0.5;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 37.236641,17.217754 C 36.85286,17.39913 36.490003,17.603509 36.123236,17.813295 L 36.692886,19.548136 C 35.995792,19.970436 35.338156,20.467825 34.725008,20.998151 L 33.249099,19.910639 C 32.869013,20.256538 32.507327,20.618223 32.161588,20.998151 L 33.249099,22.474059 C 32.718773,23.087371 32.221547,23.745002 31.799084,24.441937 L 31.255328,24.260685 C 31.207646,24.960968 31.018949,25.62217 30.737466,26.228563 L 30.841038,26.306242 C 30.527881,27.048922 30.27649,27.83664 30.090137,28.636624 L 28.614229,28.636624 C 28.477946,28.722076 28.343676,28.821684 28.199938,28.895555 C 28.121568,29.310822 28.065026,29.712881 28.018687,30.138426 L 29.77942,30.708074 C 29.746033,31.10935 29.727633,31.515269 29.727633,31.925052 C 29.727631,32.334993 29.746034,32.740753 29.77942,33.142029 L 28.018687,33.711677 C 28.074705,34.226432 28.148678,34.740347 28.251725,35.239372 L 30.090137,35.213479 C 30.218255,35.763466 30.393202,36.320918 30.582107,36.844746 C 31.327023,36.557466 32.05594,36.214561 32.731236,35.809021 C 32.319649,34.59298 32.083908,33.279913 32.083908,31.925052 C 32.083909,26.727119 35.376289,22.288397 39.981313,20.583861 L 38.893802,20.402608 C 38.671014,19.579946 38.382478,18.774017 38.013435,18.020441 C 38.002581,17.998277 37.99851,17.96486 37.987542,17.942761 L 37.935756,17.890975 L 37.236641,17.217754 z "
-       id="path3770"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-  </g>
-</svg>
Binary file libgui/src/icons/bookmark-new.png has changed
--- a/libgui/src/icons/bookmark-new.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,672 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="240.00000"
-   inkscape:export-xdpi="240.00000"
-   inkscape:export-filename="/home/jimmac/gfx/novell/pdes/trunk/docs/BIGmime-text.png"
-   sodipodi:docname="bookmark-new.svg"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg249"
-   height="48.000000px"
-   width="48.000000px"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective100" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2906">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2908" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2910" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2896">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2898" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2900" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2598">
-      <stop
-         style="stop-color:#859dbc;stop-opacity:1;"
-         offset="0"
-         id="stop2600" />
-      <stop
-         style="stop-color:#547299;stop-opacity:1;"
-         offset="1"
-         id="stop2602" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2590">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2592" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2594" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5897">
-      <stop
-         style="stop-color:#000000;stop-opacity:0.0000000;"
-         offset="0.0000000"
-         id="stop5899" />
-      <stop
-         id="stop5905"
-         offset="0.50000000"
-         style="stop-color:#000000;stop-opacity:0.56701028;" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0.0000000;"
-         offset="1.0000000"
-         id="stop5901" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5866">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop5868" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop5870" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4404">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4406" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4408" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4542">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4544" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4546" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         id="stop15666"
-         offset="1.0000000"
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         offset="0.0000000"
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
-      <stop
-         id="stop271"
-         offset="1.0000000"
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         offset="0.0000000"
-         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
-      <stop
-         id="stop261"
-         offset="1.0000000"
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         id="stop12517"
-         offset="0.50000000"
-         style="stop-color:#fff520;stop-opacity:0.89108908;" />
-      <stop
-         id="stop12514"
-         offset="1.0000000"
-         style="stop-color:#fff300;stop-opacity:0.0000000;" />
-    </linearGradient>
-    <radialGradient
-       r="14.375000"
-       fy="125.00000"
-       fx="55.000000"
-       cy="125.00000"
-       cx="55.000000"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient278"
-       xlink:href="#linearGradient12512"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient269"
-       id="radialGradient15656"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0.000000,0.000000,1.036374,3.250000,0.489522)"
-       cx="8.8244190"
-       cy="3.7561285"
-       fx="8.8244190"
-       fy="3.7561285"
-       r="37.751713" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient259"
-       id="radialGradient15658"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.960493,0.000000,0.000000,1.044769,-0.103553,-0.159183)"
-       cx="33.966679"
-       cy="35.736916"
-       fx="33.966679"
-       fy="35.736916"
-       r="86.708450" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15662"
-       id="radialGradient15668"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.973033,0.000000,0.000000,1.034937,3.168754,0.555277)"
-       cx="8.1435566"
-       cy="7.2678967"
-       fx="8.1435566"
-       fy="7.2678967"
-       r="38.158695" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4542"
-       id="radialGradient4548"
-       cx="24.306795"
-       cy="42.07798"
-       fx="24.306795"
-       fy="42.07798"
-       r="15.821514"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4404"
-       id="linearGradient4410"
-       x1="16.812500"
-       y1="1.8750000"
-       x2="16.812500"
-       y2="4.7187500"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.319549,0.000000,0.000000,1.362060,40.38853,-0.362057)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5866"
-       id="linearGradient5872"
-       x1="19.452349"
-       y1="13.174174"
-       x2="19.685436"
-       y2="27.095339"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.224255,0.000000,0.000000,1.282176,0.371569,0.264657)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5897"
-       id="linearGradient5903"
-       x1="19.000000"
-       y1="9.7738247"
-       x2="19.000000"
-       y2="15.635596"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.319549,0.000000,0.000000,2.133926,-4.476133,-14.64845)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2590"
-       id="linearGradient2596"
-       x1="19.970377"
-       y1="6.1167107"
-       x2="19.970377"
-       y2="2.53125"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.319549,0.000000,0.000000,1.280356,-5.745298,0.249007)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2598"
-       id="linearGradient2604"
-       x1="18.431311"
-       y1="19.119474"
-       x2="18.402472"
-       y2="4.2702327"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.319549,0.000000,0.000000,1.299013,-3.106200,-1.336165)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2896"
-       id="linearGradient2902"
-       x1="14.584077"
-       y1="1.6392649"
-       x2="14.552828"
-       y2="2.4912448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,1.594214,0.000000,-0.790249)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2906"
-       id="linearGradient2912"
-       x1="13.354311"
-       y1="1.4866425"
-       x2="14.075844"
-       y2="2.4017651"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,1.184816,0.000000,-0.727880)" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="158"
-     inkscape:window-x="433"
-     inkscape:window-height="690"
-     inkscape:window-width="872"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer6"
-     inkscape:cy="16.785697"
-     inkscape:cx="-154.12746"
-     inkscape:zoom="1"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:showpageshadow="false"
-     showguides="true"
-     inkscape:guide-bbox="true" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>New Bookmark</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>bookmark</rdf:li>
-            <rdf:li>remember</rdf:li>
-            <rdf:li>favorite</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-        <dc:description>create bookmark action</dc:description>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Shadow">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.165152e-2,0,0,1.485743e-2,43.0076,42.68539)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-  </g>
-  <g
-     style="display:inline"
-     inkscape:groupmode="layer"
-     inkscape:label="Base"
-     id="layer1">
-    <rect
-       style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
-       id="rect15391"
-       width="34.875000"
-       height="41.063431"
-       x="6.5000000"
-       y="3.5000000"
-       ry="1.1490481"
-       rx="1.1490486" />
-    <rect
-       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:0.99999958;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
-       id="rect15660"
-       width="32.937012"
-       height="39.028210"
-       x="7.5024552"
-       y="4.5010486"
-       ry="0.14904849"
-       rx="0.14904852" />
-    <path
-       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854"
-       d="M 11.505723,5.4942766 L 11.505723,43.400869"
-       id="path15672"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831"
-       d="M 12.500000,5.0205154 L 12.500000,43.038228"
-       id="path15674"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Text"
-     style="display:inline">
-    <g
-       id="g2188">
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15686"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999994"
-         y="9.0000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15688"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999994"
-         y="11.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15690"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999994"
-         y="13.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15692"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999994"
-         y="15.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15694"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999994"
-         y="17.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15696"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999994"
-         y="19.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15698"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999994"
-         y="21.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15700"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999994"
-         y="23.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15732"
-         width="9.0000057"
-         height="1.0000000"
-         x="15.999986"
-         y="25.000000"
-         rx="0.062003858"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15736"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999986"
-         y="29.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15738"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999986"
-         y="31.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15740"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999986"
-         y="33.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15742"
-         width="20.000006"
-         height="1.0000000"
-         x="15.999986"
-         y="35.000000"
-         rx="0.13778631"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
-         id="rect15744"
-         width="14.000014"
-         height="1.0000000"
-         x="15.999986"
-         y="37.000000"
-         rx="0.096450485"
-         ry="0.065390877" />
-    </g>
-    <path
-       style="opacity:0.28021976;fill:url(#linearGradient5872);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 28.245858,31.324906 L 21.147869,27.133701 L 14.30757,30.8838 L 13.761859,3.9475667 L 28.549598,3.9475667 L 28.245858,31.324906 z "
-       id="path5138"
-       sodipodi:nodetypes="cccccc" />
-    <path
-       style="fill:url(#linearGradient2604);fill-opacity:1;fill-rule:evenodd;stroke:#364878;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline"
-       d="M 12.427339,3.5180202 C 12.427339,3.5180202 12.240033,0.60520607 15.107867,0.54270607 L 25.119343,0.50728624 C 26.277287,0.50728624 26.581888,1.1910178 26.581888,2.1095589 L 26.581888,29.729916 L 20.545426,24.533862 L 14.674346,29.729916 L 14.591655,3.519629 L 12.427339,3.5180202 z "
-       id="path2204"
-       sodipodi:nodetypes="ccccccccc" />
-    <path
-       style="opacity:0.4450549;fill:url(#linearGradient4410);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 13.030252,3.0117919 C 13.011046,2.225362 13.312918,1.0801307 15.375418,1.0176307 L 25.027906,1 C 25.640922,1 26.090152,1.1674319 26.090152,1.7994802 L 26.060994,10.491851 L 15.317102,10.491851 L 15.192102,2.9993251 C 15.192102,2.9993251 13.030252,3.0117919 13.030252,3.0117919 z "
-       id="path3668"
-       sodipodi:nodetypes="cccccccs" />
-    <rect
-       style="opacity:0.28021976;fill:url(#linearGradient5903);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect5895"
-       width="10.556392"
-       height="12.803556"
-       x="15.317101"
-       y="6.6907959"
-       rx="0.062003858"
-       ry="0.065390877" />
-    <path
-       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2596);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.19125683;display:inline"
-       d="M 24.476832,2.2095507 L 25.575535,3.113139 L 25.547445,27.511911 L 20.497463,23.203758 L 15.704084,27.415203 L 15.699081,2.7495618 L 24.476832,2.2095507 z "
-       id="path5969"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       sodipodi:type="arc"
-       style="color:#000000;fill:url(#radialGradient278);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
-       id="path12511"
-       sodipodi:cx="55"
-       sodipodi:cy="125"
-       sodipodi:rx="14.375"
-       sodipodi:ry="14.375"
-       d="M 69.375 125 A 14.375 14.375 0 1 1  40.625,125 A 14.375 14.375 0 1 1  69.375 125 z"
-       transform="matrix(0.611127,0.000000,0.000000,0.611127,5.632438,-67.28175)"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
-       inkscape:export-xdpi="33.852203"
-       inkscape:export-ydpi="33.852203" />
-    <path
-       style="opacity:0.48295456;color:#000000;fill:url(#linearGradient2912);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.10533953;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 15.158602,3.9384083 L 15.114407,1.0335178 C 12.983906,1.0335178 12.993087,2.9680775 12.993087,3.9384083 L 15.158602,3.9384083 z "
-       id="path2894"
-       sodipodi:nodetypes="cccc" />
-    <path
-       sodipodi:nodetypes="cccc"
-       id="path2904"
-       d="M 15.158602,3.9384086 L 15.114407,1.8247593 C 12.81631,1.8426926 12.993087,3.9384086 12.993087,3.9384086 L 15.158602,3.9384086 z "
-       style="opacity:0.35795455;color:#000000;fill:url(#linearGradient2902);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.10533953;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-  </g>
-</svg>
Binary file libgui/src/icons/bottom_left_corner.png has changed
Binary file libgui/src/icons/bottom_right_corner.png has changed
Binary file libgui/src/icons/bottom_side.png has changed
Binary file libgui/src/icons/bp-next.png has changed
--- a/libgui/src/icons/bp-next.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1072 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="48"
-   height="48"
-   id="svg1307"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="bp-next.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview113"
-     showgrid="false"
-     inkscape:zoom="6.2802734"
-     inkscape:cx="24"
-     inkscape:cy="24"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg1307" />
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient3838">
-      <stop
-         id="stop3840"
-         style="stop-color:#edd400;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3842"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3837">
-      <stop
-         id="stop3839"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3841"
-         style="stop-color:#ffffff;stop-opacity:0.78350514"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2257">
-      <stop
-         id="stop2259"
-         style="stop-color:#ef2929;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2261"
-         style="stop-color:#cc0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3340">
-      <stop
-         id="stop3342"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2228"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient1368"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient2263"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3843"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3845"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient2690"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="107.5884"
-       cy="83.990814"
-       r="12.551644"
-       fx="107.5884"
-       fy="83.990814"
-       id="radialGradient2314"
-       xlink:href="#linearGradient2691"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient2306"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <linearGradient
-       id="linearGradient3340-2">
-      <stop
-         id="stop3342-1"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344-3"
-         style="stop-color:#ffffff;stop-opacity:0.62886596"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2691">
-      <stop
-         id="stop2693"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2695"
-         style="stop-color:#d3d7cf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5075">
-      <stop
-         id="stop5077"
-         style="stop-color:#adb0a8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5079"
-         style="stop-color:#ae9b00;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2684">
-      <stop
-         id="stop2686"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2688"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3040"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3044"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3047"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3050"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3052"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3054"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3058"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3844"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3846"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3848"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3850"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3852"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3854"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3856"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3858"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3940"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3944"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3946"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3948"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3950"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3952"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3954"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3957"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3960"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3963"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3965"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3968"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3971"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3973"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3982"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3984"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3986"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3988"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3990"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3992"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3994"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3863"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3865"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3867"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3869"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3871"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3873"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3875"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3980"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3983"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3987"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3989"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3993"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3996"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3998"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4007"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient4009"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4011"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4013"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient4015"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4017"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4019"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3103"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)"
-       cx="22.5"
-       cy="28.116049"
-       fx="22.5"
-       fy="28.116049"
-       r="14.537862" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3837"
-       id="linearGradient3105"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)"
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient3107"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3109"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)"
-       cx="22.5"
-       cy="28.116049"
-       fx="22.5"
-       fy="28.116049"
-       r="14.537862" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3340"
-       id="radialGradient3111"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)"
-       cx="21.929186"
-       cy="-3.2182934"
-       fx="21.929186"
-       fy="-3.2182934"
-       r="13" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3113"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2684"
-       id="linearGradient3115"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3117"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3119"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5075"
-       id="linearGradient3121"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3123"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3125"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3340"
-       id="radialGradient3134"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.1094029,0,0,2.3370305,-73.764431,10.35981)"
-       cx="21.929186"
-       cy="-3.2182934"
-       fx="21.929186"
-       fy="-3.2182934"
-       r="13" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3138"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.377542,0,0,2.3892631,-30.211602,-38.123458)"
-       cx="22.5"
-       cy="28.116049"
-       fx="22.5"
-       fy="28.116049"
-       r="14.537862" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient3141"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2922213,0,0,0.34100651,-6.8343259,25.695418)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3144"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4461825,0,0,2.4582417,-31.301145,-40.340245)"
-       cx="22.5"
-       cy="28.116049"
-       fx="22.5"
-       fy="28.116049"
-       r="14.537862" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3837"
-       id="linearGradient3146"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.0340809,0,0,1.1159395,0.47116784,-2.1305226)"
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>player</rdf:li>
-            <rdf:li>record</rdf:li>
-            <rdf:li>music</rdf:li>
-            <rdf:li>sound</rdf:li>
-            <rdf:li>video</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(-0.68905195,0,0,0.8954059,48.834569,7.5492018)"
-     id="layer4"
-     style="fill:url(#radialGradient3846);fill-opacity:1;display:inline" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 38.215122,22.420146 a 14.477133,14.507213 0 0 1 -28.9542657,0 14.477133,14.507213 0 1 1 28.9542657,0 z"
-     id="path3835"
-     style="opacity:0.15;color:#000000;fill:url(#radialGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3146);stroke-width:3.36944985;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 45.477198,38.115266 a 20.216462,5.3349602 0 0 1 -40.4329242,0 20.216462,5.3349602 0 1 1 40.4329242,0 z"
-     id="path2226"
-     style="opacity:0.03999999;color:#000000;fill:url(#radialGradient3141);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 37.354019,22.875867 a 14.070901,14.100139 0 0 1 -28.1418019,0 14.070901,14.100139 0 1 1 28.1418019,0 z"
-     id="path2525"
-     style="color:#000000;fill:url(#radialGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.12315083;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 36.209731,22.87587 a 12.916233,12.916233 0 0 1 -25.832466,0 12.916233,12.916233 0 1 1 25.832466,0 z"
-     id="path2527"
-     style="color:#000000;fill:none;stroke:#f77d7d;stroke-width:1.12315106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     inkscape:connector-curvature="0"
-     d="M 23.117991,9.3980567 C 16.065134,9.4874482 10.309113,15.004888 9.8507809,21.963298 16.722014,24.79002 25.429344,20.333357 35.842726,18.164933 35.069538,15.077877 30.727092,9.3980567 23.293484,9.3980567 c -0.05808,0 -0.117591,-7.335e-4 -0.175493,0 z"
-     id="path2529"
-     style="opacity:0.6;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
-  <g
-     transform="matrix(-1.1231501,0,0,1.1231501,69.253277,-3.6162014)"
-     id="g4000">
-    <path
-       inkscape:connector-curvature="0"
-       d="m 40.565946,42.917735 0,-27.30988 -17.963571,13.2673 17.963571,14.04258 z"
-       id="path2682"
-       style="opacity:0.15;color:#000000;fill:url(#radialGradient3113);fill-opacity:1;stroke:url(#linearGradient3115);stroke-width:3.5710001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       inkscape:connector-curvature="0"
-       d="m 40.221792,41.405833 0,-24.902568 -16.608417,12.451285 16.608417,12.451283 z"
-       id="path3375"
-       style="color:#000000;fill:url(#radialGradient3117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       inkscape:connector-curvature="0"
-       d="m 40.221792,41.405833 0,-24.902568 -16.608417,12.451285 16.608417,12.451283 z"
-       id="path2479"
-       style="color:#000000;fill:url(#radialGradient3119);fill-opacity:1;stroke:url(#linearGradient3121);stroke-width:2.08500004;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       inkscape:connector-curvature="0"
-       d="m 39.877266,17.286284 0,23.336517 L 24.308998,28.954542 39.877266,17.286284 z m -0.689052,1.566961 -13.479579,10.101297 13.479579,10.101298 0,-20.202595 z"
-       id="path2481"
-       style="color:#000000;fill:url(#radialGradient3123);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       inkscape:connector-curvature="0"
-       d="m 39.230907,18.797738 0,10.465057 c -2.941699,-0.0401 -6.314579,-0.30942 -11.756948,-1.678886 l 11.756948,-8.786171 z"
-       id="path2339"
-       style="opacity:0.5;color:#000000;fill:url(#radialGradient3125);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
-  </g>
-</svg>
Binary file libgui/src/icons/bp-prev.png has changed
--- a/libgui/src/icons/bp-prev.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1147 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="48"
-   height="48"
-   id="svg1307"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="bp-next.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview113"
-     showgrid="false"
-     inkscape:zoom="6.2802734"
-     inkscape:cx="24"
-     inkscape:cy="24"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg1307" />
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient3838">
-      <stop
-         id="stop3840"
-         style="stop-color:#edd400;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3842"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3837">
-      <stop
-         id="stop3839"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3841"
-         style="stop-color:#ffffff;stop-opacity:0.78350514"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2257">
-      <stop
-         id="stop2259"
-         style="stop-color:#ef2929;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2261"
-         style="stop-color:#cc0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3340">
-      <stop
-         id="stop3342"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2228"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient1368"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient2263"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3843"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3845"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient2690"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="107.5884"
-       cy="83.990814"
-       r="12.551644"
-       fx="107.5884"
-       fy="83.990814"
-       id="radialGradient2314"
-       xlink:href="#linearGradient2691"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient2306"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <linearGradient
-       id="linearGradient3340-2">
-      <stop
-         id="stop3342-1"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344-3"
-         style="stop-color:#ffffff;stop-opacity:0.62886596"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2691">
-      <stop
-         id="stop2693"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2695"
-         style="stop-color:#d3d7cf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5075">
-      <stop
-         id="stop5077"
-         style="stop-color:#adb0a8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5079"
-         style="stop-color:#ae9b00;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2684">
-      <stop
-         id="stop2686"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2688"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3040"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3044"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3047"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3050"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3052"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3054"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3058"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3844"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3846"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3848"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3850"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3852"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3854"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3856"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3858"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3940"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3944"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3946"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3948"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3950"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3952"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3954"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3957"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3960"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3963"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3965"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3968"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3971"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3973"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3982"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3984"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3986"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3988"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3990"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3992"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3994"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3863"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3865"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3867"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3869"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3871"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3873"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3875"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3980"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3983"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3987"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3989"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3993"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3996"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3998"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4007"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient4009"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4011"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4013"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient4015"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4017"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4019"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3103"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)"
-       cx="22.5"
-       cy="28.116049"
-       fx="22.5"
-       fy="28.116049"
-       r="14.537862" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3837"
-       id="linearGradient3105"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)"
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient3107"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3109"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)"
-       cx="22.5"
-       cy="28.116049"
-       fx="22.5"
-       fy="28.116049"
-       r="14.537862" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3340"
-       id="radialGradient3111"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)"
-       cx="21.929186"
-       cy="-3.2182934"
-       fx="21.929186"
-       fy="-3.2182934"
-       r="13" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3113"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2684"
-       id="linearGradient3115"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3117"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3119"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5075"
-       id="linearGradient3121"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3123"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3125"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3340"
-       id="radialGradient3134"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.1094029,0,0,2.3370305,-73.764431,10.35981)"
-       cx="21.929186"
-       cy="-3.2182934"
-       fx="21.929186"
-       fy="-3.2182934"
-       r="13" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3138"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.377542,0,0,2.3892631,-30.211602,-38.123458)"
-       cx="22.5"
-       cy="28.116049"
-       fx="22.5"
-       fy="28.116049"
-       r="14.537862" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient3141"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2922213,0,0,0.34100651,-6.8343259,25.695418)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3144"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4461825,0,0,2.4582417,-31.301145,-40.340245)"
-       cx="22.5"
-       cy="28.116049"
-       fx="22.5"
-       fy="28.116049"
-       r="14.537862" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3837"
-       id="linearGradient3146"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.0340809,0,0,1.1159395,0.47116784,-2.1305226)"
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3148"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2684"
-       id="linearGradient3150"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3152"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3154"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5075"
-       id="linearGradient3156"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3158"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3160"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>player</rdf:li>
-            <rdf:li>record</rdf:li>
-            <rdf:li>music</rdf:li>
-            <rdf:li>sound</rdf:li>
-            <rdf:li>video</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(-0.68905195,0,0,0.8954059,48.834569,7.5492018)"
-     id="layer4"
-     style="fill:url(#radialGradient3846);fill-opacity:1;display:inline" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 38.215122,22.420146 a 14.477133,14.507213 0 0 1 -28.9542657,0 14.477133,14.507213 0 1 1 28.9542657,0 z"
-     id="path3835"
-     style="opacity:0.15;color:#000000;fill:url(#radialGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3146);stroke-width:3.36944985;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 45.477198,38.115266 a 20.216462,5.3349602 0 0 1 -40.4329242,0 20.216462,5.3349602 0 1 1 40.4329242,0 z"
-     id="path2226"
-     style="opacity:0.03999999;color:#000000;fill:url(#radialGradient3141);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 37.354019,22.875867 a 14.070901,14.100139 0 0 1 -28.1418019,0 14.070901,14.100139 0 1 1 28.1418019,0 z"
-     id="path2525"
-     style="color:#000000;fill:url(#radialGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.12315083;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 36.209731,22.87587 a 12.916233,12.916233 0 0 1 -25.832466,0 12.916233,12.916233 0 1 1 25.832466,0 z"
-     id="path2527"
-     style="color:#000000;fill:none;stroke:#f77d7d;stroke-width:1.12315106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     inkscape:connector-curvature="0"
-     d="M 23.117991,9.3980567 C 16.065134,9.4874482 10.309113,15.004888 9.8507809,21.963298 16.722014,24.79002 25.429344,20.333357 35.842726,18.164933 35.069538,15.077877 30.727092,9.3980567 23.293484,9.3980567 c -0.05808,0 -0.117591,-7.335e-4 -0.175493,0 z"
-     id="path2529"
-     style="opacity:0.6;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
-  <g
-     transform="matrix(1.1231501,0,0,1.1231501,-1.694229,-3.6162014)"
-     id="g4000">
-    <path
-       inkscape:connector-curvature="0"
-       d="m 40.565946,42.917735 0,-27.30988 -17.963571,13.2673 17.963571,14.04258 z"
-       id="path2682"
-       style="opacity:0.15;color:#000000;fill:url(#radialGradient3148);fill-opacity:1;stroke:url(#linearGradient3150);stroke-width:3.5710001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       inkscape:connector-curvature="0"
-       d="m 40.221792,41.405833 0,-24.902568 -16.608417,12.451285 16.608417,12.451283 z"
-       id="path3375"
-       style="color:#000000;fill:url(#radialGradient3152);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       inkscape:connector-curvature="0"
-       d="m 40.221792,41.405833 0,-24.902568 -16.608417,12.451285 16.608417,12.451283 z"
-       id="path2479"
-       style="color:#000000;fill:url(#radialGradient3154);fill-opacity:1;stroke:url(#linearGradient3156);stroke-width:2.08500004;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       inkscape:connector-curvature="0"
-       d="m 39.877266,17.286284 0,23.336517 L 24.308998,28.954542 39.877266,17.286284 z m -0.689052,1.566961 -13.479579,10.101297 13.479579,10.101298 0,-20.202595 z"
-       id="path2481"
-       style="color:#000000;fill:url(#radialGradient3158);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       inkscape:connector-curvature="0"
-       d="m 39.230907,18.797738 0,10.465057 c -2.941699,-0.0401 -6.314579,-0.30942 -11.756948,-1.678886 l 11.756948,-8.786171 z"
-       id="path2339"
-       style="opacity:0.5;color:#000000;fill:url(#radialGradient3160);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
-  </g>
-</svg>
Binary file libgui/src/icons/bp-rm-all.png has changed
--- a/libgui/src/icons/bp-rm-all.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1243 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="48"
-   height="48"
-   id="svg1307">
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient3838">
-      <stop
-         id="stop3840"
-         style="stop-color:#edd400;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3842"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3837">
-      <stop
-         id="stop3839"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3841"
-         style="stop-color:#ffffff;stop-opacity:0.78350514"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2257">
-      <stop
-         id="stop2259"
-         style="stop-color:#ef2929;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2261"
-         style="stop-color:#cc0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3340">
-      <stop
-         id="stop3342"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2228"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient1368"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient2263"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3843"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3845"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient2690"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="107.5884"
-       cy="83.990814"
-       r="12.551644"
-       fx="107.5884"
-       fy="83.990814"
-       id="radialGradient2314"
-       xlink:href="#linearGradient2691"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient2306"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <linearGradient
-       id="linearGradient3340-2">
-      <stop
-         id="stop3342-1"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344-3"
-         style="stop-color:#ffffff;stop-opacity:0.62886596"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2691">
-      <stop
-         id="stop2693"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2695"
-         style="stop-color:#d3d7cf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5075">
-      <stop
-         id="stop5077"
-         style="stop-color:#adb0a8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5079"
-         style="stop-color:#ae9b00;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2684">
-      <stop
-         id="stop2686"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2688"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3040"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3044"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3047"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3050"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3052"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3054"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3058"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3844"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3846"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3848"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3850"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3852"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3854"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3856"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3858"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3940"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3944"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3946"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3948"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3950"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3952"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3954"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3957"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3960"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3963"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3965"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3968"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3971"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3973"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3982"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3984"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3986"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3988"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3990"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3992"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3994"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3863"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3865"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3867"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3869"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3871"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3873"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3875"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3980"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3983"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3987"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3989"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3993"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3996"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3998"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4007"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient4009"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4011"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4013"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient4015"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4017"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4019"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3134"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.1094029,0,0,2.3370305,-73.764431,10.35981)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3138"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.377542,0,0,2.3892631,-30.211602,-38.123458)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3141"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2922213,0,0,0.34100651,-6.8343259,25.695418)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3144"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4461825,0,0,2.4582417,-31.301145,-40.340245)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3146"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.0340809,0,0,1.1159395,0.47116784,-2.1305226)" />
-    <linearGradient
-       x1="9.5621576"
-       y1="6.952559"
-       x2="14.766725"
-       y2="14.200403"
-       id="linearGradient2249"
-       xlink:href="#linearGradient2243"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="20.764477"
-       cy="19.540945"
-       r="14.799585"
-       fx="20.764477"
-       fy="19.540945"
-       id="radialGradient9318"
-       xlink:href="#linearGradient9320"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.449398,-0.216492,0.564416,1.171617,-1.432288,2.546108)" />
-    <linearGradient
-       x1="11.996646"
-       y1="19.591736"
-       x2="17.774033"
-       y2="16.234594"
-       id="linearGradient8582"
-       xlink:href="#linearGradient8576"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.014891,0,0,1.00592,-0.331699,-0.140188)" />
-    <linearGradient
-       x1="10.615304"
-       y1="28.122555"
-       x2="2.0069747"
-       y2="27.234833"
-       id="linearGradient15309"
-       xlink:href="#linearGradient15303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.1767,0,0,1.176702,-0.819769,-5.307055)" />
-    <linearGradient
-       x1="12.233433"
-       y1="12.363223"
-       x2="16.870909"
-       y2="17.110941"
-       id="linearGradient11653"
-       xlink:href="#linearGradient11647"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.965926,0.262102,-0.258819,0.978177,2.957072,-5.939741)" />
-    <linearGradient
-       x1="16.92873"
-       y1="34.010502"
-       x2="14.045431"
-       y2="29"
-       id="linearGradient7996"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.861487,1.49214,-17.87951,-13.91085)" />
-    <linearGradient
-       x1="14.045431"
-       y1="37.57589"
-       x2="14.045431"
-       y2="29"
-       id="linearGradient7994"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.801305,1.3879,-12.8183,-11.14456)" />
-    <linearGradient
-       x1="15.096997"
-       y1="36.96777"
-       x2="14.045431"
-       y2="29"
-       id="linearGradient7992"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.843479,1.460948,-19.74053,-11.13423)" />
-    <linearGradient
-       x1="19.616243"
-       y1="39.252983"
-       x2="18.485983"
-       y2="29.909071"
-       id="linearGradient7990"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.797961,1.38211,-15.72934,-9.277499)" />
-    <linearGradient
-       x1="9.1053896"
-       y1="38.828144"
-       x2="10.146956"
-       y2="30.140831"
-       id="linearGradient7988"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.797491,1.381294,-15.69909,-9.225099)" />
-    <linearGradient
-       id="linearGradient5739">
-      <stop
-         id="stop5741"
-         style="stop-color:#c4a000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5743"
-         style="stop-color:#c4a000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11647">
-      <stop
-         id="stop11649"
-         style="stop-color:#c17d10;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop11651"
-         style="stop-color:#9b650c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15303">
-      <stop
-         id="stop15305"
-         style="stop-color:#b30000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15311"
-         style="stop-color:#ff5c5c;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop15307"
-         style="stop-color:#c30000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="22.571428"
-       cy="30.857143"
-       r="15.571428"
-       fx="22.571428"
-       fy="30.857143"
-       id="radialGradient3564"
-       xlink:href="#linearGradient3558"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.651376,0,10.75754)" />
-    <linearGradient
-       id="linearGradient3558">
-      <stop
-         id="stop3560"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3562"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8576">
-      <stop
-         id="stop8578"
-         style="stop-color:#dac203;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8584"
-         style="stop-color:#fdec69;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop8580"
-         style="stop-color:#fdef7e;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9320">
-      <stop
-         id="stop9322"
-         style="stop-color:#fef088;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9324"
-         style="stop-color:#fde63a;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop9326"
-         style="stop-color:#dac203;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2243">
-      <stop
-         id="stop2245"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2247"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="10.615304"
-       y1="28.122555"
-       x2="2.0069747"
-       y2="27.234833"
-       id="linearGradient3478"
-       xlink:href="#linearGradient15303"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.1767002,0,0,1.1767026,-3.1134726,-7.1721388)" />
-    <linearGradient
-       x1="11.996646"
-       y1="19.591736"
-       x2="17.774033"
-       y2="16.234594"
-       id="linearGradient3482"
-       xlink:href="#linearGradient8576"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.014891,0,0,1.00592,-3.2506433,-0.60854196)" />
-    <linearGradient
-       x1="16.92873"
-       y1="34.010502"
-       x2="14.045431"
-       y2="29"
-       id="linearGradient3485"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.861487,1.49214,-20.798454,-14.379204)" />
-    <linearGradient
-       x1="14.045431"
-       y1="37.57589"
-       x2="14.045431"
-       y2="29"
-       id="linearGradient3488"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.801305,1.3879,-15.737244,-11.612914)" />
-    <linearGradient
-       x1="15.096997"
-       y1="36.96777"
-       x2="14.045431"
-       y2="29"
-       id="linearGradient3491"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.843479,1.460948,-22.659474,-11.602584)" />
-    <linearGradient
-       x1="19.616243"
-       y1="39.252983"
-       x2="18.485983"
-       y2="29.909071"
-       id="linearGradient3494"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.797961,1.38211,-18.648284,-9.745853)" />
-    <linearGradient
-       x1="9.1053896"
-       y1="38.828144"
-       x2="10.146956"
-       y2="30.140831"
-       id="linearGradient3498"
-       xlink:href="#linearGradient5739"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.866026,-0.5,0.797491,1.381294,-18.618034,-9.693453)" />
-    <radialGradient
-       cx="20.764477"
-       cy="19.540945"
-       r="14.799585"
-       fx="20.764477"
-       fy="19.540945"
-       id="radialGradient3501"
-       xlink:href="#linearGradient9320"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.449398,-0.216492,0.564416,1.171617,-4.3512323,2.077754)" />
-    <linearGradient
-       x1="9.5621576"
-       y1="6.952559"
-       x2="14.766725"
-       y2="14.200403"
-       id="linearGradient3504"
-       xlink:href="#linearGradient2243"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2.9189443,-0.46835396)" />
-    <linearGradient
-       x1="12.233433"
-       y1="12.363223"
-       x2="16.870909"
-       y2="17.110941"
-       id="linearGradient3507"
-       xlink:href="#linearGradient11647"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.965926,0.262102,-0.258819,0.978177,0.0381277,-6.408095)" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>player</rdf:li>
-            <rdf:li>record</rdf:li>
-            <rdf:li>music</rdf:li>
-            <rdf:li>sound</rdf:li>
-            <rdf:li>video</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(-0.68905195,0,0,0.8954059,48.834569,7.5492018)"
-     id="layer4"
-     style="fill:url(#radialGradient3846);fill-opacity:1;display:inline" />
-  <path
-     d="m 38.215122,22.420146 a 14.477133,14.507213 0 0 1 -28.9542657,0 14.477133,14.507213 0 1 1 28.9542657,0 z"
-     id="path3835"
-     style="opacity:0.15;color:#000000;fill:url(#radialGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3146);stroke-width:3.36944985;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     d="m 45.477198,38.115266 a 20.216462,5.3349602 0 0 1 -40.4329242,0 20.216462,5.3349602 0 1 1 40.4329242,0 z"
-     id="path2226"
-     style="opacity:0.03999999;color:#000000;fill:url(#radialGradient3141);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     d="m 37.354019,22.875867 a 14.070901,14.100139 0 0 1 -28.1418019,0 14.070901,14.100139 0 1 1 28.1418019,0 z"
-     id="path2525"
-     style="color:#000000;fill:url(#radialGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.12315083;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     d="m 36.209731,22.87587 a 12.916233,12.916233 0 0 1 -25.832466,0 12.916233,12.916233 0 1 1 25.832466,0 z"
-     id="path2527"
-     style="color:#000000;fill:none;stroke:#f77d7d;stroke-width:1.12315106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     d="M 23.117991,9.3980567 C 16.065134,9.4874482 10.309113,15.004888 9.8507809,21.963298 16.722014,24.79002 25.429344,20.333357 35.842726,18.164933 35.069538,15.077877 30.727092,9.3980567 23.293484,9.3980567 c -0.05808,0 -0.117591,-7.335e-4 -0.175493,0 z"
-     id="path2529"
-     style="opacity:0.6;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
-  <path
-     d="m 3.9973675,1.3096646 c 1.7297758,-0.87805946 4.1259252,0.0035 5.0117902,1.5573199 l 4.1702393,9.4847145 c 0.885865,1.55382 0.633416,3.369304 -0.566029,4.070586 -1.199445,0.701283 -2.8782333,0.01494 -3.7640993,-1.538881 L 2.9308059,6.5276765 C 2.0449411,4.9738526 2.3018093,2.1703547 3.9973675,1.3096646 z"
-     id="path7966"
-     style="fill:url(#linearGradient3507);fill-opacity:1;fill-rule:evenodd;stroke:#8f5902;stroke-width:1.00632107;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
-  <path
-     d="M 4.5273258,2.2675564 C 5.9492788,1.4817366 7.3480307,2.0748153 8.2226237,3.6069441 L 12.670762,13.693669 10.239241,15.113531 3.9426298,6.2931951 C 3.0680368,4.7610665 3.0663828,3.0749226 4.5273258,2.2675564 z"
-     id="path14575"
-     style="opacity:0.42307691;fill:none;stroke:url(#linearGradient3504);stroke-width:1.00569046;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
-  <path
-     d="M 11.861904,22.325213 C 11.066409,26.612048 12.49587,36.277714 18.121137,42.01921 22.467891,42.160501 32.111228,38.601529 38.652232,31.822172 29.416056,27.305462 23.115703,16.099195 18.216925,18.539498 l -6.355021,3.785715 z"
-     id="path7968"
-     style="fill:url(#radialGradient3501);fill-opacity:1;fill-rule:evenodd;stroke:#c4a000;stroke-width:1.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <path
-     d="m 13.419415,23.89892 c 2.349016,6.270271 2.489443,12.788302 7.183783,17.919884"
-     id="path7972"
-     style="fill:none;stroke:url(#linearGradient3498);stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <path
-     d="M 12.999836,22.94577 C 12.087743,23.453874 12.839457,35.465984 18.58409,40.946137 25.970076,40.75924 34.107806,34.54995 36.977042,32.108291 27.477626,26.124169 22.052239,17.346522 18.496252,19.534707 l -5.496416,3.411063 z"
-     id="path7970"
-     style="opacity:0.46153846;fill:none;stroke:#ffffff;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <path
-     d="m 20.929541,21.804978 c 0.866361,-0.749 5.75002,6.087667 14.998501,12.381801"
-     id="path7974"
-     style="fill:none;stroke:url(#linearGradient3494);stroke-width:0.9999997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <path
-     d="m 15.093949,22.395567 c 3.71231,5.347495 2.96299,12.424255 8.840816,18.08111"
-     id="path7976"
-     style="fill:none;stroke:url(#linearGradient3491);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <path
-     d="m 20.064954,22.307467 c 0,0 8.17673,13.071629 11.181934,15.104561"
-     id="path7978"
-     style="fill:none;stroke:url(#linearGradient3488);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <path
-     d="m 16.381364,21.732341 c 3.447146,2.916815 8.702557,14.163188 11.310014,17.47775"
-     id="path7980"
-     style="fill:none;stroke:url(#linearGradient3485);stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <path
-     d="M 5.5900009,17.593512 17.051672,11.034606 c 0.59865,2.382571 -0.34184,3.240585 1.79595,7.147713 l -7.910292,4.52664 C 9.4839017,19.231539 7.3724437,19.298661 5.5900009,17.593512 z"
-     id="path7982"
-     style="fill:url(#linearGradient3482);fill-opacity:1;fill-rule:evenodd;stroke:#c4a000;stroke-width:1.01039541;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
-  <path
-     d="M 11.124505,20.777335 C 10.310544,19.356118 8.5621917,18.540993 7.4451857,17.650106 l 8.7574223,-4.933738 c -0.01959,1.480968 0.566905,3.088206 0.875611,4.518667 l -5.953714,3.5423 z"
-     id="path11655"
-     style="opacity:0.2472527;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <rect
-     width="13.015025"
-     height="3.4598923"
-     rx="0.99999756"
-     ry="0.99999857"
-     x="-3.7064905"
-     y="22.30971"
-     transform="matrix(0.86602487,-0.50000092,0.49999974,0.86602555,0,0)"
-     id="rect7984"
-     style="fill:url(#linearGradient3478);fill-opacity:1;fill-rule:evenodd;stroke:#690000;stroke-width:0.99999839;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
-  <path
-     d="m -17.172594,4.0836182 a 2.1465743,2.1465743 0 1 1 -4.293148,0 2.1465743,2.1465743 0 1 1 4.293148,0 z"
-     transform="matrix(0.583557,0.156364,-0.156364,0.583557,17.538876,4.690428)"
-     id="path10193"
-     style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#8f5902;stroke-width:1.65524161;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
-  <path
-     d="m 24.81589,40.086885 c 0,0 1.506584,-0.500648 2.176098,-0.941755 -1.237437,-1.944544 -3.403341,-5.895665 -5.403126,-8.87592 1.193243,6.540738 3.227028,9.817675 3.227028,9.817675 z"
-     id="path3558"
-     style="opacity:0.31730772;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-  <path
-     d="m 28.222861,38.589916 2.025998,-1.08517 C 28.304315,35.648591 22.780362,27.388848 22.780362,27.388848 l 5.442499,11.201068 z"
-     id="path3560"
-     style="opacity:0.31730772;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-  <path
-     d="m 32.739578,35.919455 2.436371,-1.743752 c -3.181981,-1.325825 -11.58654,-9.880449 -11.58654,-9.880449 2.382935,3.011895 6.767234,8.612306 9.150169,11.624201 z"
-     id="path3562"
-     style="opacity:0.31730772;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-  <path
-     d="m 36.234745,33.448854 1.692313,-1.409508 c -3.314563,-1.502602 -12.495677,-9.912017 -12.495677,-9.912017 0,0 6.074587,9.200205 10.803364,11.321525 z"
-     id="path3565"
-     style="opacity:0.31730772;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-  <path
-     d="m 21.457132,41.103351 c 0,0 1.197225,-0.279677 2.043516,-0.455619 -1.458408,-1.237437 -3.801089,-4.437257 -5.093767,-8.610755 0.530331,6.894292 3.050251,9.066374 3.050251,9.066374 z"
-     id="path2265"
-     style="opacity:0.31730766;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-  <path
-     d="m 18.451928,41.501098 c 0,0 1.24802,-0.01368 1.24802,-0.01368 -2.298097,-2.519069 -3.138175,-5.365335 -4.430854,-9.40625 -0.132581,4.684583 3.182834,9.419926 3.182834,9.419926 z"
-     id="path2267"
-     style="opacity:0.31730766;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-</svg>
Binary file libgui/src/icons/bp-toggle.png has changed
--- a/libgui/src/icons/bp-toggle.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,948 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="48"
-   height="48"
-   id="svg1307">
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient3838">
-      <stop
-         id="stop3840"
-         style="stop-color:#edd400;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3842"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3837">
-      <stop
-         id="stop3839"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3841"
-         style="stop-color:#ffffff;stop-opacity:0.78350514"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2257">
-      <stop
-         id="stop2259"
-         style="stop-color:#ef2929;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2261"
-         style="stop-color:#cc0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3340">
-      <stop
-         id="stop3342"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2228"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient1368"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient2263"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3843"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3845"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient2690"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="107.5884"
-       cy="83.990814"
-       r="12.551644"
-       fx="107.5884"
-       fy="83.990814"
-       id="radialGradient2314"
-       xlink:href="#linearGradient2691"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient2306"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <linearGradient
-       id="linearGradient3340-2">
-      <stop
-         id="stop3342-1"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344-3"
-         style="stop-color:#ffffff;stop-opacity:0.62886596"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2691">
-      <stop
-         id="stop2693"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2695"
-         style="stop-color:#d3d7cf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5075">
-      <stop
-         id="stop5077"
-         style="stop-color:#adb0a8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5079"
-         style="stop-color:#ae9b00;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2684">
-      <stop
-         id="stop2686"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2688"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3040"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3044"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3047"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3050"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3052"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3054"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3058"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3844"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3846"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3848"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3850"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3852"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3854"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3856"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3858"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3940"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3944"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3946"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3948"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3950"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3952"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3954"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3957"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3960"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3963"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3965"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3968"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3971"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3973"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3982"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3984"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3986"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3988"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3990"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3992"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3994"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3863"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3865"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3867"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3869"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3871"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3873"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3875"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3980"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3983"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3987"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3989"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3993"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3996"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3998"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4007"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient4009"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4011"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4013"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient4015"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4017"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4019"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3134"
-       xlink:href="#linearGradient3340"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.1094029,0,0,2.3370305,-73.764431,10.35981)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3138"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.377542,0,0,2.3892631,-30.211602,-38.123458)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3141"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2922213,0,0,0.34100651,-6.8343259,25.695418)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3144"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4461825,0,0,2.4582417,-31.301145,-40.340245)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3146"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.0340809,0,0,1.1159395,0.47116784,-2.1305226)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3148"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3150"
-       xlink:href="#linearGradient2684"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3152"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3154"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3156"
-       xlink:href="#linearGradient5075"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3158"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3160"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>player</rdf:li>
-            <rdf:li>record</rdf:li>
-            <rdf:li>music</rdf:li>
-            <rdf:li>sound</rdf:li>
-            <rdf:li>video</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(-0.68905195,0,0,0.8954059,48.834569,7.5492018)"
-     id="layer4"
-     style="fill:url(#radialGradient3846);fill-opacity:1;display:inline" />
-  <path
-     d="m 38.215122,22.420146 a 14.477133,14.507213 0 0 1 -28.9542657,0 14.477133,14.507213 0 1 1 28.9542657,0 z"
-     id="path3835"
-     style="opacity:0.15;color:#000000;fill:url(#radialGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3146);stroke-width:3.36944985;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     d="m 45.477198,38.115266 a 20.216462,5.3349602 0 0 1 -40.4329242,0 20.216462,5.3349602 0 1 1 40.4329242,0 z"
-     id="path2226"
-     style="opacity:0.03999999;color:#000000;fill:url(#radialGradient3141);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     d="m 37.354019,22.875867 a 14.070901,14.100139 0 0 1 -28.1418019,0 14.070901,14.100139 0 1 1 28.1418019,0 z"
-     id="path2525"
-     style="color:#000000;fill:url(#radialGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.12315083;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     d="m 36.209731,22.87587 a 12.916233,12.916233 0 0 1 -25.832466,0 12.916233,12.916233 0 1 1 25.832466,0 z"
-     id="path2527"
-     style="color:#000000;fill:none;stroke:#f77d7d;stroke-width:1.12315106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-  <path
-     d="M 23.117991,9.3980567 C 16.065134,9.4874482 10.309113,15.004888 9.8507809,21.963298 16.722014,24.79002 25.429344,20.333357 35.842726,18.164933 35.069538,15.077877 30.727092,9.3980567 23.293484,9.3980567 c -0.05808,0 -0.117591,-7.335e-4 -0.175493,0 z"
-     id="path2529"
-     style="opacity:0.6;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
-</svg>
Binary file libgui/src/icons/circle.png has changed
--- a/libgui/src/icons/circle.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="32"
-   height="32"
-   viewBox="0 0 8.4666659 8.4666659"
-   version="1.1"
-   id="svg1917"
-   sodipodi:docname="circle.svg"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   inkscape:export-filename="/home/pantxo/Dev/octaveclone/libgui/src/icons/circle.png"
-   inkscape:export-xdpi="96.000008"
-   inkscape:export-ydpi="96.000008">
-  <defs
-     id="defs1911">
-    <filter
-       inkscape:collect="always"
-       style="color-interpolation-filters:sRGB"
-       id="filter2851"
-       x="-0.063633107"
-       width="1.1272662"
-       y="-0.10485"
-       height="1.2097">
-      <feGaussianBlur
-         inkscape:collect="always"
-         stdDeviation="0.50308888"
-         id="feGaussianBlur2853" />
-    </filter>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="15.839192"
-     inkscape:cx="32.278892"
-     inkscape:cy="22.118004"
-     inkscape:document-units="mm"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1920"
-     inkscape:window-height="1052"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1"
-     units="px" />
-  <metadata
-     id="metadata1914">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Calque 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-288.53334)">
-    <path
-       inkscape:connector-curvature="0"
-       style="display:inline;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.33930296;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
-       d="M 4.213445,289.32696 A 3.4506385,3.4506385 0 0 0 0.76280612,292.7776 3.4506385,3.4506385 0 0 0 4.213445,296.22825 3.4506385,3.4506385 0 0 0 7.6640826,292.7776 3.4506385,3.4506385 0 0 0 4.213445,289.32696 Z m 0,0.93147 a 2.5191778,2.5191778 0 0 1 2.5191772,2.51917 2.5191778,2.5191778 0 0 1 -2.5191772,2.51918 2.5191778,2.5191778 0 0 1 -2.5191783,-2.51918 2.5191778,2.5191778 0 0 1 2.5191783,-2.51917 z"
-       id="path1844" />
-    <path
-       inkscape:connector-curvature="0"
-       style="display:inline;opacity:0.2;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter2851)"
-       d="m 1.3070234,9.3602459 a 10.1875,10.1875 0 0 0 -0.09961,1.3281251 10.1875,10.1875 0 0 0 10.1874996,10.1875 10.1875,10.1875 0 0 0 8.78711,-5.056641 l -2.66406,-0.912109 a 7.4375,7.4375 0 0 1 -6.12305,3.21875 7.4375,7.4375 0 0 1 -7.4374996,-7.4375 7.4375,7.4375 0 0 1 0.0215,-0.414062 z"
-       id="path2462"
-       transform="matrix(0.33871298,0,0,0.32344859,0.35384012,289.47597)" />
-  </g>
-</svg>
Binary file libgui/src/icons/cross.png has changed
Binary file libgui/src/icons/cursors/bottom_left_corner.png has changed
Binary file libgui/src/icons/cursors/bottom_right_corner.png has changed
Binary file libgui/src/icons/cursors/bottom_side.png has changed
Binary file libgui/src/icons/cursors/circle.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/cursors/circle.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32"
+   height="32"
+   viewBox="0 0 8.4666659 8.4666659"
+   version="1.1"
+   id="svg1917"
+   sodipodi:docname="circle.svg"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   inkscape:export-filename="/home/pantxo/Dev/octaveclone/libgui/src/icons/circle.png"
+   inkscape:export-xdpi="96.000008"
+   inkscape:export-ydpi="96.000008">
+  <defs
+     id="defs1911">
+    <filter
+       inkscape:collect="always"
+       style="color-interpolation-filters:sRGB"
+       id="filter2851"
+       x="-0.063633107"
+       width="1.1272662"
+       y="-0.10485"
+       height="1.2097">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.50308888"
+         id="feGaussianBlur2853" />
+    </filter>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.839192"
+     inkscape:cx="32.278892"
+     inkscape:cy="22.118004"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1052"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     units="px" />
+  <metadata
+     id="metadata1914">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-288.53334)">
+    <path
+       inkscape:connector-curvature="0"
+       style="display:inline;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.33930296;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+       d="M 4.213445,289.32696 A 3.4506385,3.4506385 0 0 0 0.76280612,292.7776 3.4506385,3.4506385 0 0 0 4.213445,296.22825 3.4506385,3.4506385 0 0 0 7.6640826,292.7776 3.4506385,3.4506385 0 0 0 4.213445,289.32696 Z m 0,0.93147 a 2.5191778,2.5191778 0 0 1 2.5191772,2.51917 2.5191778,2.5191778 0 0 1 -2.5191772,2.51918 2.5191778,2.5191778 0 0 1 -2.5191783,-2.51918 2.5191778,2.5191778 0 0 1 2.5191783,-2.51917 z"
+       id="path1844" />
+    <path
+       inkscape:connector-curvature="0"
+       style="display:inline;opacity:0.2;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter2851)"
+       d="m 1.3070234,9.3602459 a 10.1875,10.1875 0 0 0 -0.09961,1.3281251 10.1875,10.1875 0 0 0 10.1874996,10.1875 10.1875,10.1875 0 0 0 8.78711,-5.056641 l -2.66406,-0.912109 a 7.4375,7.4375 0 0 1 -6.12305,3.21875 7.4375,7.4375 0 0 1 -7.4374996,-7.4375 7.4375,7.4375 0 0 1 0.0215,-0.414062 z"
+       id="path2462"
+       transform="matrix(0.33871298,0,0,0.32344859,0.35384012,289.47597)" />
+  </g>
+</svg>
Binary file libgui/src/icons/cursors/cross.png has changed
Binary file libgui/src/icons/cursors/fleur.png has changed
Binary file libgui/src/icons/cursors/hand2.png has changed
Binary file libgui/src/icons/cursors/left_side.png has changed
Binary file libgui/src/icons/cursors/right_side.png has changed
Binary file libgui/src/icons/cursors/top_left_corner.png has changed
Binary file libgui/src/icons/cursors/top_right_corner.png has changed
Binary file libgui/src/icons/cursors/top_side.png has changed
Binary file libgui/src/icons/db-cont.png has changed
--- a/libgui/src/icons/db-cont.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1162 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg53383"
-   sodipodi:version="0.32"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="db-cont.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   version="1.1">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective31" />
-    <linearGradient
-       id="linearGradient3264">
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="0"
-         id="stop3266" />
-      <stop
-         id="stop3276"
-         offset="0.25"
-         style="stop-color:#f8f8f8;stop-opacity:1;" />
-      <stop
-         id="stop3272"
-         offset="0.5"
-         style="stop-color:#e2e2e2;stop-opacity:1;" />
-      <stop
-         style="stop-color:#b0b0b0;stop-opacity:1;"
-         offset="0.75"
-         id="stop3274" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop3268" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3264"
-       id="linearGradient3281"
-       gradientUnits="userSpaceOnUse"
-       x1="14.462892"
-       y1="12.284524"
-       x2="34.534348"
-       y2="39.684914"
-       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)" />
-    <linearGradient
-       id="linearGradient2300">
-      <stop
-         id="stop2302"
-         offset="0.0000000"
-         style="stop-color:#000000;stop-opacity:0.32673267;" />
-      <stop
-         id="stop2304"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="aigrd1"
-       gradientUnits="userSpaceOnUse"
-       x1="99.7773"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311">
-      <stop
-         offset="0"
-         style="stop-color:#184375"
-         id="stop53300" />
-      <stop
-         offset="1"
-         style="stop-color:#C8BDDC"
-         id="stop53302" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd1"
-       id="linearGradient53551"
-       gradientUnits="userSpaceOnUse"
-       x1="99.7773"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311"
-       gradientTransform="matrix(0.200685,0.000000,0.000000,0.200685,-0.585758,-1.050787)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3264"
-       id="linearGradient3760"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)"
-       x1="14.462892"
-       y1="12.284524"
-       x2="34.534348"
-       y2="39.684914" />
-    <linearGradient
-       id="linearGradient3340">
-      <stop
-         id="stop3342"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop3344"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.62886596;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5075">
-      <stop
-         id="stop5077"
-         offset="0"
-         style="stop-color:#adb0a8;stop-opacity:1;" />
-      <stop
-         id="stop5079"
-         offset="1"
-         style="stop-color:#464744;stop-opacity:1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2588"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2684">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2686" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop2688" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective49"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <radialGradient
-       r="13"
-       fy="-3.2182934"
-       fx="21.929186"
-       cy="-3.2182934"
-       cx="21.929186"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3111"
-       xlink:href="#linearGradient3340-3"
-       inkscape:collect="always" />
-    <radialGradient
-       r="14.537862"
-       fy="28.116049"
-       fx="22.5"
-       cy="28.116049"
-       cx="22.5"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3109"
-       xlink:href="#linearGradient2257"
-       inkscape:collect="always" />
-    <radialGradient
-       r="15.644737"
-       fy="36.421127"
-       fx="24.837126"
-       cy="36.421127"
-       cx="24.837126"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3107"
-       xlink:href="#linearGradient8662"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="35.546108"
-       x2="21.816015"
-       y1="8.9115314"
-       x1="21.702389"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient3105"
-       xlink:href="#linearGradient3837"
-       inkscape:collect="always" />
-    <radialGradient
-       r="14.537862"
-       fy="28.116049"
-       fx="22.5"
-       cy="28.116049"
-       cx="22.5"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient3103"
-       xlink:href="#linearGradient2257"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4019"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4017"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient4015"
-       y2="95"
-       x2="70.826942"
-       y1="124.11652"
-       x1="71.288956" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4013"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4011"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient4009"
-       y2="88.923729"
-       x2="70.951942"
-       y1="101.74152"
-       x1="70.913956" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4007"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient3998"
-       y2="88.923729"
-       x2="70.951942"
-       y1="101.74152"
-       x1="70.913956" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3996"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3993"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient3989"
-       y2="95"
-       x2="70.826942"
-       y1="124.11652"
-       x1="71.288956" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3987"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3983"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3980"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3875"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3873"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient3871"
-       y2="95"
-       x2="70.826942"
-       y1="124.11652"
-       x1="71.288956" />
-    <radialGradient
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3869"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3867"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient3865"
-       y2="88.923729"
-       x2="70.951942"
-       y1="101.74152"
-       x1="70.913956" />
-    <radialGradient
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3863"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3994"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3992"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient3990"
-       y2="95"
-       x2="70.826942"
-       y1="124.11652"
-       x1="71.288956" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3988"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3986"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient3984"
-       y2="88.923729"
-       x2="70.951942"
-       y1="101.74152"
-       x1="70.913956" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3982"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient3973"
-       y2="88.923729"
-       x2="70.951942"
-       y1="101.74152"
-       x1="70.913956" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3971"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3968"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient3965"
-       y2="95"
-       x2="70.826942"
-       y1="124.11652"
-       x1="71.288956" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3963"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3960"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3957"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3954"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3952"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3950"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="translate(-45.00042,-71.09425)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient3948"
-       y2="95"
-       x2="70.826942"
-       y1="124.11652"
-       x1="71.288956" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3946"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3944"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient3942"
-       y2="88.923729"
-       x2="70.951942"
-       y1="101.74152"
-       x1="70.913956" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3940"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3858"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3856"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3854"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3852"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3850"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3848"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3846"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3844"
-       fy="24.25"
-       fx="25.03499"
-       r="14.034989"
-       cy="24.25"
-       cx="25.03499" />
-    <linearGradient
-       gradientTransform="translate(-45.00042,-71.09425)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient3058"
-       y2="95"
-       x2="70.826942"
-       y1="124.11652"
-       x1="71.288956" />
-    <linearGradient
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient3054"
-       y2="88.923729"
-       x2="70.951942"
-       y1="101.74152"
-       x1="70.913956" />
-    <linearGradient
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3837"
-       id="linearGradient3052"
-       y2="35.546108"
-       x2="21.816015"
-       y1="8.9115314"
-       x1="21.702389" />
-    <radialGradient
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3050"
-       fy="28.116049"
-       fx="22.5"
-       r="14.537862"
-       cy="28.116049"
-       cx="22.5" />
-    <radialGradient
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient8662"
-       id="radialGradient3047"
-       fy="36.421127"
-       fx="24.837126"
-       r="15.644737"
-       cy="36.421127"
-       cx="24.837126" />
-    <radialGradient
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3044"
-       fy="28.116049"
-       fx="22.5"
-       r="14.537862"
-       cy="28.116049"
-       cx="22.5" />
-    <radialGradient
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3340-3"
-       id="radialGradient3040"
-       fy="-3.2182934"
-       fx="21.929186"
-       r="13"
-       cy="-3.2182934"
-       cx="21.929186" />
-    <linearGradient
-       id="linearGradient2684-4">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop2686-6" />
-      <stop
-         offset="1"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop2688-6" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584-3">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop2586-5" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0"
-         id="stop2588-7" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5075-2">
-      <stop
-         offset="0"
-         style="stop-color:#adb0a8;stop-opacity:1"
-         id="stop5077-8" />
-      <stop
-         offset="1"
-         style="stop-color:#ae9b00;stop-opacity:1"
-         id="stop5079-6" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2691-4">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop2693-2" />
-      <stop
-         offset="1"
-         style="stop-color:#d3d7cf;stop-opacity:1"
-         id="stop2695-6" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3340-2">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop3342-1" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.62886596"
-         id="stop3344-3" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-45.00042,-71.09425)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient2306-0"
-       y2="95"
-       x2="70.826942"
-       y1="124.11652"
-       x1="71.288956" />
-    <radialGradient
-       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2691-4"
-       id="radialGradient2314-7"
-       fy="83.990814"
-       fx="107.5884"
-       r="12.551644"
-       cy="83.990814"
-       cx="107.5884" />
-    <linearGradient
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient2690-7"
-       y2="88.923729"
-       x2="70.951942"
-       y1="101.74152"
-       x1="70.913956" />
-    <radialGradient
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2257"
-       id="radialGradient3845"
-       fy="28.116049"
-       fx="22.5"
-       r="14.537862"
-       cy="28.116049"
-       cx="22.5" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3837"
-       id="linearGradient3843"
-       y2="35.546108"
-       x2="21.816015"
-       y1="8.9115314"
-       x1="21.702389" />
-    <radialGradient
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2257"
-       id="radialGradient2263"
-       fy="28.116049"
-       fx="22.5"
-       r="14.537862"
-       cy="28.116049"
-       cx="22.5" />
-    <radialGradient
-       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3340-3"
-       id="radialGradient1368"
-       fy="-3.2182934"
-       fx="21.929186"
-       r="13"
-       cy="-3.2182934"
-       cx="21.929186" />
-    <radialGradient
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient8662"
-       id="radialGradient2228"
-       fy="36.421127"
-       fx="24.837126"
-       r="15.644737"
-       cy="36.421127"
-       cx="24.837126" />
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop8664" />
-      <stop
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop8666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3340-3">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop3342-4" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0"
-         id="stop3344-6" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2257">
-      <stop
-         offset="0"
-         style="stop-color:#ef2929;stop-opacity:1"
-         id="stop2259" />
-      <stop
-         offset="1"
-         style="stop-color:#cc0000;stop-opacity:1"
-         id="stop2261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3837">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop3839" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.78350514"
-         id="stop3841" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3838">
-      <stop
-         offset="0"
-         style="stop-color:#ccb600;stop-opacity:1;"
-         id="stop3840" />
-      <stop
-         offset="1"
-         style="stop-color:#fff59d;stop-opacity:1;"
-         id="stop3842" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient3362"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4212"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4215"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4218"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient4220"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.0056752,-36.819966,-72.182713)"
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4223"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4226"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient4228"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.99423209,0,0,1.1345837,-44.74498,-84.518165)"
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:showpageshadow="false"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.11764706"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="10.133209"
-     inkscape:cx="30.849263"
-     inkscape:cy="22.600978"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1074"
-     inkscape:window-height="718"
-     inkscape:window-x="151"
-     inkscape:window-y="37"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz/</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>system</rdf:li>
-            <rdf:li>applications</rdf:li>
-            <rdf:li>group</rdf:li>
-            <rdf:li>category</rdf:li>
-            <rdf:li>admin</rdf:li>
-            <rdf:li>root</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="shadow"
-     id="layer2"
-     inkscape:groupmode="layer" />
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       sodipodi:type="arc"
-       style="opacity:0.64772728;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.62180054;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path3283"
-       sodipodi:cx="23.511301"
-       sodipodi:cy="23.781593"
-       sodipodi:rx="12.727922"
-       sodipodi:ry="12.727922"
-       d="m 36.239223,23.781593 a 12.727922,12.727922 0 1 1 -25.455844,0 12.727922,12.727922 0 1 1 25.455844,0 z"
-       transform="matrix(0.616598,0,0,0.616598,6.8161989,8.539674)" />
-    <g
-       transform="matrix(-0.68905195,0,0,0.8954059,93.73874,-31.255459)"
-       id="layer4-1"
-       style="fill:url(#radialGradient3362);fill-opacity:1;display:inline" />
-    <path
-       style="opacity:0.15;color:#000000;fill:url(#radialGradient4226);fill-opacity:1;stroke:url(#linearGradient4228);stroke-width:4.27993584;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path2682-2"
-       d="m 13.412795,39.039184 0,-30.6730942 22.974692,14.9011692 -22.974692,15.771925 z"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;fill:url(#radialGradient4223);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path3375-6"
-       d="m 13.852954,37.341091 0,-27.9693214 21.241504,13.9846624 -21.241504,13.984659 z"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;fill:url(#radialGradient4218);fill-opacity:1;stroke:url(#linearGradient4220);stroke-width:2.4989264;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path2479-2"
-       d="m 13.852954,37.341091 0,-27.9693214 21.241504,13.9846624 -21.241504,13.984659 z"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;fill:url(#radialGradient4215);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path2481-3"
-       d="m 14.293589,10.251218 0,26.210411 L 34.204784,23.356423 14.293589,10.251218 z m 0.88127,1.759932 17.239845,11.345273 -17.239845,11.345274 0,-22.690547 z"
-       inkscape:connector-curvature="0" />
-    <path
-       style="opacity:0.5;color:#000000;fill:url(#radialGradient4212);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
-       id="path2339-1"
-       d="m 15.120256,11.948807 0,11.75383 c 3.762316,-0.04504 8.076096,-0.347525 15.036669,-1.885641 L 15.120256,11.948807 z"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
Binary file libgui/src/icons/db-step-in.png has changed
--- a/libgui/src/icons/db-step-in.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1185 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="48"
-   height="48"
-   id="svg1307"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="db-step-in.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="942"
-     inkscape:window-height="732"
-     id="namedview153"
-     showgrid="false"
-     inkscape:zoom="11.120117"
-     inkscape:cx="45.398399"
-     inkscape:cy="24"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg1307" />
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient2817">
-      <stop
-         id="stop2819"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2821"
-         style="stop-color:#ffffff;stop-opacity:0.48453608"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2697">
-      <stop
-         id="stop2699"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2701"
-         style="stop-color:#3d556f;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2679">
-      <stop
-         id="stop2681"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2683"
-         style="stop-color:#ccd0c7;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3081">
-      <stop
-         id="stop3083"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3085"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2112"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2122"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2124"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2137"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2139"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2725"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2727"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2729"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2731"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2733"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2745"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2747"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2749"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2751"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2753"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2791"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2793"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2795"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2797"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2800"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2803"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-145.0004,-97.0943)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2809"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2823"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2825"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-26.09426)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2831"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2860"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2864"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3421"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3424"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3427"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3430"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3066"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3068"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3070"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3072"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3076"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3079"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3082"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3085"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3862"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3864"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3866"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3868"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3872"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3875"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3878"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3881"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3930"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3932"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3934"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3936"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3938"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3940"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3944"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <radialGradient
-       cx="15.987216"
-       cy="1.5350308"
-       r="17.171415"
-       fx="15.987216"
-       fy="1.5350308"
-       id="radialGradient1471"
-       xlink:href="#linearGradient8650"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-2.046729,-1.55761,0,44.11559,66.93275)" />
-    <radialGradient
-       cx="35.292667"
-       cy="20.494493"
-       r="16.9562"
-       fx="35.292667"
-       fy="20.494493"
-       id="radialGradient1469"
-       xlink:href="#linearGradient1442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-0.843022,1.020168,0,0.606436,42.58614)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient1444"
-       xlink:href="#linearGradient8662-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8650">
-      <stop
-         id="stop8652"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8654"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662-5">
-      <stop
-         id="stop8664-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1442">
-      <stop
-         id="stop1444"
-         style="stop-color:#73d216;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1446"
-         style="stop-color:#4e9a06;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient2332"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-25.12402,-17.82636)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient2322"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient2314"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient1764"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,46.1744,54.10111)" />
-    <linearGradient
-       id="linearGradient2187">
-      <stop
-         id="stop2189"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2191"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient8668"
-       xlink:href="#linearGradient8662-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8662-0">
-      <stop
-         id="stop8664-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666-7"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2308">
-      <stop
-         id="stop2310"
-         style="stop-color:#edd400;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2312"
-         style="stop-color:#edd400;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         id="stop2318"
-         style="stop-color:#c4a000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2320"
-         style="stop-color:#c4a000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2326">
-      <stop
-         id="stop2328"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2330"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient4285"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient4288"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4291"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4293"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4301"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4303"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient4305"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient4307"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient3152"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient3155"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3158"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3160"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3932"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3935"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3938"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3941"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3979"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3981"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3983"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3985"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3987"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3989"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3991"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3993"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2326"
-       id="radialGradient3131"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)"
-       cx="15.09403"
-       cy="13.282721"
-       fx="15.09403"
-       fy="13.282721"
-       r="10.16466" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2187"
-       id="linearGradient3134"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)"
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.153309"
-       y2="11.735918" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2308"
-       id="linearGradient3137"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)"
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2316"
-       id="linearGradient3139"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)"
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>stop</rdf:li>
-            <rdf:li>playback</rdf:li>
-            <rdf:li>video</rdf:li>
-            <rdf:li>music</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3948">
-    <path
-       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
-       id="path2815"
-       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3941);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
-       id="path2827"
-       style="color:#000000;fill:url(#radialGradient3938);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
-       id="path2762"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3935);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
-       id="path2811"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3932);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
-       id="path2479"
-       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
-  </g>
-  <g
-     id="g3141">
-    <path
-       sodipodi:nodetypes="ccccccc"
-       d="M 44.117176,3.2163465 C 47.943214,0.52153449 51.42355,28.446295 33.745367,28.819609 l 0,7.636668 -13.560892,-11.881386 13.560892,-12.460485 0,7.875305 C 45.200365,20.467008 41.087781,0.5535716 44.117176,3.2163465 z"
-       id="path1432"
-       style="color:#000000;fill:url(#linearGradient3137);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3139);stroke-width:1.61500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
-       inkscape:connector-curvature="0" />
-    <path
-       sodipodi:nodetypes="ccccccc"
-       d="M 44.143119,3.1084549 C 46.587837,2.3052332 49.373587,28.33916 32.919657,27.962459 l 0,6.597052 -11.442476,-9.989319 11.442476,-10.543459 0,6.742487 C 45.09727,23.660786 44.003867,1.5647582 44.143119,3.1084549 z"
-       id="path2177"
-       style="opacity:0.69886361;color:#000000;fill:none;stroke:url(#linearGradient3134);stroke-width:0.81454206;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 20.848487,24.596087 4.607747,-4.391758 c 5.111719,0.143992 2.807846,5.183715 11.951344,7.703577 l -4.031779,0.503973 -0.072,7.055612 -12.455316,-10.871404 z"
-       id="path2324"
-       style="opacity:0.51136361;color:#000000;fill:url(#radialGradient3131);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     transform="translate(0,28.820401)"
-     id="g3955">
-    <path
-       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
-       id="path3957"
-       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3987);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
-       id="path3959"
-       style="color:#000000;fill:url(#radialGradient3989);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
-       id="path3961"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3991);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
-       id="path3963"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3993);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
-       id="path3965"
-       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
-  </g>
-</svg>
Binary file libgui/src/icons/db-step-out.png has changed
--- a/libgui/src/icons/db-step-out.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1190 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.0"
-   width="48"
-   height="48"
-   id="svg1307">
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient2817">
-      <stop
-         id="stop2819"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2821"
-         style="stop-color:#ffffff;stop-opacity:0.48453608"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2697">
-      <stop
-         id="stop2699"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2701"
-         style="stop-color:#3d556f;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2679">
-      <stop
-         id="stop2681"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2683"
-         style="stop-color:#ccd0c7;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3081">
-      <stop
-         id="stop3083"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3085"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2112"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2122"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2124"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2137"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2139"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2725"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2727"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2729"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2731"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2733"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2745"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2747"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2749"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2751"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2753"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2791"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2793"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2795"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2797"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2800"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2803"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-145.0004,-97.0943)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2809"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2823"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2825"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-26.09426)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2831"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2860"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2864"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3421"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3424"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3427"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3430"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3066"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3068"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3070"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3072"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3076"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3079"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3082"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3085"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3862"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3864"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3866"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3868"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3872"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3875"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3878"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3881"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3930"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3932"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3934"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3936"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3938"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3940"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3944"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <radialGradient
-       cx="15.987216"
-       cy="1.5350308"
-       r="17.171415"
-       fx="15.987216"
-       fy="1.5350308"
-       id="radialGradient1471"
-       xlink:href="#linearGradient8650"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-2.046729,-1.55761,0,44.11559,66.93275)" />
-    <radialGradient
-       cx="35.292667"
-       cy="20.494493"
-       r="16.9562"
-       fx="35.292667"
-       fy="20.494493"
-       id="radialGradient1469"
-       xlink:href="#linearGradient1442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-0.843022,1.020168,0,0.606436,42.58614)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient1444"
-       xlink:href="#linearGradient8662-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8650">
-      <stop
-         id="stop8652"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8654"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662-5">
-      <stop
-         id="stop8664-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1442">
-      <stop
-         id="stop1444"
-         style="stop-color:#73d216;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1446"
-         style="stop-color:#4e9a06;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient2332"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-25.12402,-17.82636)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient2322"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient2314"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient1764"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,46.1744,54.10111)" />
-    <linearGradient
-       id="linearGradient2187">
-      <stop
-         id="stop2189"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2191"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient8668"
-       xlink:href="#linearGradient8662-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8662-0">
-      <stop
-         id="stop8664-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666-7"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2308">
-      <stop
-         id="stop2310"
-         style="stop-color:#edd400;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2312"
-         style="stop-color:#edd400;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         id="stop2318"
-         style="stop-color:#c4a000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2320"
-         style="stop-color:#c4a000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2326">
-      <stop
-         id="stop2328"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2330"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient4285"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient4288"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4291"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4293"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4301"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4303"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient4305"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient4307"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient3152"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient3155"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3158"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3160"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3932"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3935"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3938"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3941"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3979"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3981"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3983"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3985"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3987"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3989"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3991"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3993"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient3131"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.153309"
-       y2="11.735918"
-       id="linearGradient3134"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3137"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3139"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3146"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3148"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.153309"
-       y2="11.735918"
-       id="linearGradient3150"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient3153"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>stop</rdf:li>
-            <rdf:li>playback</rdf:li>
-            <rdf:li>video</rdf:li>
-            <rdf:li>music</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3948">
-    <path
-       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
-       id="path2815"
-       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3941);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
-       id="path2827"
-       style="color:#000000;fill:url(#radialGradient3938);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
-       id="path2762"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3935);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
-       id="path2811"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3932);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
-       id="path2479"
-       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
-  </g>
-  <g
-     transform="matrix(0,-1,1,0,9.8491719,66.812383)"
-     id="g3141">
-    <path
-       d="M 44.117176,3.2163465 C 47.943214,0.52153449 51.42355,28.446295 33.745367,28.819609 l 0,7.636668 -13.560892,-11.881386 13.560892,-12.460485 0,7.875305 C 45.200365,20.467008 41.087781,0.5535716 44.117176,3.2163465 z"
-       id="path1432"
-       style="color:#000000;fill:url(#linearGradient3146);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3148);stroke-width:1.61500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-    <path
-       d="M 44.143119,3.1084549 C 46.587837,2.3052332 49.373587,28.33916 32.919657,27.962459 l 0,6.597052 -11.442476,-9.989319 11.442476,-10.543459 0,6.742487 C 45.09727,23.660786 44.003867,1.5647582 44.143119,3.1084549 z"
-       id="path2177"
-       style="opacity:0.69886361;color:#000000;fill:none;stroke:url(#linearGradient3150);stroke-width:0.81454206;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-    <path
-       d="m 20.848487,24.596087 4.607747,-4.391758 c 5.111719,0.143992 2.807846,5.183715 11.951344,7.703577 l -4.031779,0.503973 -0.072,7.055612 -12.455316,-10.871404 z"
-       id="path2324"
-       style="opacity:0.51136361;color:#000000;fill:url(#radialGradient3153);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-  </g>
-  <g
-     transform="translate(0,28.820401)"
-     id="g3955">
-    <path
-       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
-       id="path3957"
-       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3987);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
-       id="path3959"
-       style="color:#000000;fill:url(#radialGradient3989);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
-       id="path3961"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3991);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
-       id="path3963"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3993);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-    <path
-       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
-       id="path3965"
-       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
-  </g>
-</svg>
Binary file libgui/src/icons/db-step.png has changed
--- a/libgui/src/icons/db-step.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1197 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="48"
-   height="48"
-   id="svg1307"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="db-step.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview144"
-     showgrid="false"
-     inkscape:zoom="6.2802734"
-     inkscape:cx="24"
-     inkscape:cy="24"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg1307" />
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient2817">
-      <stop
-         id="stop2819"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2821"
-         style="stop-color:#ffffff;stop-opacity:0.48453608"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2697">
-      <stop
-         id="stop2699"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2701"
-         style="stop-color:#3d556f;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2679">
-      <stop
-         id="stop2681"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2683"
-         style="stop-color:#ccd0c7;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3081">
-      <stop
-         id="stop3083"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3085"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2112"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2122"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2124"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2137"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2139"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2725"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2727"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2729"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2731"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2733"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2745"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2747"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2749"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2751"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2753"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2791"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2793"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2795"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2797"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2800"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2803"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-145.0004,-97.0943)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2809"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2823"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2825"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-26.09426)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2831"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2860"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2864"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3421"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3424"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3427"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3430"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3066"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3068"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3070"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3072"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3076"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3079"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3082"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3085"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3862"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3864"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3866"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3868"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3872"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3875"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3878"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3881"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3930"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3932"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3934"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3936"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3938"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3940"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3944"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <radialGradient
-       cx="15.987216"
-       cy="1.5350308"
-       r="17.171415"
-       fx="15.987216"
-       fy="1.5350308"
-       id="radialGradient1471"
-       xlink:href="#linearGradient8650"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-2.046729,-1.55761,0,44.11559,66.93275)" />
-    <radialGradient
-       cx="35.292667"
-       cy="20.494493"
-       r="16.9562"
-       fx="35.292667"
-       fy="20.494493"
-       id="radialGradient1469"
-       xlink:href="#linearGradient1442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-0.843022,1.020168,0,0.606436,42.58614)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient1444"
-       xlink:href="#linearGradient8662-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8650">
-      <stop
-         id="stop8652"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8654"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662-5">
-      <stop
-         id="stop8664-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1442">
-      <stop
-         id="stop1444"
-         style="stop-color:#73d216;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1446"
-         style="stop-color:#4e9a06;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient2332"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-25.12402,-17.82636)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient2322"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient2314"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient1764"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,46.1744,54.10111)" />
-    <linearGradient
-       id="linearGradient2187">
-      <stop
-         id="stop2189"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2191"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient8668"
-       xlink:href="#linearGradient8662-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8662-0">
-      <stop
-         id="stop8664-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666-7"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2308">
-      <stop
-         id="stop2310"
-         style="stop-color:#edd400;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2312"
-         style="stop-color:#edd400;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         id="stop2318"
-         style="stop-color:#c4a000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2320"
-         style="stop-color:#c4a000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2326">
-      <stop
-         id="stop2328"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2330"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient4285"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient4288"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4291"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4293"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4301"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4303"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient4305"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient4307"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2326"
-       id="radialGradient3152"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)"
-       cx="15.09403"
-       cy="13.282721"
-       fx="15.09403"
-       fy="13.282721"
-       r="10.16466" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2187"
-       id="linearGradient3155"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)"
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2308"
-       id="linearGradient3158"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)"
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2316"
-       id="linearGradient3160"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)"
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3081"
-       id="linearGradient3932"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2697"
-       id="linearGradient3935"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2679"
-       id="radialGradient3938"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)"
-       cx="169.77171"
-       cy="100.20107"
-       fx="169.77171"
-       fy="100.20107"
-       r="11" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2817"
-       id="linearGradient3941"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)"
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2817"
-       id="linearGradient3979"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)"
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2679"
-       id="radialGradient3981"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)"
-       cx="169.77171"
-       cy="100.20107"
-       fx="169.77171"
-       fy="100.20107"
-       r="11" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2697"
-       id="linearGradient3983"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3081"
-       id="linearGradient3985"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2817"
-       id="linearGradient3987"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)"
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2679"
-       id="radialGradient3989"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)"
-       cx="169.77171"
-       cy="100.20107"
-       fx="169.77171"
-       fy="100.20107"
-       r="11" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2697"
-       id="linearGradient3991"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3081"
-       id="linearGradient3993"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>stop</rdf:li>
-            <rdf:li>playback</rdf:li>
-            <rdf:li>video</rdf:li>
-            <rdf:li>music</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3948">
-    <path
-       inkscape:connector-curvature="0"
-       style="opacity:0.14999999999999999;color:#000000;fill:none;stroke:url(#linearGradient3941);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path2815"
-       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:url(#radialGradient3938);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path2827"
-       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3935);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path2762"
-       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3932);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path2811"
-       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
-       id="path2479"
-       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z" />
-  </g>
-  <g
-     id="g3943">
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:url(#linearGradient3158);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3160);stroke-width:1.615;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
-       id="path1432"
-       d="M 23.254087,2.3170754 C 55.8568,1.240951 50.704133,28.985857 33.745367,28.819609 l 0,7.636668 L 20.184475,24.574891 33.745367,12.114406 c 0,0 0,7.875305 0,7.875305 C 45.200365,20.467008 48.551732,2.5319679 23.254087,2.3170754 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="opacity:0.69886361;color:#000000;fill:none;stroke:url(#linearGradient3155);stroke-width:0.81454206;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
-       id="path2177"
-       d="m 40.725889,6.9753206 c 9.54896,4.9521134 6.669302,21.3638394 -7.806232,20.9871384 l 0,6.597052 c 0,0 -11.442476,-9.989319 -11.442476,-9.989319 L 32.919657,14.026733 c 0,0 0,6.742487 0,6.742487 12.087686,0.28368 11.533846,-10.391605 7.806232,-13.7938994 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="opacity:0.51136361;color:#000000;fill:url(#radialGradient3152);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path2324"
-       d="m 20.848487,24.596087 4.607747,-4.391758 c 5.111719,0.143992 2.807846,5.183715 11.951344,7.703577 l -4.031779,0.503973 -0.072,7.055612 -12.455316,-10.871404 z" />
-  </g>
-  <g
-     id="g3955"
-     transform="translate(0,28.820401)">
-    <path
-       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
-       id="path3957"
-       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3987);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
-       id="path3959"
-       style="color:#000000;fill:url(#radialGradient3989);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
-       id="path3961"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3991);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
-       id="path3963"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3993);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
-       id="path3965"
-       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     id="g3967"
-     transform="translate(0,14.489816)">
-    <path
-       inkscape:connector-curvature="0"
-       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3979);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path3969"
-       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:url(#radialGradient3981);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path3971"
-       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3983);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path3973"
-       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:none;stroke:url(#linearGradient3985);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path3975"
-       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
-       id="path3977"
-       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z" />
-  </g>
-</svg>
Binary file libgui/src/icons/db-stop.png has changed
--- a/libgui/src/icons/db-stop.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,677 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="48"
-   height="48"
-   id="svg1307"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="db-stop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview93"
-     showgrid="false"
-     inkscape:zoom="6.2802734"
-     inkscape:cx="24"
-     inkscape:cy="24"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg1307" />
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient2817">
-      <stop
-         id="stop2819"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2821"
-         style="stop-color:#ffffff;stop-opacity:0.48453608"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2697">
-      <stop
-         id="stop2699"
-         style="stop-color:#babdb6;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2701"
-         style="stop-color:#555753;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2679">
-      <stop
-         id="stop2681"
-         style="stop-color:#f7f7f7;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2683"
-         style="stop-color:#ccd0c7;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3081">
-      <stop
-         id="stop3083"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3085"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2112"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2122"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2124"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2137"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2139"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2725"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2727"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2729"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2731"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2733"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2745"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2747"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2749"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2751"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2753"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2791"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2793"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2795"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2797"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2800"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2803"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-145.0004,-97.0943)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2809"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2823"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2825"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-26.09426)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2831"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2860"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2864"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3421"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.000198,0,0,1,-67.006,-0.09426)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3424"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.498884,0,0,1.004384,-414.0618,-71.4625)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3430"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.624525,0,0,1.054917,-436.1019,-76.31138)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3489">
-      <feColorMatrix
-         result="result2"
-         type="saturate"
-         in="SourceGraphic"
-         values="1"
-         id="feColorMatrix3491" />
-      <feFlood
-         result="result1"
-         flood-opacity="1"
-         flood-color="rgb(254,102,0)"
-         id="feFlood3493" />
-      <feBlend
-         in2="result2"
-         mode="multiply"
-         in="result1"
-         result="result3"
-         id="feBlend3495" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         result="result4"
-         id="feComposite3497" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3499">
-      <feColorMatrix
-         result="result2"
-         type="saturate"
-         in="SourceGraphic"
-         values="1"
-         id="feColorMatrix3501" />
-      <feFlood
-         result="result1"
-         flood-opacity="1"
-         flood-color="rgb(254,102,0)"
-         id="feFlood3503" />
-      <feBlend
-         in2="result2"
-         mode="multiply"
-         in="result1"
-         result="result3"
-         id="feBlend3505" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         result="result4"
-         id="feComposite3507" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3509">
-      <feColorMatrix
-         result="result2"
-         type="saturate"
-         in="SourceGraphic"
-         values="1"
-         id="feColorMatrix3511" />
-      <feFlood
-         result="result1"
-         flood-opacity="1"
-         flood-color="rgb(254,102,0)"
-         id="feFlood3513" />
-      <feBlend
-         in2="result2"
-         mode="multiply"
-         in="result1"
-         result="result3"
-         id="feBlend3515" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         result="result4"
-         id="feComposite3517" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3519">
-      <feColorMatrix
-         result="result2"
-         type="saturate"
-         in="SourceGraphic"
-         values="1"
-         id="feColorMatrix3521" />
-      <feFlood
-         result="result1"
-         flood-opacity="1"
-         flood-color="rgb(254,102,0)"
-         id="feFlood3523" />
-      <feBlend
-         in2="result2"
-         mode="multiply"
-         in="result1"
-         result="result3"
-         id="feBlend3525" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         result="result4"
-         id="feComposite3527" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3529">
-      <feColorMatrix
-         result="result2"
-         type="saturate"
-         in="SourceGraphic"
-         values="1"
-         id="feColorMatrix3531" />
-      <feFlood
-         result="result1"
-         flood-opacity="1"
-         flood-color="rgb(254,102,0)"
-         id="feFlood3533" />
-      <feBlend
-         in2="result2"
-         mode="multiply"
-         in="result1"
-         result="result3"
-         id="feBlend3535" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         result="result4"
-         id="feComposite3537" />
-    </filter>
-    <radialGradient
-       cx="23.070683"
-       cy="35.127438"
-       r="10.31934"
-       fx="23.070683"
-       fy="35.127438"
-       id="radialGradient2097"
-       xlink:href="#linearGradient2091"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.914812,0.01265023,-0.00821502,0.213562,2.253914,27.18889)" />
-    <linearGradient
-       id="linearGradient2091">
-      <stop
-         id="stop2093"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2095"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="23.070683"
-       cy="35.127438"
-       r="10.31934"
-       fx="23.070683"
-       fy="35.127438"
-       id="radialGradient3774"
-       xlink:href="#linearGradient2091"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.914812,0.01265023,-0.00821502,0.213562,2.253914,27.18889)" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>stop</rdf:li>
-            <rdf:li>playback</rdf:li>
-            <rdf:li>video</rdf:li>
-            <rdf:li>music</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     style="display:inline"
-     transform="matrix(1.0709833,0,0,1.0709833,-1.8743797,-2.0804371)">
-    <path
-       d="m 14.00382,12.829103 0,22.153256 20.996184,0 0,-22.153256 -20.996184,0 z"
-       id="path2815"
-       style="opacity:0.15;color:#000000;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3430);stroke-width:1.99999952;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3529)"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 14.5,13.40575 0,21 20,0 0,-21 -20,0 z"
-       id="path2827"
-       style="color:#000000;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3519)"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 14.496737,13.407946 0,21.092064 19.991071,0 0,-21.092064 -19.991071,0 z"
-       id="path2762"
-       style="color:#000000;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3424);stroke-width:0.99999952;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3509)"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 15.499412,14.40575 0,19 18.001183,0 0,-19 -18.001183,0 z"
-       id="path2811"
-       style="color:#000000;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3421);stroke-width:0.99999976;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3499)"
-       inkscape:connector-curvature="0" />
-    <path
-       d="M 16,14.942758 16,25.5 l 17,-2.79033 0,-7.8553 -17,0.08839 z"
-       id="path2479"
-       style="opacity:0.5;color:#000000;fill:#d40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3489)"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 33.278212,34.94062 a 10.31934,2.320194 0 1 1 -20.63868,0 10.31934,2.320194 0 1 1 20.63868,0 z"
-       transform="matrix(1.5216388,0,0,1.3064015,-10.77236,-6.2589442)"
-       id="path1361"
-       style="opacity:0.10439561;fill:url(#radialGradient3774);fill-opacity:1;stroke:none"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
Binary file libgui/src/icons/dialog-error.png has changed
--- a/libgui/src/icons/dialog-error.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,330 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
-   sodipodi:docname="dialog-error.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective40" />
-    <linearGradient
-       id="linearGradient3957">
-      <stop
-         style="stop-color:#fffeff;stop-opacity:0.33333334;"
-         offset="0"
-         id="stop3959" />
-      <stop
-         style="stop-color:#fffeff;stop-opacity:0.21568628;"
-         offset="1"
-         id="stop3961" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2536">
-      <stop
-         style="stop-color:#a40000;stop-opacity:1;"
-         offset="0"
-         id="stop2538" />
-      <stop
-         style="stop-color:#ff1717;stop-opacity:1;"
-         offset="1"
-         id="stop2540" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2479">
-      <stop
-         style="stop-color:#ffe69b;stop-opacity:1;"
-         offset="0"
-         id="stop2481" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="1"
-         id="stop2483" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4126"
-       inkscape:collect="always">
-      <stop
-         id="stop4128"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4130"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4126"
-       id="radialGradient2169"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,1.899196e-14,20.00000)"
-       cx="23.857143"
-       cy="40.000000"
-       fx="23.857143"
-       fy="40.000000"
-       r="17.142857" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2479"
-       id="linearGradient2485"
-       x1="43.93581"
-       y1="53.835983"
-       x2="20.064686"
-       y2="-8.5626707"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2536"
-       id="linearGradient2542"
-       x1="36.917976"
-       y1="66.288063"
-       x2="19.071495"
-       y2="5.5410109"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2536"
-       id="linearGradient3046"
-       gradientUnits="userSpaceOnUse"
-       x1="36.917976"
-       y1="66.288063"
-       x2="19.071495"
-       y2="5.5410109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2479"
-       id="linearGradient3048"
-       gradientUnits="userSpaceOnUse"
-       x1="43.93581"
-       y1="53.835983"
-       x2="20.064686"
-       y2="-8.5626707" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2536"
-       id="linearGradient3064"
-       gradientUnits="userSpaceOnUse"
-       x1="36.917976"
-       y1="66.288063"
-       x2="19.071495"
-       y2="5.5410109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2479"
-       id="linearGradient3066"
-       gradientUnits="userSpaceOnUse"
-       x1="43.93581"
-       y1="53.835983"
-       x2="20.064686"
-       y2="-8.5626707" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3957"
-       id="linearGradient3963"
-       x1="21.993773"
-       y1="33.955299"
-       x2="20.917078"
-       y2="15.814602"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4126"
-       id="radialGradient3976"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.5,1.893048e-14,20)"
-       cx="23.857143"
-       cy="40.000000"
-       fx="23.857143"
-       fy="40.000000"
-       r="17.142857" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2536"
-       id="linearGradient3978"
-       gradientUnits="userSpaceOnUse"
-       x1="36.917976"
-       y1="66.288063"
-       x2="19.071495"
-       y2="5.5410109" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2479"
-       id="linearGradient3980"
-       gradientUnits="userSpaceOnUse"
-       x1="43.93581"
-       y1="53.835983"
-       x2="20.064686"
-       y2="-8.5626707" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3957"
-       id="linearGradient3982"
-       gradientUnits="userSpaceOnUse"
-       x1="21.993773"
-       y1="33.955299"
-       x2="20.917078"
-       y2="15.814602" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.21568627"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-134.9567"
-     inkscape:cy="20.463852"
-     inkscape:current-layer="layer2"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="925"
-     inkscape:window-height="818"
-     inkscape:window-x="234"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false"
-     fill="#ef2929">
-    <inkscape:grid
-       id="GridFromPre046Settings"
-       type="xygrid"
-       originx="0px"
-       originy="0px"
-       spacingx="1px"
-       spacingy="1px"
-       color="#0000ff"
-       empcolor="#0000ff"
-       opacity="0.2"
-       empopacity="0.4"
-       empspacing="4" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata1311">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Rodney Dawes</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner, Garrett LeSage</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Dialog Error</dc:title>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Shadow">
-    <path
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       transform="matrix(1.070555,0,0,0.525,-0.892755,22.5)"
-       d="M 41 40 A 17.142857 8.5714283 0 1 1  6.7142868,40 A 17.142857 8.5714283 0 1 1  41 40 z"
-       sodipodi:ry="8.5714283"
-       sodipodi:rx="17.142857"
-       sodipodi:cy="40"
-       sodipodi:cx="23.857143"
-       id="path6548"
-       style="opacity:0.6;color:#000000;fill:url(#radialGradient3976);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       sodipodi:type="arc" />
-  </g>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g4006">
-      <path
-         transform="matrix(0.920488,0,0,0.920488,2.368532,0.97408)"
-         d="M 46.857143 23.928572 A 23.357143 23.357143 0 1 1  0.1428566,23.928572 A 23.357143 23.357143 0 1 1  46.857143 23.928572 z"
-         sodipodi:ry="23.357143"
-         sodipodi:rx="23.357143"
-         sodipodi:cy="23.928572"
-         sodipodi:cx="23.5"
-         id="path1314"
-         style="fill:url(#linearGradient3978);fill-opacity:1;fill-rule:nonzero;stroke:#b20000;stroke-width:1.08638;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         sodipodi:type="arc"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="matrix(0.856093,0,0,0.856093,1.818275,0.197769)"
-         d="M 49.901535 26.635273 A 23.991123 23.991123 0 1 1  1.9192886,26.635273 A 23.991123 23.991123 0 1 1  49.901535 26.635273 z"
-         sodipodi:ry="23.991123"
-         sodipodi:rx="23.991123"
-         sodipodi:cy="26.635273"
-         sodipodi:cx="25.910412"
-         id="path3560"
-         style="opacity:0.34659089;fill:#cc0000;fill-opacity:0;stroke:url(#linearGradient3980);stroke-width:1.16809607;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         sodipodi:type="arc"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-    </g>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Error Box">
-    <rect
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       style="fill:#efefef;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73876643;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.8627451"
-       id="rect2070"
-       width="27.836435"
-       height="7.1735945"
-       x="10.078821"
-       y="19.164932"
-       transform="matrix(1.005876,0,0,1.115201,-0.138045,-2.372708)" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Glossy Shine">
-    <path
-       transform="matrix(1.002994,0,0,1.002994,-7.185874e-2,1.968356e-2)"
-       sodipodi:nodetypes="czssc"
-       id="path3955"
-       d="M 43.370686,21.715486 C 43.370686,32.546102 33.016357,15.449178 24.695948,22.101874 C 16.569626,28.599385 4.0989837,34.292422 4.0989837,23.461806 C 4.0989837,12.377753 12.79438,2.0948032 23.625,2.0948032 C 34.455619,2.0948032 43.370686,10.884868 43.370686,21.715486 z "
-       style="fill:url(#linearGradient3982);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-  </g>
-</svg>
Binary file libgui/src/icons/dialog-information.png has changed
--- a/libgui/src/icons/dialog-information.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1159 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="dialog-information.svg"
-   sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg19655"
-   height="48px"
-   width="48px"
-   inkscape:export-filename="/home/jimmac/Desktop/poing.png"
-   inkscape:export-xdpi="392.72742"
-   inkscape:export-ydpi="392.72742"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective155" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3300">
-      <stop
-         style="stop-color:#4c4c28;stop-opacity:1;"
-         offset="0"
-         id="stop3302" />
-      <stop
-         style="stop-color:#4c4c28;stop-opacity:0;"
-         offset="1"
-         id="stop3304" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3311">
-      <stop
-         id="stop3313"
-         offset="0"
-         style="stop-color:#d6d7a5;stop-opacity:1;" />
-      <stop
-         id="stop3315"
-         offset="1.0000000"
-         style="stop-color:#8e8f6d;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3265">
-      <stop
-         id="stop3267"
-         offset="0"
-         style="stop-color:#929470;stop-opacity:1;" />
-      <stop
-         style="stop-color:#60614a;stop-opacity:1.0000000;"
-         offset="0.26470590"
-         id="stop3269" />
-      <stop
-         id="stop3271"
-         offset="0.63235295"
-         style="stop-color:#f3f5ba;stop-opacity:1.0000000;" />
-      <stop
-         id="stop3273"
-         offset="1.0000000"
-         style="stop-color:#929470;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3175"
-       inkscape:collect="always">
-      <stop
-         id="stop3177"
-         offset="0"
-         style="stop-color:#f1f3ff;stop-opacity:1;" />
-      <stop
-         id="stop3179"
-         offset="1"
-         style="stop-color:#f1f3ff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2399">
-      <stop
-         style="stop-color:#929470;stop-opacity:1;"
-         offset="0"
-         id="stop2401" />
-      <stop
-         id="stop2407"
-         offset="0.26470590"
-         style="stop-color:#fcffc1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#f3f5ba;stop-opacity:1.0000000;"
-         offset="0.63235295"
-         id="stop2409" />
-      <stop
-         style="stop-color:#929470;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2403" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6339">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop6341" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop6343" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient20428">
-      <stop
-         id="stop20430"
-         offset="0.0000000"
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
-      <stop
-         id="stop20432"
-         offset="1"
-         style="stop-color:#b5b5b5;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient20393">
-      <stop
-         id="stop20395"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.44117647;"
-         offset="0.41176471"
-         id="stop2427" />
-      <stop
-         id="stop20397"
-         offset="1.0000000"
-         style="stop-color:#000000;stop-opacity:0.48039216;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient20210">
-      <stop
-         id="stop20212"
-         offset="0.0000000"
-         style="stop-color:#000000;stop-opacity:0.51546389;" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0.14432989;"
-         offset="0.55172414"
-         id="stop20218" />
-      <stop
-         id="stop20214"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="11.4873"
-       fx="17.8335"
-       r="22.7093"
-       cy="11.4873"
-       cx="17.8335"
-       id="aigrd7">
-      <stop
-         id="stop19512"
-         style="stop-color:#ffffff;stop-opacity:0.17525773;"
-         offset="0.0000000" />
-      <stop
-         id="stop19514"
-         style="stop-color:#709ac8;stop-opacity:1.0000000;"
-         offset="0.88200003" />
-      <stop
-         id="stop19516"
-         style="stop-color:#6f96dd;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       y2="43.165"
-       x2="26.4785"
-       y1="43.165"
-       x1="23.124"
-       gradientUnits="userSpaceOnUse"
-       id="aigrd1">
-      <stop
-         id="stop19415"
-         style="stop-color:#686868"
-         offset="5.618000e-003" />
-      <stop
-         id="stop19417"
-         style="stop-color:#777777"
-         offset="3.012137e-002" />
-      <stop
-         id="stop19419"
-         style="stop-color:#929292"
-         offset="8.366583e-002" />
-      <stop
-         id="stop19421"
-         style="stop-color:#A7A7A7"
-         offset="0.1422" />
-      <stop
-         id="stop19423"
-         style="stop-color:#B6B6B6"
-         offset="0.2074" />
-      <stop
-         id="stop19425"
-         style="stop-color:#BEBEBE"
-         offset="0.2846" />
-      <stop
-         id="stop19427"
-         style="stop-color:#C1C1C1"
-         offset="0.4045" />
-      <stop
-         id="stop19429"
-         style="stop-color:#BCBCBC"
-         offset="0.4962" />
-      <stop
-         id="stop19431"
-         style="stop-color:#ADADAD"
-         offset="0.6057" />
-      <stop
-         id="stop19433"
-         style="stop-color:#959595"
-         offset="0.7245" />
-      <stop
-         id="stop19435"
-         style="stop-color:#747474"
-         offset="0.8497" />
-      <stop
-         id="stop19437"
-         style="stop-color:#494949"
-         offset="0.9789" />
-      <stop
-         id="stop19439"
-         style="stop-color:#414141"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient19894"
-       gradientUnits="userSpaceOnUse"
-       x1="18.995100"
-       y1="37.226601"
-       x2="30.169901"
-       y2="37.226601">
-      <stop
-         offset="5.618000e-003"
-         style="stop-color:#A3A349"
-         id="stop19896" />
-      <stop
-         offset="2.078677e-002"
-         style="stop-color:#ACAC54"
-         id="stop19898" />
-      <stop
-         offset="6.600059e-002"
-         style="stop-color:#C1C172"
-         id="stop19900" />
-      <stop
-         offset="0.1148"
-         style="stop-color:#D4D68E"
-         id="stop19902" />
-      <stop
-         offset="0.1677"
-         style="stop-color:#E2E4A6"
-         id="stop19904" />
-      <stop
-         offset="0.2265"
-         style="stop-color:#EDF0B8"
-         id="stop19906" />
-      <stop
-         offset="0.2963"
-         style="stop-color:#F3F6C3"
-         id="stop19908" />
-      <stop
-         offset="0.4045"
-         style="stop-color:#F5F8C7"
-         id="stop19910" />
-      <stop
-         offset="0.5239"
-         style="stop-color:#EEF0BE"
-         id="stop19912" />
-      <stop
-         offset="0.6666"
-         style="stop-color:#DBDDA9"
-         id="stop19914" />
-      <stop
-         offset="0.8211"
-         style="stop-color:#BEBD88"
-         id="stop19916" />
-      <stop
-         offset="0.9832"
-         style="stop-color:#989564"
-         id="stop19918" />
-      <stop
-         offset="1"
-         style="stop-color:#949160"
-         id="stop19920" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="matrix(1.639127,0,0,1.639127,-15.97035,-29.79355)"
-       y2="43.165"
-       x2="26.4785"
-       y1="43.165"
-       x1="23.124"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient20109"
-       xlink:href="#aigrd1"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       r="7.8289826"
-       fy="74.209934"
-       fx="14.772334"
-       cy="74.209934"
-       cx="14.772334"
-       gradientTransform="scale(1.764278,0.566804)"
-       id="radialGradient20216"
-       xlink:href="#linearGradient20210"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="36.726292"
-       x2="32.096882"
-       y1="10.061084"
-       x1="16.998856"
-       gradientTransform="matrix(1.140494,0.000000,0.000000,0.926002,0.272330,-3.247170)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7708"
-       xlink:href="#linearGradient6339"
-       inkscape:collect="always" />
-    <radialGradient
-       r="33.934090"
-       fy="29.869318"
-       fx="68.137589"
-       cy="29.869318"
-       cx="68.137589"
-       gradientTransform="matrix(0.551290,1.265592e-16,-1.355720e-16,0.766034,-10.48701,3.514312)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient7720"
-       xlink:href="#aigrd7"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="3.8557322"
-       x2="-5.2517161"
-       y1="16.651863"
-       x1="37.940434"
-       gradientTransform="matrix(0.894129,0.000000,0.000000,0.985230,1.515981,2.449800e-2)"
-       id="linearGradient3181"
-       xlink:href="#linearGradient3175"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20393"
-       id="linearGradient1700"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.6293,0,0,1.589068,50.68808,3.804378)"
-       x1="30.620375"
-       y1="10.313651"
-       x2="32.166080"
-       y2="18.162935" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20393"
-       id="linearGradient1702"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6293,0,0,1.589068,1.411612,3.929378)"
-       x1="30.620375"
-       y1="10.313651"
-       x2="32.166080"
-       y2="18.162935" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20428"
-       id="linearGradient1704"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.985083,0,0,0.503757,1.786612,4.554378)"
-       x1="14.637301"
-       y1="31.504122"
-       x2="9.3648205"
-       y2="32.250980" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient1725"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.026450,0.974232)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient1727"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.026450,0.974232)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient1729"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.026450,0.974232)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient1731"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.026450,0.974232)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3311"
-       id="linearGradient2516"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.603440,0.000000,0.000000,0.549396,0.614167,2.449800e-2)"
-       x1="17.879995"
-       y1="55.362793"
-       x2="11.906206"
-       y2="54.863026" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3265"
-       id="linearGradient2518"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.905728,-4.386156e-2,0.189510,-0.963437,0.614167,2.449800e-2)"
-       x1="-29.007195"
-       y1="-29.799353"
-       x2="-37.641232"
-       y2="-29.598314" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient2522"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.300410)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient2524"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.300410)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient2529"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient2531"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3300"
-       id="linearGradient3306"
-       gradientTransform="scale(1.002656,0.997352)"
-       x1="24.613028"
-       y1="31.146202"
-       x2="24.613028"
-       y2="26.739624"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3311"
-       id="linearGradient3127"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.60344,0,0,0.549396,0.614167,2.4498e-2)"
-       x1="17.879995"
-       y1="55.362793"
-       x2="11.906206"
-       y2="54.863026" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3265"
-       id="linearGradient3129"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.905728,-4.386156e-2,0.18951,-0.963437,0.614167,2.4498e-2)"
-       x1="-29.007195"
-       y1="-29.799353"
-       x2="-37.641232"
-       y2="-29.598314" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd7"
-       id="radialGradient3131"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.55129,1.265592e-16,-1.35572e-16,0.766034,-10.48701,3.514312)"
-       cx="68.137589"
-       cy="29.869318"
-       fx="68.137589"
-       fy="29.869318"
-       r="33.934090" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6339"
-       id="linearGradient3133"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.140494,0,0,0.926002,0.27233,-3.24717)"
-       x1="16.998856"
-       y1="10.061084"
-       x2="32.096882"
-       y2="36.726292" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3175"
-       id="linearGradient3135"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.894129,0,0,0.98523,1.515981,2.4498e-2)"
-       x1="37.940434"
-       y1="16.651863"
-       x2="-5.2517161"
-       y2="3.8557322" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3311"
-       id="linearGradient3157"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.60344,0,0,0.549396,0.614167,2.4498e-2)"
-       x1="17.879995"
-       y1="55.362793"
-       x2="11.906206"
-       y2="54.863026" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3265"
-       id="linearGradient3159"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.905728,-4.386156e-2,0.18951,-0.963437,0.614167,2.4498e-2)"
-       x1="-29.007195"
-       y1="-29.799353"
-       x2="-37.641232"
-       y2="-29.598314" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd7"
-       id="radialGradient3161"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.55129,1.265592e-16,-1.35572e-16,0.766034,-10.48701,3.514312)"
-       cx="68.137589"
-       cy="29.869318"
-       fx="68.137589"
-       fy="29.869318"
-       r="33.934090" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3175"
-       id="linearGradient3163"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.894129,0,0,0.98523,1.515981,2.4498e-2)"
-       x1="37.940434"
-       y1="16.651863"
-       x2="-5.2517161"
-       y2="3.8557322" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20393"
-       id="linearGradient3165"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.6293,0,0,1.589068,50.68808,3.804378)"
-       x1="30.620375"
-       y1="10.313651"
-       x2="32.166080"
-       y2="18.162935" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20393"
-       id="linearGradient3167"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6293,0,0,1.589068,1.411612,3.929378)"
-       x1="30.620375"
-       y1="10.313651"
-       x2="32.166080"
-       y2="18.162935" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20428"
-       id="linearGradient3169"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.985083,0,0,0.503757,1.786612,4.554378)"
-       x1="14.637301"
-       y1="31.504122"
-       x2="9.3648205"
-       y2="32.250980" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6339"
-       id="linearGradient3171"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.140494,0,0,0.926002,0.27233,-3.24717)"
-       x1="16.998856"
-       y1="10.061084"
-       x2="32.096882"
-       y2="36.726292" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3300"
-       id="linearGradient3185"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.002656,0.997352)"
-       x1="24.613028"
-       y1="31.146202"
-       x2="24.613028"
-       y2="26.739624" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient3187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient3189"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient3191"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.02645,0.974232)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient3193"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.02645,0.974232)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient3195"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.02645,0.974232)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient3197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.02645,0.974232)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient3199"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.30041)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient3201"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.30041)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd1"
-       id="linearGradient4100"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.639127,0,0,1.639127,-15.97035,-29.79355)"
-       x1="23.124"
-       y1="43.165"
-       x2="26.4785"
-       y2="43.165" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3300"
-       id="linearGradient4102"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.002656,0.997352)"
-       x1="24.613028"
-       y1="31.146202"
-       x2="24.613028"
-       y2="26.739624" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient4104"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient4106"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient4108"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.02645,0.974232)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient4110"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.02645,0.974232)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient4112"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.02645,0.974232)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient4114"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.02645,0.974232)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19894"
-       id="linearGradient4116"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.30041)"
-       x1="-22.874170"
-       y1="38.675991"
-       x2="-4.3908315"
-       y2="38.675991" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2399"
-       id="linearGradient4118"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.30041)"
-       x1="-10.480865"
-       y1="39.033951"
-       x2="-23.851389"
-       y2="39.142845" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3311"
-       id="linearGradient4120"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.60344,0,0,0.549396,0.614167,2.4498e-2)"
-       x1="17.879995"
-       y1="55.362793"
-       x2="11.906206"
-       y2="54.863026" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3265"
-       id="linearGradient4122"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.905728,-4.386156e-2,0.18951,-0.963437,0.614167,2.4498e-2)"
-       x1="-29.007195"
-       y1="-29.799353"
-       x2="-37.641232"
-       y2="-29.598314" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd7"
-       id="radialGradient4124"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.55129,1.265592e-16,-1.35572e-16,0.766034,-10.48701,3.514312)"
-       cx="68.137589"
-       cy="29.869318"
-       fx="68.137589"
-       fy="29.869318"
-       r="33.934090" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3175"
-       id="linearGradient4126"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.894129,0,0,0.98523,1.515981,2.4498e-2)"
-       x1="37.940434"
-       y1="16.651863"
-       x2="-5.2517161"
-       y2="3.8557322" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20393"
-       id="linearGradient4128"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.6293,0,0,1.589068,50.68808,3.804378)"
-       x1="30.620375"
-       y1="10.313651"
-       x2="32.166080"
-       y2="18.162935" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20393"
-       id="linearGradient4130"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6293,0,0,1.589068,1.411612,3.929378)"
-       x1="30.620375"
-       y1="10.313651"
-       x2="32.166080"
-       y2="18.162935" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient20428"
-       id="linearGradient4132"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.985083,0,0,0.503757,1.786612,4.554378)"
-       x1="14.637301"
-       y1="31.504122"
-       x2="9.3648205"
-       y2="32.250980" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6339"
-       id="linearGradient4134"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.140494,0,0,0.926002,0.27233,-3.24717)"
-       x1="16.998856"
-       y1="10.061084"
-       x2="32.096882"
-       y2="36.726292" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="1060"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="true"
-     inkscape:current-layer="layer1"
-     inkscape:cy="19.729332"
-     inkscape:cx="-132.96706"
-     inkscape:zoom="1"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.55294118"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:showpageshadow="false">
-    <inkscape:grid
-       id="GridFromPre046Settings"
-       type="xygrid"
-       originx="0px"
-       originy="0px"
-       spacingx="1px"
-       spacingy="1px"
-       color="#0000ff"
-       empcolor="#0000ff"
-       opacity="0.2"
-       empopacity="0.4"
-       empspacing="4" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Info</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>dialog</rdf:li>
-            <rdf:li>info</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Garrett LeSage</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1"
-     id="layer1">
-    <path
-       transform="matrix(1.197183,0,0,1.098591,-6.201582,-3.209507)"
-       d="M 39.875 42.0625 A 13.8125 4.4375 0 1 1  12.25,42.0625 A 13.8125 4.4375 0 1 1  39.875 42.0625 z"
-       sodipodi:ry="4.4375"
-       sodipodi:rx="13.8125"
-       sodipodi:cy="42.0625"
-       sodipodi:cx="26.0625"
-       id="path20208"
-       style="color:#000000;fill:url(#radialGradient20216);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;opacity:0.8"
-       sodipodi:type="arc"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-    <g
-       id="g4076"
-       transform="translate(0,1)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true">
-      <path
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         transform="matrix(1.075823,0,0,0.937493,-2.551335,3.047213)"
-         id="path19509"
-         d="M 21.893504,38.885945 L 21.893504,40.36116 C 21.893504,41.836375 23.204807,43.147679 24.680022,43.147679 C 26.155237,43.147679 27.466539,41.836375 27.466539,40.36116 L 27.466539,38.885945 L 21.893504,38.885945 z "
-         style="fill:url(#linearGradient4100);fill-rule:nonzero;stroke:#565656;stroke-miterlimit:4;stroke-opacity:1" />
-      <g
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         transform="matrix(0.989073,0,0,0.993556,-0.408739,7.920479e-3)"
-         id="g3173">
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           sodipodi:nodetypes="cccccccscccccccs"
-           id="path3209"
-           d="M 24.511725,27.668867 C 21.208844,27.660897 17.463275,28.632054 19.492913,30.467931 C 18.98969,30.670934 18.270371,31.124313 18.355167,32.185222 C 18.401983,32.739286 18.989243,33.079394 19.79236,33.32911 C 18.881908,33.967722 18.302581,34.642557 18.355167,35.264921 C 18.401438,35.812525 18.976334,36.187531 19.76303,36.43814 C 18.875519,37.069403 18.303301,37.760121 18.355167,38.373951 C 18.434436,39.312088 20.457743,40.362928 24.838928,40.2419 C 27.993329,40.155914 30.776913,39.590514 30.996599,38.373951 C 31.082862,37.896248 30.691907,37.450531 30.087355,37.05408 C 30.539926,36.597918 30.85698,36.135242 30.820616,35.704878 C 30.774128,35.154694 30.205993,34.781923 29.412754,34.53166 C 30.300265,33.900397 30.872482,33.209679 30.820616,32.595849 C 30.774128,32.045664 30.205993,31.702225 29.412754,31.45196 C 30.310848,30.817288 30.872816,30.133928 30.820616,29.516149 C 30.762593,28.829446 27.61599,27.676358 24.511725,27.668867 z "
-           style="color:#000000;fill:#aeae57;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4102);stroke-width:2.01752925;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           sodipodi:nodetypes="csccc"
-           id="path3183"
-           d="M 30.920208,38.329767 C 30.700522,39.546331 27.591422,40.232861 22.615132,39.983673 C 19.463507,39.825856 19.283163,38.944055 19.502848,37.727491 C 19.722534,36.510926 22.458318,35.65848 25.609509,35.824708 C 28.7607,35.990936 31.139893,37.113203 30.920208,38.329767 z "
-           style="color:#000000;fill:url(#linearGradient4104);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4106);stroke-width:0.08906282;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           sodipodi:type="arc"
-           style="color:#000000;fill:url(#linearGradient4108);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4110);stroke-width:0.13035245;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           id="path1603"
-           sodipodi:cx="-13.87697"
-           sodipodi:cy="27.228739"
-           sodipodi:rx="10.341436"
-           sodipodi:ry="3.2703688"
-           d="M -3.5355339 27.228739 A 10.341436 3.2703688 0 1 1  -24.218407,27.228739 A 10.341436 3.2703688 0 1 1  -3.5355339 27.228739 z"
-           transform="matrix(0.60274,-0.128625,6.428372e-2,0.760788,31.12021,14.49141)" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           transform="matrix(0.60274,-0.128625,6.428372e-2,0.760788,31.12021,11.39591)"
-           d="M -3.5355339 27.228739 A 10.341436 3.2703688 0 1 1  -24.218407,27.228739 A 10.341436 3.2703688 0 1 1  -3.5355339 27.228739 z"
-           sodipodi:ry="3.2703688"
-           sodipodi:rx="10.341436"
-           sodipodi:cy="27.228739"
-           sodipodi:cx="-13.87697"
-           id="path2364"
-           style="color:#000000;fill:url(#linearGradient4112);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4114);stroke-width:0.13035245;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           sodipodi:type="arc" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           sodipodi:nodetypes="cccss"
-           id="path2366"
-           d="M 30.698087,29.636386 C 30.698087,31.014688 28.157326,32.55444 24.716601,33.288693 C 21.275876,34.022945 18.38922,33.50421 18.273172,32.130802 C 18.157124,30.757395 20.509679,29.155466 23.952388,28.968827 C 27.422379,28.780711 30.698087,28.924901 30.698087,29.636386 z "
-           style="color:#000000;fill:url(#linearGradient4116);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4118);stroke-width:0.08906286;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           transform="matrix(0.335464,0,0,0.335464,11.74678,27.2261)"
-           d="M 31 22.375 A 3.25 3.25 0 1 1  24.5,22.375 A 3.25 3.25 0 1 1  31 22.375 z"
-           sodipodi:ry="3.25"
-           sodipodi:rx="3.25"
-           sodipodi:cy="22.375"
-           sodipodi:cx="27.75"
-           id="path20372"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           sodipodi:type="arc" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           sodipodi:nodetypes="cscc"
-           id="path3241"
-           d="M 19.342183,33.378865 C 22.736592,33.883533 26.320992,33.346192 29.214315,31.470807 C 30.025582,30.944962 30.147604,30.343945 30.520921,29.873844 C 29.09679,31.000705 25.494982,34.035625 19.342183,33.378865 z "
-           style="fill:#000000;fill-opacity:0.23391807;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           sodipodi:type="arc"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           id="path2435"
-           sodipodi:cx="27.75"
-           sodipodi:cy="22.375"
-           sodipodi:rx="3.25"
-           sodipodi:ry="3.25"
-           d="M 31 22.375 A 3.25 3.25 0 1 1  24.5,22.375 A 3.25 3.25 0 1 1  31 22.375 z"
-           transform="matrix(0.335464,0,0,0.335464,11.74678,30.23376)" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           sodipodi:nodetypes="cscc"
-           id="path3237"
-           d="M 19.466621,39.517838 C 22.86103,40.022506 26.44543,39.485165 29.338753,37.60978 C 30.15002,37.083935 30.272043,36.482919 30.645359,36.012817 C 29.221228,37.139678 25.61942,40.174598 19.466621,39.517838 z "
-           style="fill:#000000;fill-opacity:0.23391807;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           style="fill:#000000;fill-opacity:0.23391807;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="M 19.487361,36.406872 C 22.88177,36.91154 26.46617,36.374199 29.359492,34.498814 C 30.17076,33.972969 30.292782,33.371953 30.666099,32.901851 C 29.241968,34.028712 25.64016,37.063632 19.487361,36.406872 z "
-           id="path3239"
-           sodipodi:nodetypes="cscc" />
-      </g>
-      <g
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         transform="translate(-0.988797,0)"
-         id="g3146">
-        <g
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           id="g3141">
-          <path
-             transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)"
-             sodipodi:nodetypes="csscs"
-             id="path3243"
-             d="M 18.87103,29.628128 C 18.87103,28.836695 20.445135,27.889988 24.419234,27.942972 C 28.101154,27.992059 30.526608,28.83866 30.526608,30.105404 C 30.526608,31.345281 27.307242,32.174416 23.874677,32.008188 C 20.442113,31.84196 18.87103,30.868005 18.87103,29.628128 z "
-             style="color:#000000;fill:url(#linearGradient4120);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4122);stroke-width:0.09083303;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-             inkscape:r_cx="true"
-             inkscape:r_cy="true" />
-          <path
-             transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)"
-             sodipodi:nodetypes="csssssc"
-             id="path6305"
-             d="M 24.680021,0.8622936 C 16.858005,0.8622936 10.506261,6.8372628 10.506261,14.195288 C 10.506261,21.737851 16.247826,22.573217 16.247826,25.352995 C 16.247826,28.619061 19.614103,32.322687 25.149309,32.188995 C 31.035159,32.046835 33.464182,28.825655 33.464182,25.352995 C 33.464182,22.384064 38.853781,22.304889 38.853781,14.195288 C 38.853781,6.8372628 32.502038,0.8622936 24.680021,0.8622936 z "
-             style="color:#000000;fill:url(#radialGradient4124);fill-opacity:1;fill-rule:nonzero;stroke:#616471;stroke-width:1.01595449;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-             inkscape:r_cx="true"
-             inkscape:r_cy="true" />
-          <path
-             transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)"
-             style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4126);stroke-width:0.94685698;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-             d="M 24.680021,1.9277146 C 17.389999,1.9277146 11.470252,7.4963123 11.470252,14.353901 C 11.470252,21.383476 16.82132,22.162027 16.82132,24.752746 C 16.82132,27.79668 19.958648,31.248413 25.117392,31.123813 C 30.602931,30.991321 32.866751,27.989222 32.866751,24.752746 C 32.866751,21.98574 37.889791,21.911948 37.889791,14.353901 C 37.889791,7.4963123 31.970044,1.9277146 24.680021,1.9277146 z "
-             id="path2429"
-             sodipodi:nodetypes="csssssc"
-             inkscape:r_cx="true"
-             inkscape:r_cy="true" />
-        </g>
-        <g
-           id="g1695"
-           transform="matrix(0.9375,0,0,0.926938,0.569221,0.25176)"
-           inkscape:r_cx="true"
-           inkscape:r_cy="true">
-          <path
-             style="fill:url(#linearGradient4128);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
-             d="M 31.947292,19.22274 C 32.260034,19.326988 32.468529,19.63973 32.364281,19.952471 L 28.507134,31.523913 C 28.402887,31.836655 28.090145,32.045149 27.777403,31.940902 C 27.464662,31.836655 27.256168,31.523913 27.360415,31.211172 L 31.217562,19.63973 C 31.321809,19.326988 31.634551,19.118493 31.947292,19.22274 z "
-             id="path1691"
-             inkscape:r_cx="true"
-             inkscape:r_cy="true" />
-          <path
-             id="path19612"
-             d="M 20.152404,19.34774 C 19.839662,19.451988 19.631167,19.76473 19.735415,20.077471 L 23.592562,31.648913 C 23.696809,31.961655 24.009551,32.170149 24.322293,32.065902 C 24.635034,31.961655 24.843528,31.648913 24.739281,31.336172 L 20.882134,19.76473 C 20.777887,19.451988 20.465145,19.243493 20.152404,19.34774 z "
-             style="fill:url(#linearGradient4130);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
-             inkscape:r_cx="true"
-             inkscape:r_cy="true" />
-          <path
-             style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4132);stroke-width:0.21454535;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
-             d="M 20.255362,19.273128 C 20.009452,19.315194 19.816806,19.507772 19.774653,19.753667 C 19.732499,19.999562 19.850004,20.245309 20.067862,20.366878 C 20.067862,20.366878 21.910084,21.447747 24.317862,21.991878 C 26.72564,22.536009 29.806763,22.571305 32.130362,20.304378 C 32.305608,20.165345 32.386854,19.938963 32.340007,19.720224 C 32.29316,19.501485 32.126325,19.328233 31.909509,19.273168 C 31.692693,19.218103 31.463406,19.290751 31.317862,19.460628 C 29.367326,21.36359 26.773024,21.36522 24.567862,20.866878 C 22.3627,20.368536 20.661612,19.366878 20.661612,19.366878 C 20.542178,19.287089 20.397682,19.253744 20.255362,19.273128 z "
-             id="path19614"
-             inkscape:r_cx="true"
-             inkscape:r_cy="true" />
-        </g>
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           style="opacity:0.5977654;color:#000000;fill:url(#linearGradient4134);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.98750001;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           d="M 25.001158,3.5644322 C 18.737608,3.5644322 13.655359,7.5900329 13.655359,12.547843 C 13.655359,14.527956 14.632918,16.261758 16.006008,17.747035 C 17.558672,18.378895 19.249827,18.832941 21.114752,18.832941 C 27.378302,18.832941 32.460549,14.807341 32.460551,9.849528 C 32.460551,7.857476 31.466744,6.1074629 30.07856,4.6174331 C 28.533139,3.9930601 26.854241,3.5644321 25.001158,3.5644322 z "
-           id="path6334"
-           transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)" />
-      </g>
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/dialog-warning.png has changed
--- a/libgui/src/icons/dialog-warning.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,373 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1377"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/status"
-   sodipodi:docname="dialog-warning.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1379">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective48" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient6719"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient6717"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient6715"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       y2="56.0523"
-       x2="47.3197"
-       y1="11.1133"
-       x1="4.1914"
-       gradientUnits="userSpaceOnUse"
-       id="aigrd1">
-      <stop
-         id="stop6490"
-         style="stop-color:#D4D4D4"
-         offset="0" />
-      <stop
-         id="stop6492"
-         style="stop-color:#E2E2E2"
-         offset="0.3982" />
-      <stop
-         id="stop6494"
-         style="stop-color:#FFFFFF"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       y2="56.0523"
-       x2="47.3197"
-       y1="11.1133"
-       x1="4.1914"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7451"
-       xlink:href="#aigrd1"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient4126"
-       inkscape:collect="always">
-      <stop
-         id="stop4128"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4130"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       r="17.142857"
-       fy="40.000000"
-       fx="23.857143"
-       cy="40.000000"
-       cx="23.857143"
-       gradientTransform="matrix(1,0,0,0.5,2.139286e-14,20)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient7449"
-       xlink:href="#linearGradient4126"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6525"
-       id="linearGradient5250"
-       x1="8.5469341"
-       y1="30.281681"
-       x2="30.85088"
-       y2="48.301884"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.899009,0,0,0.934235,1.875108,1.193645)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd1"
-       id="linearGradient3922"
-       gradientUnits="userSpaceOnUse"
-       x1="4.1914"
-       y1="11.1133"
-       x2="47.3197"
-       y2="56.0523" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6525"
-       id="linearGradient3924"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.899009,0,0,0.934235,1.875108,1.193645)"
-       x1="8.5469341"
-       y1="30.281681"
-       x2="30.85088"
-       y2="48.301884" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6525"
-       id="linearGradient3933"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.899009,0,0,0.934235,1.875108,1.193645)"
-       x1="8.5469341"
-       y1="30.281681"
-       x2="30.85088"
-       y2="48.301884" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd1"
-       id="linearGradient3935"
-       gradientUnits="userSpaceOnUse"
-       x1="4.1914"
-       y1="11.1133"
-       x2="47.3197"
-       y2="56.0523" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd1"
-       id="linearGradient3946"
-       gradientUnits="userSpaceOnUse"
-       x1="4.1914"
-       y1="11.1133"
-       x2="47.3197"
-       y2="56.0523" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6525"
-       id="linearGradient3948"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.899009,0,0,0.934235,1.875108,1.193645)"
-       x1="8.5469341"
-       y1="30.281681"
-       x2="30.85088"
-       y2="48.301884" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="14.757891"
-     inkscape:cx="13.022822"
-     inkscape:cy="24"
-     inkscape:current-layer="g7435"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1105"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30">
-    <inkscape:grid
-       id="GridFromPre046Settings"
-       type="xygrid"
-       originx="0px"
-       originy="0px"
-       spacingx="1px"
-       spacingy="1px"
-       color="#0000ff"
-       empcolor="#0000ff"
-       opacity="0.2"
-       empopacity="0.4"
-       empspacing="4" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata1382">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Dialog Warning</dc:title>
-        <dc:date>2005-10-14</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner, Garrett LeSage</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>dialog</rdf:li>
-            <rdf:li>warning</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       transform="matrix(1.566667,0.000000,0.000000,1.566667,-8.925566,-23.94764)"
-       id="g7435">
-      <g
-         style="display:inline"
-         transform="matrix(1.444074e-2,0,0,1.331973e-2,33.38871,40.40337)"
-         id="g6707">
-        <rect
-           style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           id="rect6709"
-           width="1339.6335"
-           height="478.35718"
-           x="-1559.2523"
-           y="-150.69685" />
-        <path
-           style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-           d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-           id="path6711"
-           sodipodi:nodetypes="cccc" />
-        <path
-           sodipodi:nodetypes="cccc"
-           id="path6713"
-           d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-           style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      </g>
-      <g
-         id="g3937"
-         transform="matrix(1,0,4.537846e-3,1,-0.138907,-1.394718e-15)"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true">
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           transform="matrix(1,0,-8.726683e-3,1,0.328074,1.276596)"
-           id="path6485"
-           d="M 33.282781,38.644744 L 22.407791,18.394765 C 22.095292,17.832266 21.532792,17.519767 20.907793,17.519767 C 20.282793,17.519767 19.720294,17.894765 19.407795,18.457265 L 8.7828048,38.707245 C 8.5328048,39.207244 8.5328048,39.894744 8.8453048,40.394743 C 9.1578038,40.894743 9.6578038,41.144742 10.282804,41.144742 L 31.782782,41.144742 C 32.407781,41.144742 32.97028,40.832243 33.220281,40.332243 C 33.53278,39.832243 33.53278,39.207244 33.282781,38.644744 z "
-           style="fill:#cc0000;fill-rule:nonzero;stroke:#9f0000;stroke-width:0.6382978;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <g
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           id="g6487"
-           transform="matrix(0.625,0,-5.534934e-3,0.634254,6.164053,15.76055)"
-           style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4">
-          <linearGradient
-             y2="56.052299"
-             x2="47.319698"
-             y1="11.1133"
-             x1="4.1914001"
-             gradientUnits="userSpaceOnUse"
-             id="linearGradient6525">
-            <stop
-               id="stop6529"
-               style="stop-color:#ffffff;stop-opacity:1;"
-               offset="0" />
-            <stop
-               id="stop6531"
-               style="stop-color:#ffffff;stop-opacity:0.34020618;"
-               offset="1" />
-          </linearGradient>
-          <path
-             inkscape:r_cy="true"
-             inkscape:r_cx="true"
-             id="path6496"
-             d="M 9.5,37.6 C 9.2,38.1 9.5,38.5 10,38.5 L 38.2,38.5 C 38.7,38.5 39,38.1 38.7,37.6 L 24.4,11 C 24.1,10.5 23.7,10.5 23.5,11 L 9.5,37.6 z "
-             style="fill:url(#linearGradient3946);stroke:none" />
-        </g>
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           transform="matrix(1,0,-8.726683e-3,1,0.318277,1.276596)"
-           sodipodi:nodetypes="ccsccscccc"
-           id="path1325"
-           d="M 32.323106,38.183905 L 22.150271,19.265666 C 21.71698,18.45069 21.561698,18.189213 20.908406,18.189213 C 20.346525,18.189213 20.054127,18.57002 19.651305,19.339291 L 9.7489285,38.242296 C 9.1737649,39.303588 9.1128238,39.580228 9.3937644,40.047345 C 9.6747034,40.514462 10.032797,40.48902 11.356441,40.519491 L 30.974593,40.519491 C 32.206825,40.534726 32.483988,40.440837 32.70874,39.97372 C 32.989681,39.506602 32.867799,39.136 32.323106,38.183905 z "
-           style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3948);stroke-width:0.63829792;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      </g>
-      <g
-         style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4"
-         transform="matrix(0.555088,0,0,0.555052,7.749711,17.80196)"
-         id="g6498"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true">
-        <path
-           style="stroke:none"
-           d="M 23.9,36.5 C 22.6,36.5 21.6,35.5 21.6,34.2 C 21.6,32.8 22.5,31.9 23.9,31.9 C 25.3,31.9 26.1,32.8 26.2,34.2 C 26.2,35.5 25.3,36.5 23.9,36.5 L 23.9,36.5 z M 22.5,30.6 L 21.9,19.1 L 25.9,19.1 L 25.3,30.6 L 22.4,30.6 L 22.5,30.6 z "
-           id="path6500"
-           inkscape:r_cx="true"
-           inkscape:r_cy="true" />
-      </g>
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/document-new.png has changed
--- a/libgui/src/icons/document-new.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,448 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg249"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   sodipodi:docname="document-new.svg"
-   inkscape:export-filename="/home/jimmac/gfx/novell/pdes/trunk/docs/BIGmime-text.png"
-   inkscape:export-xdpi="240.00000"
-   inkscape:export-ydpi="240.00000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective69" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4542">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4544" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4546" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4542"
-       id="radialGradient4548"
-       cx="24.306795"
-       cy="42.07798"
-       fx="24.306795"
-       fy="42.07798"
-       r="15.821514"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,-6.310056e-16,30.08928)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop12513" />
-      <stop
-         style="stop-color:#fff520;stop-opacity:0.89108908;"
-         offset="0.50000000"
-         id="stop12517" />
-      <stop
-         style="stop-color:#fff300;stop-opacity:0.0000000;"
-         offset="1.0000000"
-         id="stop12514" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12512"
-       id="radialGradient278"
-       gradientUnits="userSpaceOnUse"
-       cx="55.000000"
-       cy="125.00000"
-       fx="55.000000"
-       fy="125.00000"
-       r="14.375000" />
-    <radialGradient
-       r="37.751713"
-       fy="3.7561285"
-       fx="8.8244190"
-       cy="3.7561285"
-       cx="8.8244190"
-       gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient15656"
-       xlink:href="#linearGradient269"
-       inkscape:collect="always" />
-    <radialGradient
-       r="86.708450"
-       fy="35.736916"
-       fx="33.966679"
-       cy="35.736916"
-       cx="33.966679"
-       gradientTransform="scale(0.960493,1.041132)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient15658"
-       xlink:href="#linearGradient259"
-       inkscape:collect="always" />
-    <radialGradient
-       r="38.158695"
-       fy="7.2678967"
-       fx="8.1435566"
-       cy="7.2678967"
-       cx="8.1435566"
-       gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient15668"
-       xlink:href="#linearGradient15662"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd2"
-       id="radialGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
-       cx="20.8921"
-       cy="114.5684"
-       fx="20.8921"
-       fy="114.5684"
-       r="5.256" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd3"
-       id="radialGradient2285"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
-       cx="20.8921"
-       cy="64.5679"
-       fx="20.8921"
-       fy="64.5679"
-       r="5.257" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.32941176"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-130.2425"
-     inkscape:cy="-6.4480487"
-     inkscape:current-layer="layer6"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="872"
-     inkscape:window-height="688"
-     inkscape:window-x="166"
-     inkscape:window-y="151"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>New Document</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Shadow"
-     id="layer6"
-     inkscape:groupmode="layer">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.165152e-2,0,0,1.485743e-2,43.0076,42.68539)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-  </g>
-  <g
-     id="layer1"
-     inkscape:label="Base"
-     inkscape:groupmode="layer"
-     style="display:inline">
-    <rect
-       ry="1.1490486"
-       y="3.6464462"
-       x="6.6035528"
-       height="40.920494"
-       width="34.875000"
-       id="rect15391"
-       style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-    <rect
-       rx="0.14904857"
-       ry="0.14904857"
-       y="4.5839462"
-       x="7.6660538"
-       height="38.946384"
-       width="32.775887"
-       id="rect15660"
-       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-    <g
-       id="g2270"
-       transform="translate(0.646447,-3.798933e-2)">
-      <g
-         transform="matrix(0.229703,0.000000,0.000000,0.229703,4.967081,4.244972)"
-         style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
-         id="g1440">
-        <radialGradient
-           gradientUnits="userSpaceOnUse"
-           fy="114.56840"
-           fx="20.892099"
-           r="5.2560000"
-           cy="114.56840"
-           cx="20.892099"
-           id="radialGradient1442">
-          <stop
-             id="stop1444"
-             style="stop-color:#F0F0F0"
-             offset="0" />
-          <stop
-             id="stop1446"
-             style="stop-color:#474747"
-             offset="1" />
-        </radialGradient>
-        <path
-           id="path1448"
-           d="M 23.428000,113.07000 C 23.428000,115.04300 21.828000,116.64200 19.855000,116.64200 C 17.881000,116.64200 16.282000,115.04200 16.282000,113.07000 C 16.282000,111.09600 17.882000,109.49700 19.855000,109.49700 C 21.828000,109.49700 23.428000,111.09700 23.428000,113.07000 z "
-           style="stroke:none" />
-        <radialGradient
-           gradientUnits="userSpaceOnUse"
-           fy="64.567902"
-           fx="20.892099"
-           r="5.2570000"
-           cy="64.567902"
-           cx="20.892099"
-           id="radialGradient1450">
-          <stop
-             id="stop1452"
-             style="stop-color:#F0F0F0"
-             offset="0" />
-          <stop
-             id="stop1454"
-             style="stop-color:#474747"
-             offset="1" />
-        </radialGradient>
-        <path
-           id="path1456"
-           d="M 23.428000,63.070000 C 23.428000,65.043000 21.828000,66.643000 19.855000,66.643000 C 17.881000,66.643000 16.282000,65.043000 16.282000,63.070000 C 16.282000,61.096000 17.882000,59.497000 19.855000,59.497000 C 21.828000,59.497000 23.428000,61.097000 23.428000,63.070000 z "
-           style="stroke:none" />
-      </g>
-      <path
-         id="path15570"
-         d="M 9.9950109,29.952326 C 9.9950109,30.405530 9.6274861,30.772825 9.1742821,30.772825 C 8.7208483,30.772825 8.3535532,30.405301 8.3535532,29.952326 C 8.3535532,29.498892 8.7210780,29.131597 9.1742821,29.131597 C 9.6274861,29.131597 9.9950109,29.499122 9.9950109,29.952326 z "
-         style="fill:url(#radialGradient2283);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
-      <path
-         id="path15577"
-         d="M 9.9950109,18.467176 C 9.9950109,18.920380 9.6274861,19.287905 9.1742821,19.287905 C 8.7208483,19.287905 8.3535532,18.920380 8.3535532,18.467176 C 8.3535532,18.013742 8.7210780,17.646447 9.1742821,17.646447 C 9.6274861,17.646447 9.9950109,18.013972 9.9950109,18.467176 z "
-         style="fill:url(#radialGradient2285);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       id="path15672"
-       d="M 11.505723,5.4942766 L 11.505723,43.400869"
-       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path15674"
-       d="M 12.500000,5.0205154 L 12.500000,43.038228"
-       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="new"
-     style="display:inline">
-    <path
-       sodipodi:type="arc"
-       style="color:#000000;fill:url(#radialGradient278);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.2500002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
-       id="path12511"
-       sodipodi:cx="55.000000"
-       sodipodi:cy="125.00000"
-       sodipodi:rx="14.375000"
-       sodipodi:ry="14.375000"
-       d="M 69.375000 125.00000 A 14.375000 14.375000 0 1 1  40.625000,125.00000 A 14.375000 14.375000 0 1 1  69.375000 125.00000 z"
-       transform="matrix(0.783292,0.000000,0.000000,0.783292,-6.340883,-86.65168)"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
-       inkscape:export-xdpi="33.852203"
-       inkscape:export-ydpi="33.852203" />
-  </g>
-</svg>
Binary file libgui/src/icons/document-open.png has changed
--- a/libgui/src/icons/document-open.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,535 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg97"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   sodipodi:docname="document-open.svg"
-   inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/snowdunes/gnome-fs-directory-accept.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective90" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         offset="0.0000000"
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
-      <stop
-         id="stop271"
-         offset="1.0000000"
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient269"
-       id="radialGradient8234"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0.000000,0.000000,1.046686,44.36453,-17.00717)"
-       cx="8.8244190"
-       cy="3.7561285"
-       fx="8.8244190"
-       fy="3.7561285"
-       r="37.751713" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         offset="0.0000000"
-         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#a8a8a8;stop-opacity:1;"
-         offset="0.5"
-         id="stop8238" />
-      <stop
-         id="stop261"
-         offset="1"
-         style="stop-color:#cdcdcd;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient259"
-       id="linearGradient8236"
-       x1="25.875"
-       y1="10.625"
-       x2="25.25"
-       y2="30.875"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,1.238806,0.000000,-7.880597)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient13842">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop13844" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop13846" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         style="stop-color:#6194cb;stop-opacity:1;"
-         offset="0"
-         id="stop9768" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="1"
-         id="stop9770" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient148">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.13402061;"
-         offset="0.0000000"
-         id="stop149" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.051546391;"
-         offset="1.0000000"
-         id="stop150" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient335">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop336" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.0000000;"
-         offset="1.0000000"
-         id="stop337" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         style="stop-color:#a0a0a0;stop-opacity:1;"
-         offset="0"
-         id="stop1790" />
-      <stop
-         style="stop-color:#a8a8a8;stop-opacity:1;"
-         offset="1"
-         id="stop1791" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient137">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.70059878;"
-         offset="0.0000000"
-         id="stop138" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.0000000;"
-         offset="1.0000000"
-         id="stop139" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient335"
-       id="linearGradient155"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.421537,0.703464)"
-       x1="19.116116"
-       y1="28.946041"
-       x2="19.426924"
-       y2="51.912693" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient148"
-       id="linearGradient156"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.535299,0.000000,0.000000,0.651339,3.451418,2.448000)"
-       x1="14.899379"
-       y1="27.059643"
-       x2="22.715446"
-       y2="41.836895" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient137"
-       id="linearGradient158"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.462696,0.000000,6.907908e-2,0.683669,0.000000,0.000000)"
-       x1="5.2657914"
-       y1="18.725863"
-       x2="8.2122240"
-       y2="52.625851" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1789"
-       id="radialGradient159"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.015635,0.000000,0.103105,1.000512,0.000000,-8.369458e-2)"
-       cx="26.106777"
-       cy="38.195114"
-       fx="26.106777"
-       fy="38.195114"
-       r="32.259769" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9766"
-       id="linearGradient13162"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,1.022118,52.05694,-1.323026)"
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient13842"
-       id="linearGradient13848"
-       x1="22.25"
-       y1="37.625"
-       x2="19.75"
-       y2="14.875"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-123.73861"
-     inkscape:cy="37.388301"
-     inkscape:current-layer="layer3"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1027"
-     inkscape:window-height="818"
-     inkscape:window-x="407"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Folder Icon Accept</dc:title>
-        <dc:date>2005-01-31</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <dc:description>Active state - when files are being dragged to.</dc:description>
-        <dc:publisher>
-          <cc:Agent>
-            <dc:title>Novell, Inc.</dc:title>
-          </cc:Agent>
-        </dc:publisher>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Folder"
-     inkscape:groupmode="layer" />
-  <g
-     inkscape:label="Open"
-     id="layer3"
-     inkscape:groupmode="layer">
-    <path
-       sodipodi:nodetypes="ccccccssssccc"
-       style="color:#000000;fill:url(#radialGradient159);fill-opacity:1;fill-rule:nonzero;stroke:#5a5a5a;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path2375"
-       d="M 4.6200285,38.651015 C 4.6618365,39.07147 5.1174141,39.491924 5.5311838,39.491924 L 36.667346,39.491924 C 37.081116,39.491924 37.453078,39.07147 37.41127,38.651015 L 34.714653,11.531728 C 34.672845,11.111274 34.217267,10.69082 33.803498,10.69082 L 21.080082,10.69082 C 20.489536,10.69082 19.870999,10.311268 19.677221,9.7304849 L 18.574219,6.4246085 C 18.404967,5.9173308 18.027069,5.6888138 17.259746,5.6888138 L 2.3224188,5.6888138 C 1.9086492,5.6888138 1.5366876,6.109268 1.5784956,6.529722 L 4.6200285,38.651015 z " />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 3.3386019,17.533487 L 34.488461,17.533487"
-       id="path13113"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.3301525,37.533487 L 35.317907,37.533487"
-       id="path13160"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path13139"
-       d="M 5.3301525,35.533487 L 35.317907,35.533487"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.165152e-2,0,0,1.903841e-2,42.41538,36.93372)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-    <path
-       sodipodi:nodetypes="ccccccsscsscccc"
-       id="path2380"
-       d="M 6.1717518,38.418674 C 6.2031078,38.729001 6.0171270,38.935886 5.6963478,38.832443 L 5.6963478,38.832443 C 5.3755686,38.729001 5.1477798,38.522116 5.1164238,38.211789 L 2.0868572,6.8445942 C 2.0555012,6.5342670 2.2434512,6.3468711 2.5537784,6.3468711 L 17.303531,6.2554251 C 17.834815,6.2521313 18.042960,6.3087310 18.183330,6.7726371 C 18.183330,6.7726371 19.268704,9.8854350 19.429564,10.470742 L 17.873968,7.5537061 C 17.608788,7.0564434 17.275224,7.1399365 16.901178,7.1399365 L 3.7717775,7.1399365 C 3.4614503,7.1399365 3.2754695,7.3468213 3.3068255,7.6571485 L 6.2856462,38.522116 L 6.1717518,38.418674 z "
-       style="color:#000000;fill:url(#linearGradient158);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.1734115;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path13145"
-       d="M 2.3052333,7.533487 L 17.088967,7.533487"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path13115"
-       d="M 2.7573333,11.533487 L 33.496214,11.533487"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <g
-       inkscape:export-ydpi="74.800003"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       transform="matrix(1.034424,0.000000,0.104520,1.034424,-10.03248,2.631914)"
-       id="g2381"
-       style="fill:#ffffff;fill-opacity:0.58031088;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;display:block">
-      <path
-         sodipodi:nodetypes="cscscs"
-         id="path2382"
-         d="M 41.785743,9.0363862 C 41.795369,8.5618034 41.800932,8.3118806 41.362350,8.3121830 L 28.806530,8.3208402 C 28.506530,8.3208402 28.481916,8.1776341 28.806530,8.3208402 C 29.131144,8.4640463 30.053628,8.9791114 30.989227,9.0218349 C 30.989227,9.0218349 41.785704,9.0382983 41.785743,9.0363862 z "
-         style="stroke:none" />
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       id="path13123"
-       d="M 3.1628954,15.533487 L 33.993452,15.533487"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.1594716,33.533487 L 35.147226,33.533487"
-       id="path13121"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path13119"
-       d="M 4.8658086,31.533487 L 34.974533,31.533487"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 4.6336367,29.533487 L 34.802847,29.533487"
-       id="path13135"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path13137"
-       d="M 4.4629557,27.533487 L 34.632166,27.533487"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 4.2556718,25.533487 L 34.460793,25.533487"
-       id="path13143"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path13133"
-       d="M 4.0235198,23.533487 L 34.289101,23.533487"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 3.8528389,21.533487 L 34.11842,21.533487"
-       id="path13117"
-       sodipodi:nodetypes="cc" />
-    <g
-       inkscape:export-ydpi="74.800003"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       transform="matrix(1.034424,0,0.10452,1.034424,-10.03248,2.631914)"
-       id="g1853"
-       style="fill:#ffffff;fill-opacity:0.5803109;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4;display:block">
-      <path
-         sodipodi:nodetypes="cscscs"
-         id="path1855"
-         d="M 41.785743,9.0363862 C 41.795369,8.5618034 41.800932,8.3118806 41.36235,8.312183 L 28.80653,8.3208402 C 28.50653,8.3208402 28.481916,8.1776341 28.80653,8.3208402 C 29.131144,8.4640463 30.053628,8.9791114 30.989227,9.0218349 C 30.989227,9.0218349 41.785704,9.0382983 41.785743,9.0363862 z "
-         style="stroke:none" />
-    </g>
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 2.9642313,13.533487 L 33.990735,13.533487"
-       id="path13127"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path13125"
-       d="M 3.6514189,19.533487 L 33.947215,19.533487"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 2.5242572,9.5334871 L 17.805073,9.5334871"
-       id="path13147"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.39204545;color:#000000;fill:url(#linearGradient13848);fill-opacity:1.0;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 34.375,14.125 L 37,38.75 L 6,38.875 C 6,38.875 4.125,14.125 4.125,14.125 C 4.125,14.125 34.5,14.125 34.375,14.125 z "
-       id="path13840"
-       sodipodi:nodetypes="cccsc" />
-    <path
-       style="opacity:1;color:#000000;fill:url(#linearGradient8236);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8234);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 43.375,2.4944033 C 43.875,19.373135 34.299937,21.022879 37.362437,31.494661 C 37.362437,31.494661 5.875,32.380598 5.875,32.380598 C 4,19.527986 14.25,11.166045 11.25,2.649254 L 43.375,2.4944033 z "
-       id="path8230"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 15.4375,6.5624999 L 39,6.5624999"
-       id="path8277"
-       sodipodi:nodetypes="cc" />
-    <path
-       inkscape:export-ydpi="74.800003"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       sodipodi:nodetypes="cccsscccscc"
-       id="path2401"
-       d="M 5.7785654,39.065997 C 5.8820074,39.277466 6.0888914,39.488925 6.3992173,39.488925 L 39.70767,39.488925 C 39.914562,39.488925 40.228834,39.36262 40.415844,39.224574 C 40.946246,38.833039 41.070704,38.612189 41.308626,38.251107 C 43.756752,34.535647 47.113767,18.974214 47.113767,18.974214 C 47.217209,18.762754 47.010326,18.551294 46.7,18.551294 L 11.776358,18.551294 C 11.466032,18.551294 10.120393,34.658624 6.9133592,37.838317 L 5.6751235,39.065997 L 5.7785654,39.065997 z "
-       style="opacity:1;color:#000000;fill:url(#linearGradient13162);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path8279"
-       d="M 15.356073,8.5624999 L 35.08142,8.5624999"
-       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <path
-       id="path323"
-       d="M 13.134476,20.138641 C 12.361729,25.129398 11.633175,29.147884 10.418486,33.652505 C 12.804971,32.945398 17.534602,30.448000 27.534602,30.448000 C 37.534602,30.448000 44.258175,21.199301 45.186253,20.094447 L 13.134476,20.138641 z "
-       style="fill:url(#linearGradient156);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 15.143007,10.5625 L 39.457831,10.5625"
-       id="path8281"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient155);stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;opacity:0.52272727"
-       d="M 45.820083,19.687500 L 12.661612,19.687500 C 12.661612,19.687500 10.513864,35.707107 7.9393398,37.928078 C 16.060417,37.928078 39.510511,37.879442 39.530330,37.879442 C 41.281989,37.879442 44.437971,25.243248 45.820083,19.687500 z "
-       id="path324"
-       sodipodi:nodetypes="cccsc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path8283"
-       d="M 14.398767,12.5625 L 38.252159,12.5625"
-       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <path
-       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.00000048;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 13.629028,14.5625 L 36.975331,14.5625"
-       id="path8285"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path8287"
-       d="M 12.520679,16.5625 L 31.16684,16.5625"
-       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <path
-       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 6.375,31.75 C 5.1336344,19.511961 13.5625,12.6875 12,2.9999999 L 42.875,2.9999999 L 12.875,3.6249999 C 14.125,13.1875 6.6786165,18.271447 6.375,31.75 z "
-       id="path8289"
-       sodipodi:nodetypes="ccccc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="pattern" />
-</svg>
Binary file libgui/src/icons/document-print.png has changed
--- a/libgui/src/icons/document-print.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,532 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="document-print.svg"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg2994"
-   height="48px"
-   width="48px"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective84" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7612">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop7614" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop7616" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7612"
-       id="radialGradient7618"
-       cx="24.000000"
-       cy="41.875000"
-       fx="24.000000"
-       fy="41.875000"
-       r="19.125000"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,0.000000,27.91667)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient4762">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.12371134;"
-         offset="0.0000000"
-         id="stop4764" />
-      <stop
-         id="stop4768"
-         offset="0.10344828"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4766" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4741">
-      <stop
-         id="stop4743"
-         offset="0.0000000"
-         style="stop-color:#dcdcda;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4745"
-         offset="1.0000000"
-         style="stop-color:#bab9b7;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4733">
-      <stop
-         id="stop4735"
-         offset="0.0000000"
-         style="stop-color:#000000;stop-opacity:0.23711340;" />
-      <stop
-         id="stop4737"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4698">
-      <stop
-         id="stop4700"
-         offset="0.0000000"
-         style="stop-color:#fffffd;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#bbbbb9;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop4706" />
-      <stop
-         id="stop4702"
-         offset="1.0000000"
-         style="stop-color:#000000;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4688">
-      <stop
-         id="stop4690"
-         offset="0.0000000"
-         style="stop-color:#666666;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4692"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4680"
-       inkscape:collect="always">
-      <stop
-         id="stop4682"
-         offset="0"
-         style="stop-color:#f7f6f5;stop-opacity:1;" />
-      <stop
-         id="stop4684"
-         offset="1"
-         style="stop-color:#f7f6f5;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4668">
-      <stop
-         id="stop4670"
-         offset="0"
-         style="stop-color:#8e8d87;stop-opacity:1;" />
-      <stop
-         style="stop-color:#cbc9c1;stop-opacity:1.0000000;"
-         offset="0.27586207"
-         id="stop4676" />
-      <stop
-         id="stop4672"
-         offset="1.0000000"
-         style="stop-color:#8e8d87;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         offset="0.0000000"
-         style="stop-color:#e0e0e0;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.40546969"
-         id="stop4886" />
-      <stop
-         style="stop-color:#cdcdcd;stop-opacity:1.0000000;"
-         offset="0.53448278"
-         id="stop4884" />
-      <stop
-         id="stop261"
-         offset="1.0000000"
-         style="stop-color:#494949;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
-      <stop
-         id="stop15666"
-         offset="1.0000000"
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <radialGradient
-       r="2.1227016"
-       fy="26.925594"
-       fx="9.1295490"
-       cy="26.925594"
-       cx="9.1295490"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient1433"
-       xlink:href="#linearGradient4698"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="72.064316"
-       x2="9.9128132"
-       y1="57.227650"
-       x1="9.8698082"
-       gradientTransform="matrix(2.772086,0.000000,0.000000,0.360739,0.618718,2.883883)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1447"
-       xlink:href="#linearGradient4733"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="54.136139"
-       x2="10.338233"
-       y1="64.652260"
-       x1="10.338233"
-       gradientTransform="matrix(2.369844,0.000000,0.000000,0.421969,0.000000,2.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1451"
-       xlink:href="#linearGradient4680"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="62.282467"
-       x2="9.7052784"
-       y1="70.724976"
-       x1="9.7316532"
-       gradientTransform="matrix(2.369844,0.000000,0.000000,0.421969,0.000000,2.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1453"
-       xlink:href="#linearGradient4688"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="19.337463"
-       x2="20.717800"
-       y1="25.140253"
-       x1="20.771229"
-       gradientTransform="matrix(1.198769,0,0,0.853565,-0.143086,2.034513)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1456"
-       xlink:href="#linearGradient15662"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="25.247311"
-       x2="24.789707"
-       y1="3.6785457"
-       x1="25.056711"
-       gradientTransform="matrix(0.944939,0,0,1.076147,6.844577e-2,4.093177)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1459"
-       xlink:href="#linearGradient259"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="58.831264"
-       x2="15.487823"
-       y1="32.539238"
-       x1="15.387969"
-       gradientTransform="matrix(1.490161,0,0,0.668741,8.895132e-2,2)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1464"
-       xlink:href="#linearGradient4762"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="88.294930"
-       x2="18.972126"
-       y1="88.294930"
-       x1="1.8456430"
-       gradientTransform="matrix(2.291824,0,0,0.434269,8.855179e-2,2)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1468"
-       xlink:href="#linearGradient4741"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="88.294933"
-       x2="18.972126"
-       y1="88.294933"
-       x1="1.8456431"
-       gradientTransform="matrix(2.30272,0,0,0.437918,0,0.584034)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1471"
-       xlink:href="#linearGradient4668"
-       inkscape:collect="always" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="160"
-     inkscape:window-x="331"
-     inkscape:window-height="688"
-     inkscape:window-width="872"
-     inkscape:guide-bbox="true"
-     showguides="true"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer1"
-     inkscape:cy="-18.264187"
-     inkscape:cx="-72.591911"
-     inkscape:zoom="1"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.090196078"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:showpageshadow="false"
-     fill="#729fcf" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Print Document</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>document</rdf:li>
-            <rdf:li>lpr</rdf:li>
-            <rdf:li>print</rdf:li>
-            <rdf:li>local</rdf:li>
-            <rdf:li>laser</rdf:li>
-            <rdf:li>bubblejet</rdf:li>
-            <rdf:li>inkjet</rdf:li>
-            <rdf:li>print</rdf:li>
-            <rdf:li>output</rdf:li>
-            <rdf:li>cups</rdf:li>
-            <rdf:li>lpd</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1"
-     id="layer1">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.411405e-2,0,0,1.929202e-2,45.48953,39.75228)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-    <rect
-       ry="1.7115477"
-       rx="1.7115483"
-       y="36.004189"
-       x="4.75"
-       height="6.4915943"
-       width="38.4375"
-       id="rect4652"
-       style="fill:url(#linearGradient1471);fill-opacity:1;stroke:#595959;stroke-width:0.99999982;stroke-miterlimit:4;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="cssssssssssss"
-       id="rect4609"
-       d="M 7.1308961,21.5 L 40.870615,21.5 C 41.255661,21.5 41.747648,21.788155 42.051049,22.223919 C 42.354451,22.659684 43.787518,24.83394 44.109448,25.297964 C 44.431378,25.761987 44.502397,26.201852 44.502397,26.774049 L 44.502397,38.850951 C 44.502397,39.764524 43.770402,40.5 42.861152,40.5 L 5.1403596,40.5 C 4.2311094,40.5 3.4991138,39.764524 3.4991138,38.850951 L 3.4991138,26.774049 C 3.4991138,26.280031 3.6002798,25.571641 3.9455202,25.120718 C 4.3811666,24.551713 5.5498664,22.57277 5.8581276,22.153118 C 6.1663887,21.733467 6.7324461,21.5 7.1308961,21.5 z "
-       style="color:#000000;fill:url(#linearGradient1468);fill-opacity:1;fill-rule:nonzero;stroke:#676767;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cssssssss"
-       id="path4718"
-       d="M 7.705278,21.975532 C 7.20729,21.975532 6.5669691,22.107308 6.3043987,22.511224 L 4.4657443,25.339651 C 4.169761,25.794966 4.4993705,26.868141 5.3900051,26.868141 L 42.678553,26.868141 C 43.883282,26.868141 43.8868,25.858073 43.602814,25.428039 L 41.851714,22.776389 C 41.534204,22.295589 41.418956,21.975532 40.625945,21.975532 L 7.705278,21.975532 z "
-       style="fill:#fbfbfb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1464);stroke-width:0.94696701;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 7.6002951,22.445756 L 40.374658,22.445756 C 40.739745,22.445756 41.206233,22.718629 41.493909,23.131283 C 41.781585,23.543938 42.788049,25.160945 43.093293,25.60036 C 43.398536,26.039775 43.528159,26.456312 43.528159,26.998164 L 43.528159,38.279261 C 43.528159,39.144385 43.394653,39.528356 42.532529,39.528356 L 5.530506,39.528356 C 4.6683828,39.528356 4.472593,39.144385 4.472593,38.279261 L 4.472593,26.998164 C 4.472593,26.530345 4.6930819,25.859523 5.0204282,25.432514 C 5.4334949,24.893685 6.1012112,23.461633 6.393495,23.064237 C 6.6857789,22.666841 7.222497,22.445756 7.6002951,22.445756 z "
-       id="path4750"
-       sodipodi:nodetypes="cssssssssssss" />
-    <path
-       sodipodi:nodetypes="ccccccc"
-       id="rect15391"
-       d="M 11.68177,4.4977642 L 36.313839,4.4977642 C 36.964072,4.4977642 37.487546,5.007949 37.487546,5.6416762 L 37.487546,24.348117 L 10.508063,24.348117 L 10.508063,5.6416762 C 10.508063,5.007949 11.031536,4.4977642 11.68177,4.4977642 z "
-       style="color:#000000;fill:url(#linearGradient1459);fill-opacity:1;fill-rule:nonzero;stroke:#898989;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <rect
-       style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1456);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       id="rect15660"
-       width="25.000576"
-       height="18.836374"
-       x="11.498513"
-       y="5.4992466"
-       ry="0.17677675"
-       rx="0.17677672" />
-    <rect
-       ry="1.7115483"
-       rx="1.7115483"
-       y="27.375000"
-       x="6.8750000"
-       height="5.1875000"
-       width="33.750000"
-       id="rect4678"
-       style="fill:url(#linearGradient1451);fill-opacity:1.0000000;stroke:url(#linearGradient1453);stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
-    <path
-       transform="translate(0.000000,2.000000)"
-       d="M 10.871767 27.626486 A 1.2816310 1.2816310 0 1 1  8.3085046,27.626486 A 1.2816310 1.2816310 0 1 1  10.871767 27.626486 z"
-       sodipodi:ry="1.2816310"
-       sodipodi:rx="1.2816310"
-       sodipodi:cy="27.626486"
-       sodipodi:cx="9.5901356"
-       id="path4696"
-       style="fill:url(#radialGradient1433);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="csscssssc"
-       id="path4731"
-       d="M 11.743718,25.416053 L 37.306218,25.478553 C 37.993716,25.480234 38.294038,25.107558 38.243718,24.478553 L 38.118718,22.916053 L 39.984835,22.916053 C 40.797335,22.916053 40.975035,23.108616 41.172335,23.478553 L 41.672335,24.416053 C 42.199130,25.403793 43.483508,26.390165 42.170495,26.390165 C 37.667784,26.390165 13.993718,26.041053 11.743718,25.416053 z "
-       style="fill:url(#linearGradient1447);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.36571429" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
-       d="M 42.9375,26.5 L 4.8125,26.5"
-       id="path4760"
-       sodipodi:nodetypes="cc" />
-    <g
-       transform="translate(0.000000,2.000000)"
-       style="opacity:0.43575415"
-       id="g4849">
-      <rect
-         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="rect4831"
-         width="19.000000"
-         height="1.0000000"
-         x="14.000000"
-         y="5.0000000" />
-      <rect
-         y="7.0000000"
-         x="14.000000"
-         height="1.0000000"
-         width="19.000000"
-         id="rect4833"
-         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="rect4835"
-         width="19.000000"
-         height="1.0000000"
-         x="14.000000"
-         y="9.0000000" />
-      <rect
-         y="11.000000"
-         x="14.000000"
-         height="1.0000000"
-         width="19.000000"
-         id="rect4837"
-         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="rect4839"
-         width="11.000000"
-         height="1.0000000"
-         x="14.000000"
-         y="13.000000" />
-    </g>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="arrow">
-    <path
-       sodipodi:nodetypes="cccccccc"
-       id="path8643"
-       d="M 21.02159,20.989431 L 27.989391,20.989431 L 27.989391,16.064984 L 31,16.064984 L 24.553756,8 L 17.435622,15.986875 L 21.023684,15.986875 L 21.02159,20.989431 z "
-       style="opacity:1;color:#000000;fill:#a7a7a7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999958;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-  </g>
-</svg>
Binary file libgui/src/icons/document-save-as.png has changed
--- a/libgui/src/icons/document-save-as.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,663 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="document-save-as.svg"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg2913"
-   height="48px"
-   width="48px"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective111" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       id="linearGradient6965">
-      <stop
-         style="stop-color:#dddddd;stop-opacity:1;"
-         offset="0"
-         id="stop6967" />
-      <stop
-         style="stop-color:#fdfdfd;stop-opacity:1;"
-         offset="1"
-         id="stop6969" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6925">
-      <stop
-         style="stop-color:#204a87;stop-opacity:1;"
-         offset="0"
-         id="stop6927" />
-      <stop
-         style="stop-color:#204a87;stop-opacity:0;"
-         offset="1"
-         id="stop6929" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6901">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop6903" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:0;"
-         offset="1"
-         id="stop6905" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4991">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4993" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4995" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4991"
-       id="radialGradient4997"
-       cx="23.447077"
-       cy="6.4576745"
-       fx="23.447077"
-       fy="6.4576745"
-       r="19.0625"
-       gradientTransform="matrix(-1.314471,-1.006312e-2,-1.022964e-2,1.336221,46.22108,-4.909887)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient2187"
-       inkscape:collect="always">
-      <stop
-         id="stop2189"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop2191"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2187"
-       id="linearGradient1764"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.914114,1.412791e-16,-1.412791e-16,0.914114,-3.868698,-2.706902)"
-       x1="33.059906"
-       y1="27.394117"
-       x2="12.624337"
-       y2="12.583769" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient8668"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737"
-       gradientTransform="matrix(1.000000,-7.816467e-32,-1.132409e-32,0.536723,-5.897962e-14,16.87306)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient2555">
-      <stop
-         id="stop2557"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#e6e6e6;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop2561" />
-      <stop
-         id="stop2563"
-         offset="0.75000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#e1e1e1;stop-opacity:1.0000000;"
-         offset="0.84166664"
-         id="stop2565" />
-      <stop
-         id="stop2559"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4274">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.25490198;"
-         offset="0.0000000"
-         id="stop4276" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4278" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4264"
-       inkscape:collect="always">
-      <stop
-         id="stop4266"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4268"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4254"
-       inkscape:collect="always">
-      <stop
-         id="stop4256"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4258"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4244">
-      <stop
-         id="stop4246"
-         offset="0.0000000"
-         style="stop-color:#e4e4e4;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4248"
-         offset="1.0000000"
-         style="stop-color:#d3d3d3;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4236"
-       inkscape:collect="always">
-      <stop
-         id="stop4238"
-         offset="0"
-         style="stop-color:#eeeeee;stop-opacity:1;" />
-      <stop
-         id="stop4240"
-         offset="1"
-         style="stop-color:#eeeeee;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4228">
-      <stop
-         id="stop4230"
-         offset="0.0000000"
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4232"
-         offset="1.0000000"
-         style="stop-color:#9f9f9f;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4184">
-      <stop
-         id="stop4186"
-         offset="0.0000000"
-         style="stop-color:#838383;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4188"
-         offset="1.0000000"
-         style="stop-color:#bbbbbb;stop-opacity:0.0000000;" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(0.795493,3.799180)"
-       y2="35.281250"
-       x2="24.687500"
-       y1="35.281250"
-       x1="7.0625000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4209"
-       xlink:href="#linearGradient4184"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="40.943935"
-       x2="36.183067"
-       y1="28.481176"
-       x1="7.6046205"
-       id="linearGradient4234"
-       xlink:href="#linearGradient4228"
-       inkscape:collect="always"
-       gradientTransform="translate(0.000000,5.125000)" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="33.758667"
-       x2="12.221823"
-       y1="37.205811"
-       x1="12.277412"
-       id="linearGradient4242"
-       xlink:href="#linearGradient4236"
-       inkscape:collect="always"
-       gradientTransform="translate(0.000000,5.125000)" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.286242,0.781698,-0.710782,1.169552,-2.354348,0.248140)"
-       r="20.935817"
-       fy="2.9585190"
-       fx="15.571491"
-       cy="2.9585190"
-       cx="15.571491"
-       id="radialGradient4250"
-       xlink:href="#linearGradient4244"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="47.620636"
-       x2="44.096100"
-       y1="4.4331360"
-       x1="12.378357"
-       id="linearGradient4260"
-       xlink:href="#linearGradient4254"
-       inkscape:collect="always"
-       gradientTransform="translate(0.000000,5.125000)" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.651032,-2.885063e-16,9.455693)"
-       r="23.555494"
-       fy="27.096155"
-       fx="23.201941"
-       cy="27.096155"
-       cx="23.201941"
-       id="radialGradient4270"
-       xlink:href="#linearGradient4264"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="26.357183"
-       x2="23.688078"
-       y1="11.318835"
-       x1="23.688078"
-       id="linearGradient4272"
-       xlink:href="#linearGradient4274"
-       inkscape:collect="always"
-       gradientTransform="translate(0.000000,5.125000)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2555"
-       id="linearGradient2553"
-       x1="33.431175"
-       y1="31.964777"
-       x2="21.747974"
-       y2="11.780679"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6901"
-       id="linearGradient6907"
-       x1="14.751649"
-       y1="15.868432"
-       x2="8.8953285"
-       y2="16.743431"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6925"
-       id="linearGradient6931"
-       x1="12.25"
-       y1="18.25"
-       x2="7"
-       y2="21.118431"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6965"
-       id="linearGradient6971"
-       x1="28.061466"
-       y1="31.431349"
-       x2="28.061466"
-       y2="36.437492"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="999"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer2"
-     inkscape:cy="15.12998"
-     inkscape:cx="-21.21754"
-     inkscape:zoom="2.8284271"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.22745098"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:showpageshadow="false"
-     fill="#3465a4"
-     stroke="#204a87" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Save As</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>hdd</rdf:li>
-            <rdf:li>hard drive</rdf:li>
-            <rdf:li>save as</rdf:li>
-            <rdf:li>io</rdf:li>
-            <rdf:li>store</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:identifier />
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="pix"
-     id="layer2"
-     inkscape:groupmode="layer">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.411405e-2,0,0,1.929202e-2,45.48953,41.75228)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-    <path
-       sodipodi:nodetypes="cccsccccccccc"
-       id="path4196"
-       d="M 11.28569,13.087628 C 10.66069,13.087628 10.254441,13.377808 10.004442,13.931381 C 10.004441,13.931381 3.5356915,31.034938 3.5356915,31.034938 C 3.5356915,31.034938 3.2856915,31.706497 3.2856915,32.816188 C 3.2856915,32.816188 3.2856915,42.466156 3.2856915,42.466156 C 3.2856915,43.548769 3.943477,44.091158 4.9419415,44.091156 L 43.50444,44.091156 C 44.489293,44.091156 45.09819,43.372976 45.09819,42.247406 L 45.09819,32.597438 C 45.09819,32.597438 45.204153,31.827015 45.00444,31.284938 L 38.28569,14.087631 C 38.101165,13.575725 37.648785,13.099533 37.16069,13.087628 L 11.28569,13.087628 z "
-       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#535353;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="ccccccccc"
-       id="path4170"
-       d="M 3.2735915,32.121812 L 4.0381936,31.429597 L 41.647883,31.492097 L 45.11029,31.809395 L 45.11029,42.247927 C 45.11029,43.373496 44.503272,44.091258 43.518419,44.091258 L 4.9354314,44.091258 C 3.9369667,44.091258 3.2735915,43.549207 3.2735915,42.466594 L 3.2735915,32.121812 z "
-       style="fill:url(#linearGradient4234);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02044296px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="csccccccs"
-       id="path3093"
-       d="M 3.5490842,31.039404 C 2.8347985,32.50369 3.5484686,33.432261 4.5847985,33.432261 C 4.5847985,33.432261 43.584797,33.432261 43.584797,33.432261 C 44.703844,33.408451 45.430035,32.420356 45.013368,31.289403 L 38.299082,14.078704 C 38.114558,13.566798 37.64432,13.090606 37.156225,13.078701 L 11.299083,13.078701 C 10.674083,13.078701 10.263369,13.382274 10.01337,13.935847 C 10.01337,13.935847 3.5490842,31.039404 3.5490842,31.039404 z "
-       style="fill:url(#radialGradient4250);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <rect
-       y="36.299183"
-       x="7.857996"
-       height="5.5625"
-       width="17.625"
-       id="rect4174"
-       style="opacity:1;color:#000000;fill:url(#linearGradient4209);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.40899992;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cscc"
-       id="path4194"
-       d="M 7.8579947,41.86168 C 7.8579947,41.86168 7.8579947,37.850195 7.8579947,37.850195 C 9.6935221,41.029421 16.154485,41.86168 20.795492,41.86168 C 20.795492,41.86168 7.8579947,41.86168 7.8579947,41.86168 z "
-       style="opacity:0.81142853;fill:url(#linearGradient4242);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="cccccccc"
-       id="path4201"
-       d="M 44.796162,30.753688 C 44.859684,32.003662 44.382159,33.069528 43.474046,33.097438 C 43.474046,33.097438 5.3553296,33.097437 5.3553297,33.097438 C 4.0660978,33.097438 3.4875937,32.772491 3.271279,32.229382 C 3.3630404,33.173714 4.0970964,33.878688 5.3553297,33.878688 C 5.3553296,33.878687 43.474046,33.878688 43.474046,33.878688 C 44.550053,33.845617 45.226851,32.454664 44.82621,30.883897 L 44.796162,30.753688 z "
-       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path4211"
-       d="M 10.96875,15.28125 C 10.922675,15.481571 10.78125,15.668047 10.78125,15.875 C 10.78125,16.823605 11.37223,17.664474 12.125,18.46875 C 12.365268,18.314675 12.490117,18.114342 12.75,17.96875 C 11.809691,17.152746 11.196604,16.252168 10.96875,15.28125 z M 37.625,15.28125 C 37.396273,16.250866 36.782988,17.153676 35.84375,17.96875 C 36.117894,18.122332 36.247738,18.33699 36.5,18.5 C 37.257262,17.693344 37.8125,16.826956 37.8125,15.875 C 37.8125,15.668047 37.670906,15.481571 37.625,15.28125 z M 39.8125,23.71875 C 39.198709,27.758861 32.513887,30.96875 24.28125,30.96875 C 16.068996,30.968751 9.4211001,27.775964 8.78125,23.75 C 8.7488928,23.947132 8.65625,24.141882 8.65625,24.34375 C 8.6562503,28.661697 15.645354,32.187501 24.28125,32.1875 C 32.917146,32.1875 39.937499,28.661698 39.9375,24.34375 C 39.9375,24.130826 39.848449,23.926394 39.8125,23.71875 z "
-       style="opacity:0.69142857;color:#000000;fill:url(#linearGradient4272);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       transform="translate(8.838843e-2,5.301780)"
-       d="M 8.5736699 25.593554 A 1.3700194 1.016466 0 1 1  5.833631,25.593554 A 1.3700194 1.016466 0 1 1  8.5736699 25.593554 z"
-       sodipodi:ry="1.016466"
-       sodipodi:rx="1.3700194"
-       sodipodi:cy="25.593554"
-       sodipodi:cx="7.2036505"
-       id="path4224"
-       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.45762706;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.45762706;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path4226"
-       sodipodi:cx="7.2036505"
-       sodipodi:cy="25.593554"
-       sodipodi:rx="1.3700194"
-       sodipodi:ry="1.016466"
-       d="M 8.5736699 25.593554 A 1.3700194 1.016466 0 1 1  5.833631,25.593554 A 1.3700194 1.016466 0 1 1  8.5736699 25.593554 z"
-       transform="translate(33.96705,5.213390)" />
-    <path
-       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 11.642515,13.540723 C 11.040823,13.540723 10.649724,13.820081 10.409049,14.35301 C 10.409048,14.35301 3.9940341,30.943732 3.9940341,30.943732 C 3.9940341,30.943732 3.7533573,31.590247 3.7533573,32.658555 C 3.7533573,32.658555 3.7533573,41.948651 3.7533573,41.948651 C 3.7533573,43.303391 4.1974134,43.57555 5.3478414,43.57555 L 43.034746,43.57555 C 44.357872,43.57555 44.569062,43.259153 44.569062,41.738058 L 44.569062,32.447962 C 44.569062,32.447962 44.671072,31.706271 44.478807,31.184409 L 37.885616,14.378434 C 37.707973,13.885617 37.334964,13.552184 36.865071,13.540723 L 11.642515,13.540723 z "
-       id="path4252"
-       sodipodi:nodetypes="cccsccccccccc" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
-       d="M 40.5,36.554166 L 40.5,41.575101"
-       id="path4282" />
-    <path
-       id="path4284"
-       d="M 38.5,36.613943 L 38.5,41.634878"
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
-       d="M 36.5,36.613943 L 36.5,41.634878"
-       id="path4286" />
-    <path
-       id="path4288"
-       d="M 34.5,36.613943 L 34.5,41.634878"
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
-       d="M 32.5,36.613943 L 32.5,41.634878"
-       id="path4290" />
-    <path
-       id="path4292"
-       d="M 30.5,36.613943 L 30.5,41.634878"
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
-    <path
-       id="path4294"
-       d="M 39.5,36.604065 L 39.5,41.625"
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 37.5,36.663842 L 37.5,41.684777"
-       id="path4296" />
-    <path
-       id="path4298"
-       d="M 35.5,36.663842 L 35.5,41.684777"
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 33.5,36.663842 L 33.5,41.684777"
-       id="path4300" />
-    <path
-       id="path4302"
-       d="M 31.5,36.663842 L 31.5,41.684777"
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path4572"
-       d="M 7.875,36.3125 L 7.875,41.84375 L 20.4375,41.84375 L 8.21875,41.5 L 7.875,36.3125 z "
-       style="opacity:0.43999999;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.20571427;color:#000000;fill:url(#linearGradient2553);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.93365198;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.42372879;visibility:visible;display:inline;overflow:visible"
-       id="path2545"
-       sodipodi:cx="25"
-       sodipodi:cy="19.5625"
-       sodipodi:rx="14.875"
-       sodipodi:ry="6.6875"
-       d="M 39.875 19.5625 A 14.875 6.6875 0 1 1  10.125,19.5625 A 14.875 6.6875 0 1 1  39.875 19.5625 z"
-       transform="matrix(1.037815,0.000000,0.000000,1.060747,-1.632878,3.030370)" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer1"
-     inkscape:label="down">
-    <path
-       transform="matrix(1.130190,1.178179e-16,7.918544e-17,-0.759601,-3.909725,53.66554)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.14117647;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       style="opacity:1;color:#000000;fill:url(#linearGradient6907);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient6931);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 3.2034501,25.835194 C 2.1729477,-5.3853369 28.741616,-0.4511153 28.582416,15.788689 L 35.89533,15.788689 L 24.517652,28.774671 L 12.585426,15.788689 C 12.585426,15.788689 20.126859,15.788689 20.126859,15.788689 C 20.583921,4.8193225 3.4092324,1.6100346 3.2034501,25.835194 z "
-       id="path1432"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       sodipodi:nodetypes="ccccccc"
-       id="path2177"
-       d="M 7.6642103,9.1041047 C 12.40638,-0.0400306 28.122336,2.7175443 27.761604,16.579393 L 34.078976,16.579393 C 34.078976,16.579393 24.513151,27.536769 24.513151,27.536769 L 14.41668,16.579393 C 14.41668,16.579393 20.87332,16.579393 20.87332,16.579393 C 21.144975,5.0041615 10.922265,5.5345215 7.6642103,9.1041047 z "
-       style="opacity:0.47159091;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1764);stroke-width:0.99999934;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <path
-       style="opacity:0.49431817;color:#000000;fill:url(#radialGradient4997);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 34.767155,16.211613 L 32.782979,18.757322 C 27.372947,17.241029 24.896829,21.486664 17.109284,20.489112 L 13.247998,16.080077 L 20.434468,16.162862 C 20.483219,4.3164571 8.3443098,4.998966 5.0292663,13.627829 C 8.8372201,-1.2611216 27.893316,0.8064118 28.28332,16.114112 L 34.767155,16.211613 z "
-       id="path4989"
-       sodipodi:nodetypes="cccccccc" />
-    <rect
-       style="opacity:1;color:#000000;fill:url(#linearGradient6971);fill-opacity:1.0;fill-rule:nonzero;stroke:#7d7d7d;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       id="rect6951"
-       width="39.247944"
-       height="12.278223"
-       x="4.5635238"
-       y="30.298382"
-       rx="1.6249996"
-       ry="1.6249996" />
-    <rect
-       style="opacity:0.59659091;color:#000000;fill:#7d7d7d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       id="rect6953"
-       width="16"
-       height="7"
-       x="7"
-       y="33"
-       ry="0" />
-    <rect
-       style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       id="rect6957"
-       width="1"
-       height="9"
-       x="24"
-       y="32" />
-  </g>
-</svg>
Binary file libgui/src/icons/document-save.png has changed
--- a/libgui/src/icons/document-save.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,619 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="document-save.svg"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg2913"
-   height="48px"
-   width="48px"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective104" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6925">
-      <stop
-         style="stop-color:#204a87;stop-opacity:1;"
-         offset="0"
-         id="stop6927" />
-      <stop
-         style="stop-color:#204a87;stop-opacity:0;"
-         offset="1"
-         id="stop6929" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient6901">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop6903" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:0;"
-         offset="1"
-         id="stop6905" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4991">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4993" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4995" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4991"
-       id="radialGradient4997"
-       cx="23.447077"
-       cy="6.4576745"
-       fx="23.447077"
-       fy="6.4576745"
-       r="19.0625"
-       gradientTransform="matrix(-1.314471,-1.006312e-2,-1.022964e-2,1.336221,46.22108,-4.909887)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient2187"
-       inkscape:collect="always">
-      <stop
-         id="stop2189"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop2191"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2187"
-       id="linearGradient1764"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.914114,1.412791e-16,-1.412791e-16,0.914114,-3.868698,-2.706902)"
-       x1="33.059906"
-       y1="27.394117"
-       x2="12.624337"
-       y2="12.583769" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient8668"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737"
-       gradientTransform="matrix(1.000000,-7.816467e-32,-1.132409e-32,0.536723,-5.897962e-14,16.87306)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient2555">
-      <stop
-         id="stop2557"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#e6e6e6;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop2561" />
-      <stop
-         id="stop2563"
-         offset="0.75000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#e1e1e1;stop-opacity:1.0000000;"
-         offset="0.84166664"
-         id="stop2565" />
-      <stop
-         id="stop2559"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4274">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.25490198;"
-         offset="0.0000000"
-         id="stop4276" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4278" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4264"
-       inkscape:collect="always">
-      <stop
-         id="stop4266"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4268"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4254"
-       inkscape:collect="always">
-      <stop
-         id="stop4256"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4258"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4244">
-      <stop
-         id="stop4246"
-         offset="0.0000000"
-         style="stop-color:#e4e4e4;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4248"
-         offset="1.0000000"
-         style="stop-color:#d3d3d3;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4236"
-       inkscape:collect="always">
-      <stop
-         id="stop4238"
-         offset="0"
-         style="stop-color:#eeeeee;stop-opacity:1;" />
-      <stop
-         id="stop4240"
-         offset="1"
-         style="stop-color:#eeeeee;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4228">
-      <stop
-         id="stop4230"
-         offset="0.0000000"
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4232"
-         offset="1.0000000"
-         style="stop-color:#9f9f9f;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4184">
-      <stop
-         id="stop4186"
-         offset="0.0000000"
-         style="stop-color:#838383;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4188"
-         offset="1.0000000"
-         style="stop-color:#bbbbbb;stop-opacity:0.0000000;" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(0.795493,3.799180)"
-       y2="35.281250"
-       x2="24.687500"
-       y1="35.281250"
-       x1="7.0625000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4209"
-       xlink:href="#linearGradient4184"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="40.943935"
-       x2="36.183067"
-       y1="28.481176"
-       x1="7.6046205"
-       id="linearGradient4234"
-       xlink:href="#linearGradient4228"
-       inkscape:collect="always"
-       gradientTransform="translate(0.000000,5.125000)" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="33.758667"
-       x2="12.221823"
-       y1="37.205811"
-       x1="12.277412"
-       id="linearGradient4242"
-       xlink:href="#linearGradient4236"
-       inkscape:collect="always"
-       gradientTransform="translate(0.000000,5.125000)" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.286242,0.781698,-0.710782,1.169552,-2.354348,0.248140)"
-       r="20.935817"
-       fy="2.9585190"
-       fx="15.571491"
-       cy="2.9585190"
-       cx="15.571491"
-       id="radialGradient4250"
-       xlink:href="#linearGradient4244"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="47.620636"
-       x2="44.096100"
-       y1="4.4331360"
-       x1="12.378357"
-       id="linearGradient4260"
-       xlink:href="#linearGradient4254"
-       inkscape:collect="always"
-       gradientTransform="translate(0.000000,5.125000)" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.651032,-2.885063e-16,9.455693)"
-       r="23.555494"
-       fy="27.096155"
-       fx="23.201941"
-       cy="27.096155"
-       cx="23.201941"
-       id="radialGradient4270"
-       xlink:href="#linearGradient4264"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="26.357183"
-       x2="23.688078"
-       y1="11.318835"
-       x1="23.688078"
-       id="linearGradient4272"
-       xlink:href="#linearGradient4274"
-       inkscape:collect="always"
-       gradientTransform="translate(0.000000,5.125000)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2555"
-       id="linearGradient2553"
-       x1="33.431175"
-       y1="31.964777"
-       x2="21.747974"
-       y2="11.780679"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6901"
-       id="linearGradient6907"
-       x1="14.751649"
-       y1="15.868432"
-       x2="8.8953285"
-       y2="16.743431"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient6925"
-       id="linearGradient6931"
-       x1="12.25"
-       y1="18.25"
-       x2="7"
-       y2="21.118431"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="999"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer2"
-     inkscape:cy="11.891468"
-     inkscape:cx="-133.68151"
-     inkscape:zoom="1"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.22745098"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:showpageshadow="false"
-     fill="#3465a4"
-     stroke="#204a87" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Save</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>hdd</rdf:li>
-            <rdf:li>hard drive</rdf:li>
-            <rdf:li>save</rdf:li>
-            <rdf:li>io</rdf:li>
-            <rdf:li>store</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:identifier />
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="pix"
-     id="layer2"
-     inkscape:groupmode="layer">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.411405e-2,0,0,1.929202e-2,45.48953,41.75228)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-    <path
-       sodipodi:nodetypes="cccsccccccccc"
-       id="path4196"
-       d="M 11.28569,13.087628 C 10.66069,13.087628 10.254441,13.377808 10.004442,13.931381 C 10.004441,13.931381 3.5356915,31.034938 3.5356915,31.034938 C 3.5356915,31.034938 3.2856915,31.706497 3.2856915,32.816188 C 3.2856915,32.816188 3.2856915,42.466156 3.2856915,42.466156 C 3.2856915,43.548769 3.943477,44.091158 4.9419415,44.091156 L 43.50444,44.091156 C 44.489293,44.091156 45.09819,43.372976 45.09819,42.247406 L 45.09819,32.597438 C 45.09819,32.597438 45.204153,31.827015 45.00444,31.284938 L 38.28569,14.087631 C 38.101165,13.575725 37.648785,13.099533 37.16069,13.087628 L 11.28569,13.087628 z "
-       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#535353;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="ccccccccc"
-       id="path4170"
-       d="M 3.2735915,32.121812 L 4.0381936,31.429597 L 41.647883,31.492097 L 45.11029,31.809395 L 45.11029,42.247927 C 45.11029,43.373496 44.503272,44.091258 43.518419,44.091258 L 4.9354314,44.091258 C 3.9369667,44.091258 3.2735915,43.549207 3.2735915,42.466594 L 3.2735915,32.121812 z "
-       style="fill:url(#linearGradient4234);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02044296px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="csccccccs"
-       id="path3093"
-       d="M 3.5490842,31.039404 C 2.8347985,32.50369 3.5484686,33.432261 4.5847985,33.432261 C 4.5847985,33.432261 43.584797,33.432261 43.584797,33.432261 C 44.703844,33.408451 45.430035,32.420356 45.013368,31.289403 L 38.299082,14.078704 C 38.114558,13.566798 37.64432,13.090606 37.156225,13.078701 L 11.299083,13.078701 C 10.674083,13.078701 10.263369,13.382274 10.01337,13.935847 C 10.01337,13.935847 3.5490842,31.039404 3.5490842,31.039404 z "
-       style="fill:url(#radialGradient4250);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <rect
-       y="36.299183"
-       x="7.857996"
-       height="5.5625"
-       width="17.625"
-       id="rect4174"
-       style="opacity:1;color:#000000;fill:url(#linearGradient4209);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.40899992;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cscc"
-       id="path4194"
-       d="M 7.8579947,41.86168 C 7.8579947,41.86168 7.8579947,37.850195 7.8579947,37.850195 C 9.6935221,41.029421 16.154485,41.86168 20.795492,41.86168 C 20.795492,41.86168 7.8579947,41.86168 7.8579947,41.86168 z "
-       style="opacity:0.81142853;fill:url(#linearGradient4242);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="cccccccc"
-       id="path4201"
-       d="M 44.796162,30.753688 C 44.859684,32.003662 44.382159,33.069528 43.474046,33.097438 C 43.474046,33.097438 5.3553296,33.097437 5.3553297,33.097438 C 4.0660978,33.097438 3.4875937,32.772491 3.271279,32.229382 C 3.3630404,33.173714 4.0970964,33.878688 5.3553297,33.878688 C 5.3553296,33.878687 43.474046,33.878688 43.474046,33.878688 C 44.550053,33.845617 45.226851,32.454664 44.82621,30.883897 L 44.796162,30.753688 z "
-       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path4211"
-       d="M 10.96875,15.28125 C 10.922675,15.481571 10.78125,15.668047 10.78125,15.875 C 10.78125,16.823605 11.37223,17.664474 12.125,18.46875 C 12.365268,18.314675 12.490117,18.114342 12.75,17.96875 C 11.809691,17.152746 11.196604,16.252168 10.96875,15.28125 z M 37.625,15.28125 C 37.396273,16.250866 36.782988,17.153676 35.84375,17.96875 C 36.117894,18.122332 36.247738,18.33699 36.5,18.5 C 37.257262,17.693344 37.8125,16.826956 37.8125,15.875 C 37.8125,15.668047 37.670906,15.481571 37.625,15.28125 z M 39.8125,23.71875 C 39.198709,27.758861 32.513887,30.96875 24.28125,30.96875 C 16.068996,30.968751 9.4211001,27.775964 8.78125,23.75 C 8.7488928,23.947132 8.65625,24.141882 8.65625,24.34375 C 8.6562503,28.661697 15.645354,32.187501 24.28125,32.1875 C 32.917146,32.1875 39.937499,28.661698 39.9375,24.34375 C 39.9375,24.130826 39.848449,23.926394 39.8125,23.71875 z "
-       style="opacity:0.69142857;color:#000000;fill:url(#linearGradient4272);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       transform="translate(8.838843e-2,5.301780)"
-       d="M 8.5736699 25.593554 A 1.3700194 1.016466 0 1 1  5.833631,25.593554 A 1.3700194 1.016466 0 1 1  8.5736699 25.593554 z"
-       sodipodi:ry="1.016466"
-       sodipodi:rx="1.3700194"
-       sodipodi:cy="25.593554"
-       sodipodi:cx="7.2036505"
-       id="path4224"
-       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.45762706;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.45762706;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path4226"
-       sodipodi:cx="7.2036505"
-       sodipodi:cy="25.593554"
-       sodipodi:rx="1.3700194"
-       sodipodi:ry="1.016466"
-       d="M 8.5736699 25.593554 A 1.3700194 1.016466 0 1 1  5.833631,25.593554 A 1.3700194 1.016466 0 1 1  8.5736699 25.593554 z"
-       transform="translate(33.96705,5.213390)" />
-    <path
-       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 11.642515,13.540723 C 11.040823,13.540723 10.649724,13.820081 10.409049,14.35301 C 10.409048,14.35301 3.9940341,30.943732 3.9940341,30.943732 C 3.9940341,30.943732 3.7533573,31.590247 3.7533573,32.658555 C 3.7533573,32.658555 3.7533573,41.948651 3.7533573,41.948651 C 3.7533573,43.303391 4.1974134,43.57555 5.3478414,43.57555 L 43.034746,43.57555 C 44.357872,43.57555 44.569062,43.259153 44.569062,41.738058 L 44.569062,32.447962 C 44.569062,32.447962 44.671072,31.706271 44.478807,31.184409 L 37.885616,14.378434 C 37.707973,13.885617 37.334964,13.552184 36.865071,13.540723 L 11.642515,13.540723 z "
-       id="path4252"
-       sodipodi:nodetypes="cccsccccccccc" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
-       d="M 40.5,36.554166 L 40.5,41.575101"
-       id="path4282" />
-    <path
-       id="path4284"
-       d="M 38.5,36.613943 L 38.5,41.634878"
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
-       d="M 36.5,36.613943 L 36.5,41.634878"
-       id="path4286" />
-    <path
-       id="path4288"
-       d="M 34.5,36.613943 L 34.5,41.634878"
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
-    <path
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
-       d="M 32.5,36.613943 L 32.5,41.634878"
-       id="path4290" />
-    <path
-       id="path4292"
-       d="M 30.5,36.613943 L 30.5,41.634878"
-       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
-    <path
-       id="path4294"
-       d="M 39.5,36.604065 L 39.5,41.625"
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 37.5,36.663842 L 37.5,41.684777"
-       id="path4296" />
-    <path
-       id="path4298"
-       d="M 35.5,36.663842 L 35.5,41.684777"
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 33.5,36.663842 L 33.5,41.684777"
-       id="path4300" />
-    <path
-       id="path4302"
-       d="M 31.5,36.663842 L 31.5,41.684777"
-       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path4572"
-       d="M 7.875,36.3125 L 7.875,41.84375 L 20.4375,41.84375 L 8.21875,41.5 L 7.875,36.3125 z "
-       style="opacity:0.43999999;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.20571427;color:#000000;fill:url(#linearGradient2553);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.93365198;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.42372879;visibility:visible;display:inline;overflow:visible"
-       id="path2545"
-       sodipodi:cx="25"
-       sodipodi:cy="19.5625"
-       sodipodi:rx="14.875"
-       sodipodi:ry="6.6875"
-       d="M 39.875 19.5625 A 14.875 6.6875 0 1 1  10.125,19.5625 A 14.875 6.6875 0 1 1  39.875 19.5625 z"
-       transform="matrix(1.037815,0.000000,0.000000,1.060747,-1.632878,3.030370)" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer1"
-     inkscape:label="down">
-    <path
-       transform="matrix(1.130190,1.178179e-16,7.918544e-17,-0.759601,-3.909725,53.66554)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.14117647;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       style="opacity:1;color:#000000;fill:url(#linearGradient6907);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient6931);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 3.2034501,25.835194 C 2.1729477,-5.3853369 28.741616,-0.4511153 28.582416,15.788689 L 35.89533,15.788689 L 24.517652,28.774671 L 12.585426,15.788689 C 12.585426,15.788689 20.126859,15.788689 20.126859,15.788689 C 20.583921,4.8193225 3.4092324,1.6100346 3.2034501,25.835194 z "
-       id="path1432"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       sodipodi:nodetypes="ccccccc"
-       id="path2177"
-       d="M 7.6642103,9.1041047 C 12.40638,-0.0400306 28.122336,2.7175443 27.761604,16.579393 L 34.078976,16.579393 C 34.078976,16.579393 24.513151,27.536769 24.513151,27.536769 L 14.41668,16.579393 C 14.41668,16.579393 20.87332,16.579393 20.87332,16.579393 C 21.144975,5.0041615 10.922265,5.5345215 7.6642103,9.1041047 z "
-       style="opacity:0.47159091;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1764);stroke-width:0.99999934;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <path
-       style="opacity:0.49431817;color:#000000;fill:url(#radialGradient4997);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 34.767155,16.211613 L 32.782979,18.757322 C 27.372947,17.241029 24.896829,21.486664 17.109284,20.489112 L 13.247998,16.080077 L 20.434468,16.162862 C 20.483219,4.3164571 8.3443098,4.998966 5.0292663,13.627829 C 8.8372201,-1.2611216 27.893316,0.8064118 28.28332,16.114112 L 34.767155,16.211613 z "
-       id="path4989"
-       sodipodi:nodetypes="cccccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/edit-copy.png has changed
--- a/libgui/src/icons/edit-copy.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,328 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg4198"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
-   sodipodi:docname="edit-copy.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs4200">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective45" />
-    <linearGradient
-       id="linearGradient15218">
-      <stop
-         style="stop-color:#f0f0ef;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15220" />
-      <stop
-         id="stop2269"
-         offset="0.59928656"
-         style="stop-color:#e8e8e8;stop-opacity:1;" />
-      <stop
-         id="stop2267"
-         offset="0.82758623"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#d8d8d3;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15222" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2259">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2261" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2263" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2224">
-      <stop
-         style="stop-color:#7c7c7c;stop-opacity:1;"
-         offset="0"
-         id="stop2226" />
-      <stop
-         style="stop-color:#b8b8b8;stop-opacity:1;"
-         offset="1"
-         id="stop2228" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2224"
-       id="linearGradient2230"
-       x1="35.996582"
-       y1="40.458221"
-       x2="33.664921"
-       y2="37.770721"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.161836,4.033411)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2251">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2253" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2255" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2251"
-       id="linearGradient2257"
-       x1="33.396004"
-       y1="36.921333"
-       x2="34.170048"
-       y2="38.070381"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.161836,3.658411)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15218"
-       id="linearGradient4258"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.065698,0.000000,0.000000,0.987595,-8.548320,-4.891713)"
-       x1="22.308331"
-       y1="18.992140"
-       x2="35.785294"
-       y2="39.498238" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2259"
-       id="linearGradient4260"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.998504,0.000000,0.000000,0.998246,-6.970391,-4.892901)"
-       x1="26.076092"
-       y1="26.696676"
-       x2="30.811172"
-       y2="42.007351" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2259"
-       id="linearGradient13651"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.999421,0.000000,0.000000,1.000000,5.991319,4.033411)"
-       x1="26.076092"
-       y1="26.696676"
-       x2="30.811172"
-       y2="42.007351" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15218"
-       id="linearGradient13653"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.067236,0.000000,0.000000,0.989276,4.391684,4.035227)"
-       x1="22.308331"
-       y1="18.992140"
-       x2="35.785294"
-       y2="39.498238" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#bebebe"
-     borderopacity="1.0000000"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.4142136"
-     inkscape:cx="-57.902952"
-     inkscape:cy="48.133585"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="873"
-     inkscape:window-height="699"
-     inkscape:window-x="264"
-     inkscape:window-y="149"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata4203">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Edit Copy</dc:title>
-        <dc:date>2005-10-15</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>edit</rdf:li>
-            <rdf:li>copy</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       id="g4268"
-       style="opacity:0.49999997"
-       transform="matrix(1.001508,0.000000,0.000000,1.000616,-5.002205e-2,-6.304895e-2)">
-      <rect
-         y="34.033413"
-         x="20.161837"
-         height="2.0000000"
-         width="13.000000"
-         id="rect2279"
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         ry="0.56615961"
-         rx="0.56565511"
-         y="1.5629303"
-         x="1.5484408"
-         height="35.976688"
-         width="30.951559"
-         id="rect4238"
-         style="opacity:1.0000000;fill:url(#linearGradient4258);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99893934;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <rect
-         ry="0.0000000"
-         rx="0.0000000"
-         y="2.5605955"
-         x="2.5325129"
-         height="33.981056"
-         width="28.970741"
-         id="rect4240"
-         style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:0.99893963;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <rect
-         y="10.033414"
-         x="7.0161190"
-         height="2.0000000"
-         width="21.000000"
-         id="rect4248"
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="rect4250"
-         width="20.000000"
-         height="2.0000000"
-         x="7.0161190"
-         y="14.033414" />
-      <rect
-         y="18.033415"
-         x="7.0161190"
-         height="2.0000000"
-         width="18.000000"
-         id="rect4252"
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="rect4254"
-         width="21.000000"
-         height="2.0000000"
-         x="7.0161190"
-         y="22.033415" />
-      <rect
-         y="26.033413"
-         x="7.0161190"
-         height="2.0000000"
-         width="13.000000"
-         id="rect4256"
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    </g>
-    <g
-       id="g12863">
-      <path
-         style="fill:url(#linearGradient13653);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#888a85;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-         d="M 15.072946,10.500852 L 44.929331,10.500852 C 45.245071,10.500852 45.499257,10.753945 45.499257,11.068324 L 45.499257,38.235686 C 45.499257,40.712138 38.619447,46.538773 36.231325,46.538773 L 15.072946,46.538773 C 14.757206,46.538773 14.50302,46.285681 14.50302,45.9713 L 14.50302,11.068324 C 14.50302,10.753945 14.757206,10.500852 15.072946,10.500852 z "
-         id="rect12413"
-         sodipodi:nodetypes="ccccccccc" />
-      <rect
-         ry="0.0000000"
-         rx="0.0000000"
-         y="11.500000"
-         x="15.502951"
-         height="34.040764"
-         width="28.997349"
-         id="rect15244"
-         style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient13651);stroke-width:1.0000008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path2210"
-         d="M 36.220918,46.536966 C 38.251336,46.866864 45.809711,42.007037 45.505329,38.039122 C 43.942067,40.462219 40.746807,39.32586 36.638049,39.48487 C 36.638049,39.48487 37.033418,46.036966 36.220918,46.536966 z "
-         style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2230);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#868a84;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.36931817;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2257);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 37.671355,44.345464 C 39.041134,43.661635 42.099604,42.198999 43.398985,40.317995 C 41.802891,40.99805 40.451175,40.527491 37.696651,40.5084 C 37.696651,40.5084 37.858973,43.570494 37.671355,44.345464 z "
-         id="path2247"
-         sodipodi:nodetypes="cccc" />
-      <rect
-         y="19.033415"
-         x="20.000000"
-         height="2.0000000"
-         width="21.000000"
-         id="rect2271"
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="rect2273"
-         width="19.992233"
-         height="2.0000000"
-         x="20.000000"
-         y="23.033415" />
-      <rect
-         y="27.033415"
-         x="20.000000"
-         height="2.0000000"
-         width="17.976702"
-         id="rect2275"
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <rect
-         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="rect2277"
-         width="21.000000"
-         height="2.0000000"
-         x="20.000000"
-         y="31.033415" />
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/edit-cut.png has changed
--- a/libgui/src/icons/edit-cut.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,508 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48"
-   height="48"
-   id="svg23883"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   sodipodi:docname="edit-cut.svg"
-   inkscape:export-filename="/home/garrett/edit-cut.png"
-   inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs23885">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective70" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2269">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2271" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2273" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2259">
-      <stop
-         style="stop-color:#9a0c00;stop-opacity:1;"
-         offset="0"
-         id="stop2261" />
-      <stop
-         style="stop-color:#9a0c00;stop-opacity:0;"
-         offset="1"
-         id="stop2263" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2251">
-      <stop
-         style="stop-color:#df2a2a;stop-opacity:1;"
-         offset="0"
-         id="stop2253" />
-      <stop
-         style="stop-color:#df2a2a;stop-opacity:0;"
-         offset="1"
-         id="stop2255" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2229">
-      <stop
-         style="stop-color:#e2e2e2;stop-opacity:1;"
-         offset="0"
-         id="stop2231" />
-      <stop
-         style="stop-color:#d8d8d8;stop-opacity:1;"
-         offset="1"
-         id="stop2233" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,1.010300,1.007969e-18,-0.159801)"
-       r="7.2848282"
-       cy="23.333008"
-       cx="165.06104"
-       id="radialGradient16850">
-      <stop
-         id="stop16852"
-         style="stop-color:#EF3535"
-         offset="0" />
-      <stop
-         id="stop16854"
-         style="stop-color:#a40000;stop-opacity:0"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="XMLID_897_"
-       gradientUnits="userSpaceOnUse"
-       x1="292.97168"
-       y1="4.7592773"
-       x2="296.93979"
-       y2="10.711433">
-      <stop
-         offset="0"
-         style="stop-color:#EEEEEC"
-         id="stop45093" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:1;"
-         id="stop45095" />
-    </linearGradient>
-    <linearGradient
-       id="path3230_2_"
-       gradientUnits="userSpaceOnUse"
-       x1="1668.7646"
-       y1="185.30176"
-       x2="1679.5989"
-       y2="175.78883"
-       gradientTransform="matrix(1.213800,0.000000,0.282500,-1.671200,46.72625,447.9442)">
-      <stop
-         offset="0"
-         style="stop-color:#FFFFFF"
-         id="stop4977" />
-      <stop
-         offset="1"
-         style="stop-color:#CFCFCF"
-         id="stop4979" />
-    </linearGradient>
-    <linearGradient
-       id="path3311_1_"
-       gradientUnits="userSpaceOnUse"
-       x1="1420.5474"
-       y1="-50.919434"
-       x2="1420.6542"
-       y2="-79.574341"
-       gradientTransform="matrix(2.051000,0.000000,0.167200,-0.989000,-799.2049,221.0724)">
-      <stop
-         offset="0"
-         style="stop-color:#C4A000"
-         id="stop4970" />
-      <stop
-         offset="1"
-         style="stop-color:#957A00"
-         id="stop4972" />
-    </linearGradient>
-    <radialGradient
-       id="XMLID_52_"
-       cx="165.06104"
-       cy="23.333008"
-       r="7.2848282"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,1.010300,1.007969e-18,-0.159801)"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         offset="0"
-         style="stop-color:#EF3535"
-         id="stop812" />
-      <stop
-         id="stop2239"
-         style="stop-color:#c91a1a;stop-opacity:1;"
-         offset="0" />
-      <stop
-         offset="1"
-         style="stop-color:#ff4c4c;stop-opacity:1;"
-         id="stop814" />
-    </radialGradient>
-    <linearGradient
-       id="XMLID_45_"
-       gradientUnits="userSpaceOnUse"
-       x1="68.175293"
-       y1="21.424805"
-       x2="74.587158"
-       y2="27.836672">
-      <stop
-         offset="0"
-         style="stop-color:#BABDB6"
-         id="stop695" />
-      <stop
-         offset="1"
-         style="stop-color:#EEEEEC"
-         id="stop697" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#path3230_2_"
-       id="linearGradient142876"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.213781,0,0.282495,-1.671173,-1712.251,391.532)"
-       x1="1668.7646"
-       y1="185.30176"
-       x2="1679.5989"
-       y2="175.78883" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#path3230_2_"
-       id="linearGradient142884"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.213781,0.000000,0.282495,-1.671173,-1385.251,394.5320)"
-       x1="1668.7646"
-       y1="185.30176"
-       x2="1679.5989"
-       y2="175.78883" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#path3311_1_"
-       id="linearGradient142892"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.050967,0.000000,0.167197,-0.988984,-2231.169,167.6639)"
-       x1="1420.5474"
-       y1="-50.919434"
-       x2="1420.6542"
-       y2="-79.574341" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_45_"
-       id="linearGradient16739"
-       x1="22.225399"
-       y1="23.843431"
-       x2="24.190449"
-       y2="22.860907"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_52_"
-       id="linearGradient16769"
-       x1="294.59497"
-       y1="12.187603"
-       x2="297.18515"
-       y2="13.3396"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_52_"
-       id="linearGradient16894"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.624438,0.000000,0.000000,3.624438,-1053.179,-16.84720)"
-       x1="296.76199"
-       y1="12.012225"
-       x2="297.79822"
-       y2="10.946587" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_52_"
-       id="linearGradient16946"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.637893,0.000000,0.000000,3.470375,-1056.116,-16.00724)"
-       x1="296.48611"
-       y1="15.506916"
-       x2="296.52905"
-       y2="9.8769522" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_897_"
-       id="linearGradient16968"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-4.127761,0.000000,0.000000,4.136601,1244.465,-11.90495)"
-       x1="292.97168"
-       y1="4.7592773"
-       x2="296.93979"
-       y2="10.711433" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_897_"
-       id="linearGradient16974"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.053427,0.000000,0.000000,4.136601,-1175.535,-11.90495)"
-       x1="292.97168"
-       y1="4.7592773"
-       x2="296.93979"
-       y2="10.711433" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#radialGradient16850"
-       id="linearGradient17028"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.161878,0.000000,0.000000,0.992497,-5.112111,6.400522e-2)"
-       x1="39.619942"
-       y1="44.540932"
-       x2="-3.532515"
-       y2="-11.889042" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_52_"
-       id="linearGradient17034"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.161878,0.000000,0.000000,0.992497,-2.666967,6.400522e-2)"
-       x1="13.82536"
-       y1="40.068752"
-       x2="7.6700611"
-       y2="2.3262277" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_52_"
-       id="linearGradient17037"
-       gradientUnits="userSpaceOnUse"
-       x1="7.184845"
-       y1="31.056622"
-       x2="25.152235"
-       y2="50.774887"
-       gradientTransform="matrix(1.161878,0.000000,0.000000,0.992497,-2.430779,0.265761)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2229"
-       id="linearGradient2235"
-       x1="20.288025"
-       y1="6.4603648"
-       x2="24.32597"
-       y2="23.942537"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2229"
-       id="linearGradient2237"
-       x1="20.288025"
-       y1="6.4603648"
-       x2="24.32597"
-       y2="23.942537"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_52_"
-       id="radialGradient2241"
-       cx="34.376091"
-       cy="37.50008"
-       fx="34.376091"
-       fy="37.50008"
-       r="8.3887873"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,1.060381,0.000000,-2.299514)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2251"
-       id="linearGradient2257"
-       x1="298.47852"
-       y1="13.599585"
-       x2="298.86948"
-       y2="13.802949"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2259"
-       id="linearGradient2265"
-       x1="298.47852"
-       y1="13.599585"
-       x2="298.86948"
-       y2="13.802949"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2269"
-       id="radialGradient2275"
-       cx="25.1875"
-       cy="41.625"
-       fx="25.1875"
-       fy="41.625"
-       r="18.0625"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.325260,2.029626e-16,28.08607)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.13333333"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="11.313708"
-     inkscape:cx="32.034218"
-     inkscape:cy="23.0589"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     gridtolerance="0.5px"
-     inkscape:window-width="1011"
-     inkscape:window-height="818"
-     inkscape:window-x="177"
-     inkscape:window-y="30"
-     stroke="#a40000"
-     inkscape:showpageshadow="false">
-    <inkscape:grid
-       id="GridFromPre046Settings"
-       type="xygrid"
-       originx="0px"
-       originy="0px"
-       spacingx="1px"
-       spacingy="1px"
-       color="#0000ff"
-       empcolor="#0000ff"
-       opacity="0.2"
-       empopacity="0.4"
-       empspacing="4" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata23888">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Edit Cut</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Garrett Le Sage</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>edit</rdf:li>
-            <rdf:li>cut</rdf:li>
-            <rdf:li>clipboard</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       style="fill:url(#linearGradient16968);stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 34.174311,1.6249997 C 34.386261,1.6935355 34.59157,1.7696619 34.798294,1.842502 C 35.449709,4.0395037 38.469777,6.2612218 37.321354,8.4491328 C 33.495509,14.82952 29.697021,21.294565 25.899759,27.72527 C 25.154013,27.872172 24.401732,27.952183 23.647995,27.96996 C 22.061603,28.01017 20.433063,27.775465 18.927431,27.23589 C 23.978303,18.684616 29.031301,10.114483 34.174311,1.6249997 z "
-       id="path16717" />
-    <path
-       style="fill:url(#linearGradient2237);fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 34.288823,4.25 C 34.057702,4.5574529 33.839208,5.120942 33.602793,5.40625 C 29.555938,12.158979 25.440784,18.900329 21.378976,25.625 C 21.318425,25.878117 20.565047,26.637291 21.366935,26.567963 C 22.478492,26.765843 23.638682,26.918567 24.746762,26.625 C 28.505752,20.407794 32.192639,14.142582 35.943048,7.9231779 C 36.285519,7.5359043 36.352163,6.9979201 35.992403,6.611197 C 35.462387,5.7945892 34.925464,4.9364821 34.382373,4.15625 L 34.311813,4.2269607 L 34.288823,4.25 z "
-       id="path16719" />
-    <polygon
-       style="fill:url(#linearGradient16769);fill-opacity:1;stroke:#9a0c00;stroke-width:0.28144068;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="polygon45129"
-       points="297.04443,12.300293 296.39941,13.384766 295.13281,14.71875 294.73242,13.672852 295.74658,11.960449 297.04443,12.300293 "
-       transform="matrix(3.637893,0.000000,0.000000,3.470375,-1056.116,-16.00724)" />
-    <path
-       style="fill:url(#linearGradient16946);fill-opacity:1;stroke:none;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 20.40625,26.96875 C 19.183905,27.455468 19.192232,29.003929 18.481272,29.932762 C 18.138949,30.648557 17.537483,31.278989 17.28125,32.03125 C 17.271571,32.546641 17.729203,33.391474 18.3125,32.9375 C 19.697476,31.791172 20.876866,30.398821 21.756725,28.810629 C 21.989088,28.320596 22.552476,27.916466 22.625,27.40625 C 22.086431,26.835441 21.112182,26.873225 20.40625,26.96875 z "
-       id="polygon16896" />
-    <path
-       style="fill:url(#linearGradient16974);stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 12.960099,1.6249997 C 12.751966,1.6935355 12.550355,1.7696619 12.347353,1.842502 C 11.707669,4.0395037 8.7419877,6.2612218 9.8697297,8.4491328 C 13.626677,14.82952 17.35676,21.294565 21.085639,27.72527 C 21.817956,27.872172 22.55669,27.952183 23.296853,27.96996 C 24.854677,28.01017 26.453889,27.775465 27.932407,27.23589 C 22.972493,18.684616 18.010492,10.114483 12.960099,1.6249997 z "
-       id="polygon45097" />
-    <path
-       style="fill:url(#linearGradient2235);fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 12.719667,4.25 C 12.336632,5.3766793 11.270006,6.2059645 11.004855,7.40625 C 14.713376,13.800362 18.475798,20.175378 22.181757,26.5625 C 23.380123,26.820799 24.610198,26.655657 25.795112,26.40625 C 25.606339,25.665807 25.056911,25.075319 24.765129,24.3767 C 20.870526,17.806174 16.941429,11.242872 13.087127,4.65625 C 13.072466,4.5046403 12.870425,4.1721152 12.719667,4.25 z "
-       id="path16635" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1;color:#000000;fill:url(#linearGradient16739);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path16731"
-       sodipodi:cx="23.207924"
-       sodipodi:cy="23.843431"
-       sodipodi:rx="0.98252523"
-       sodipodi:ry="0.98252523"
-       d="M 24.190449 23.843431 A 0.98252523 0.98252523 0 1 1  22.225399,23.843431 A 0.98252523 0.98252523 0 1 1  24.190449 23.843431 z"
-       transform="matrix(0.979893,0.000000,0.000000,1.000000,0.311384,0.174043)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.26704544;color:#000000;fill:url(#radialGradient2275);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path2267"
-       sodipodi:cx="25.1875"
-       sodipodi:cy="41.625"
-       sodipodi:rx="18.0625"
-       sodipodi:ry="5.875"
-       d="M 43.25 41.625 A 18.0625 5.875 0 1 1  7.125,41.625 A 18.0625 5.875 0 1 1  43.25 41.625 z"
-       transform="matrix(1.256055,0.000000,0.000000,0.819149,-7.199394,9.090421)" />
-    <path
-       id="path45138"
-       style="fill:url(#linearGradient17037);fill-opacity:1;stroke:#a40000;stroke-opacity:1"
-       d="M 17.700393,30.286934 C 20.935404,32.013583 21.196229,36.899851 18.278338,41.201286 C 15.360479,45.50525 10.373849,47.596472 7.1373807,45.877418 C 3.9008825,44.150767 3.6415462,39.267032 6.5594356,34.965597 C 9.4758075,30.664166 14.463925,28.572944 17.700393,30.286934 z M 15.845268,33.029079 C 14.408745,32.26545 11.33781,33.569599 9.3789266,36.463107 C 7.4160164,39.356612 7.5560293,42.376624 8.991202,43.137951 C 10.426348,43.906181 13.499985,42.597432 15.458868,39.703925 C 17.42313,36.81042 17.281765,33.792709 15.845268,33.029079 z " />
-    <path
-       style="fill:url(#linearGradient17034);fill-opacity:1;stroke:none;stroke-opacity:1"
-       d="M 14.3255,30.583289 C 12.400369,30.97051 10.691041,32.037306 9.2785926,33.064531 C 8.5268294,33.759433 8.0350294,34.514452 7.3629449,35.31874 C 5.6546178,37.670805 4.9387067,40.762168 6.2901069,43.388409 C 6.90956,44.841515 8.9327419,45.435852 10.658323,45.067542 C 12.110236,44.819078 13.339639,43.906473 14.470735,43.268641 C 15.391637,42.47786 16.024749,41.642131 16.803626,40.677364 C 18.612986,38.202962 19.595537,34.928687 18.101604,32.165081 C 17.377898,31.022952 15.866963,30.41829 14.3255,30.583289 z M 14.797513,31.54477 C 16.814017,31.795124 18.154487,33.577585 17.92006,35.266634 C 17.940833,37.553573 16.774038,39.710728 15.196909,41.500756 C 13.779705,42.902737 11.848294,44.229027 9.5327534,44.137076 C 8.1738996,44.134209 7.100179,43.224779 6.7169325,42.176618 C 6.1002938,39.644695 6.9116496,36.911389 8.6831288,34.83862 C 10.041367,33.315308 11.877976,31.95152 14.150642,31.596926 C 14.366331,31.581652 14.581522,31.554432 14.797513,31.54477 z "
-       id="path16771" />
-    <path
-       d="M 30.331764,30.286934 C 27.096753,32.013583 26.835929,36.899851 29.75382,41.201286 C 32.671679,45.50525 37.658309,47.596472 40.894777,45.877418 C 44.131276,44.150767 44.390611,39.267032 41.472722,34.965597 C 38.55635,30.664166 33.568233,28.572944 30.331764,30.286934 z M 32.18689,33.029079 C 33.623412,32.26545 36.694348,33.569599 38.653231,36.463107 C 40.616141,39.356612 40.476128,42.376624 39.040956,43.137951 C 37.60581,43.906181 34.532173,42.597432 32.57329,39.703925 C 30.609028,36.81042 30.750393,33.792709 32.18689,33.029079 z "
-       style="fill:url(#radialGradient2241);fill-opacity:1;stroke:#a40000;stroke-opacity:1"
-       id="path11967" />
-    <polygon
-       style="fill:url(#linearGradient2257);fill-opacity:1;stroke:url(#linearGradient2265);stroke-width:0.27590489;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="polygon45101"
-       points="296.95605,12.300293 297.6001,13.384766 298.86719,14.71875 299.26807,13.672852 298.25391,11.960449 296.95605,12.300293 "
-       transform="matrix(3.624438,0.000000,0.000000,3.624438,-1053.179,-16.84720)" />
-    <path
-       style="fill:url(#linearGradient16894);fill-opacity:1;stroke:none;stroke-width:0.27590489;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 26.15625,27.9375 C 25.729502,28.136321 25.139436,28.138981 24.8125,28.4375 C 25.76252,29.838889 26.702412,31.352161 27.663379,32.650077 C 28.331933,33.404621 29.019194,34.150303 29.78125,34.8125 C 30.516527,33.421076 29.91641,31.751292 28.96875,30.625 C 28.366215,29.725307 28.138928,28.512038 27.125,28.03125 C 26.820951,27.912839 26.474385,27.853373 26.15625,27.9375 z "
-       id="polygon16860" />
-    <path
-       style="fill:url(#linearGradient17028);fill-opacity:1;stroke:none;stroke-opacity:1"
-       d="M 32.280087,30.449093 C 30.759703,30.678844 29.385141,31.534748 29.039639,32.837057 C 27.908495,35.232508 28.824763,37.950571 30.319418,40.063908 C 31.421345,41.40911 32.259488,42.993821 33.959001,43.837878 C 35.429654,44.761502 37.300143,45.728452 39.176641,45.138766 C 40.689956,44.705317 41.547313,43.4582 41.856813,42.166912 C 42.461243,39.856882 41.561117,37.490951 40.149846,35.530428 C 39.491173,34.616722 38.816861,33.647222 38.036528,32.835783 C 36.841969,31.932329 35.398614,31.184254 33.947688,30.603431 C 33.41359,30.493019 32.832464,30.37069 32.280087,30.449093 z M 32.715792,31.658699 C 34.473095,31.591923 35.950305,32.398157 37.092162,33.427664 C 38.124459,34.396792 39.113817,35.23287 39.754673,36.426541 C 40.831856,38.24711 41.142534,40.4065 40.594777,42.390073 C 40.066397,43.714585 38.368623,44.362109 36.803657,44.006518 C 34.821776,43.77769 33.586317,42.335503 32.277091,41.198158 C 30.771344,39.766768 29.83647,37.719532 29.76651,35.715783 C 29.780622,34.698114 29.740042,33.53736 30.464653,32.682212 C 30.876926,32.139062 31.84466,31.627886 32.715792,31.658699 z "
-       id="path16795" />
-  </g>
-</svg>
Binary file libgui/src/icons/edit-delete.png has changed
--- a/libgui/src/icons/edit-delete.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.42"
-   sodipodi:docbase="/home/andreas/projekt/tango/scalable"
-   sodipodi:docname="edit-delete.svg"
-   inkscape:export-filename="/home/andreas/projekt/tango/22/delete.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000">
-  <defs
-     id="defs1308">
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2251">
-      <stop
-         style="stop-color:#ef2929"
-         offset="0"
-         id="stop2253" />
-      <stop
-         style="stop-color:#cc0000"
-         offset="1"
-         id="stop2255" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4126"
-       inkscape:collect="always">
-      <stop
-         id="stop4128"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4130"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       r="17.142857"
-       fy="40.000000"
-       fx="23.857143"
-       cy="40.000000"
-       cx="23.857143"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,1.635742e-14,20.00000)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient7449"
-       xlink:href="#linearGradient4126"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2251"
-       id="radialGradient2257"
-       cx="20.935379"
-       cy="12.592707"
-       fx="20.935379"
-       fy="12.592707"
-       r="19.967958"
-       gradientTransform="matrix(-1.262871,2.796553e-2,-3.606716e-2,-1.629656,47.36662,36.49787)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4126"
-       id="radialGradient2275"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,1.713935e-14,20.00000)"
-       cx="23.857143"
-       cy="40.000000"
-       fx="23.857143"
-       fy="40.000000"
-       r="17.142857" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2251"
-       id="radialGradient2277"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.618549,1.369740e-2,-1.766555e-2,-0.798198,22.46266,17.62692)"
-       cx="20.935379"
-       cy="12.592707"
-       fx="20.935379"
-       fy="12.592707"
-       r="19.967958" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="14.000000"
-     inkscape:cx="27.981306"
-     inkscape:cy="29.284234"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     fill="#73d216"
-     stroke="#a40000"
-     inkscape:window-width="1280"
-     inkscape:window-height="949"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     showguides="true"
-     inkscape:guide-bbox="true" />
-  <metadata
-     id="metadata1311">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Delete</dc:title>
-        <dc:date>2005-12-28</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://tango-project.org</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>delete</rdf:li>
-            <rdf:li>remove</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       transform="matrix(1.225000,0.000000,0.000000,0.408334,-5.221224,25.17622)"
-       d="M 41.000000 40.000000 A 17.142857 8.5714283 0 1 1  6.7142868,40.000000 A 17.142857 8.5714283 0 1 1  41.000000 40.000000 z"
-       sodipodi:ry="8.5714283"
-       sodipodi:rx="17.142857"
-       sodipodi:cy="40.000000"
-       sodipodi:cx="23.857143"
-       id="path6548"
-       style="opacity:0.52688169;color:#000000;fill:url(#radialGradient7449);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       style="opacity:1.0000000;fill:url(#radialGradient2257);fill-opacity:1.0000000;stroke:#a40000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       d="M 24.035816,3.5720836 C 13.289574,3.5720836 4.5678570,12.294146 4.5678580,23.040834 C 4.5678580,33.787521 13.289575,42.509583 24.035816,42.509584 C 34.782058,42.509584 43.503776,33.787520 43.503775,23.040834 C 43.503775,12.294147 34.782058,3.5720836 24.035816,3.5720836 z M 24.004517,8.4783336 C 32.049892,8.4783336 38.589837,14.990984 38.589837,23.009584 C 38.589837,25.981868 37.657973,28.737374 36.117218,31.040834 L 15.960683,10.915834 C 18.272680,9.3813936 21.022553,8.4783336 24.004517,8.4783336 z M 12.267404,14.447084 L 32.580435,34.728334 C 30.166684,36.490827 27.221538,37.540834 24.004517,37.540834 C 15.959141,37.540834 9.4191980,31.028184 9.4191980,23.009584 C 9.4191980,19.803270 10.497961,16.851741 12.267404,14.447084 z "
-       id="path1314" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.55376345;fill:none;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:0.98682600;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="path2242"
-       sodipodi:cx="28.357143"
-       sodipodi:cy="27.214285"
-       sodipodi:rx="18.357143"
-       sodipodi:ry="18.142857"
-       d="M 46.714287 27.214285 A 18.357143 18.142857 0 1 1  10.000000,27.214285 A 18.357143 18.142857 0 1 1  46.714287 27.214285 z"
-       transform="matrix(1.007576,0.000000,0.000000,1.019157,-4.568194,-4.726048)" />
-    <path
-       style="opacity:0.47849461;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1.0000000"
-       d="M 15.075203,11.366727 L 35.646632,31.938156"
-       id="path2261"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.30645159;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
-       d="M 4.4323460,19.795298 C 4.4561550,21.985774 9.8371077,20.461965 9.8609167,21.652441 C 9.8132977,19.842917 11.837108,15.961965 12.289489,15.152441 L 20.932346,23.509584 C 20.884728,21.771489 27.122823,23.390537 27.003776,21.509584 L 16.718061,10.866727 C 18.241871,10.081013 21.837109,8.7952976 24.075204,8.9381546 C 32.313299,9.1524406 38.051394,16.795298 38.075204,22.009584 L 37.503775,27.009584 C 37.384727,28.866727 43.337108,26.795298 43.146632,28.295298 C 43.551394,27.152441 44.027584,24.795298 43.932346,22.081013 C 43.884727,12.438155 35.765679,3.3667266 24.003775,3.1524406 C 15.420441,3.2833936 8.4978220,8.1822026 6.1287740,14.661370 C 5.9933010,14.694830 4.6585360,16.842917 4.4323460,19.795298 z "
-       id="path2263"
-       sodipodi:nodetypes="cccccccccccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/edit-find-replace.png has changed
--- a/libgui/src/icons/edit-find-replace.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,974 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="30"
-   inkscape:export-xdpi="30"
-   inkscape:export-filename="/home/garrett/edit-find-replace-16.png"
-   sodipodi:docname="edit-find-replace.svg"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg249"
-   height="48.000000px"
-   width="48.000000px"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective144" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4542">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4544" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4546" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         id="stop15666"
-         offset="1.0000000"
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <radialGradient
-       id="aigrd3"
-       cx="20.8921"
-       cy="64.5679"
-       r="5.257"
-       fx="20.8921"
-       fy="64.5679"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         offset="0"
-         style="stop-color:#F0F0F0"
-         id="stop15573" />
-      <stop
-         offset="1.0000000"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         id="stop15575" />
-    </radialGradient>
-    <radialGradient
-       id="aigrd2"
-       cx="20.8921"
-       cy="114.5684"
-       r="5.256"
-       fx="20.8921"
-       fy="114.5684"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         offset="0"
-         style="stop-color:#F0F0F0"
-         id="stop15566" />
-      <stop
-         offset="1.0000000"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         id="stop15568" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         offset="0.0000000"
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
-      <stop
-         id="stop271"
-         offset="1.0000000"
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         offset="0.0000000"
-         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
-      <stop
-         id="stop261"
-         offset="1.0000000"
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient269"
-       id="radialGradient15656"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
-       cx="8.8244190"
-       cy="3.7561285"
-       fx="8.8244190"
-       fy="3.7561285"
-       r="37.751713" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient259"
-       id="radialGradient15658"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)"
-       cx="33.966679"
-       cy="35.736916"
-       fx="33.966679"
-       fy="35.736916"
-       r="86.708450" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15662"
-       id="radialGradient15668"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
-       cx="8.1435566"
-       cy="7.2678967"
-       fx="8.1435566"
-       fy="7.2678967"
-       r="38.158695" />
-    <radialGradient
-       r="5.256"
-       fy="114.5684"
-       fx="20.8921"
-       cy="114.5684"
-       cx="20.8921"
-       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2283"
-       xlink:href="#aigrd2"
-       inkscape:collect="always" />
-    <radialGradient
-       r="5.257"
-       fy="64.5679"
-       fx="20.8921"
-       cy="64.5679"
-       cx="20.8921"
-       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2285"
-       xlink:href="#aigrd3"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4542"
-       id="radialGradient4548"
-       cx="24.306795"
-       cy="42.07798"
-       fx="24.306795"
-       fy="42.07798"
-       r="15.821514"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         offset="0"
-         style="stop-color:#7d7d7d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop4448" />
-      <stop
-         id="stop4444"
-         offset="1.0000000"
-         style="stop-color:#686868;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         offset="0.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.20784314;" />
-      <stop
-         id="stop4458"
-         offset="1.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.67619050;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4471"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.24761905;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4477"
-       inkscape:collect="always">
-      <stop
-         id="stop4479"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4481"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2368" />
-      <stop
-         id="stop2374"
-         offset="0.50000000"
-         style="stop-color:#ffffff;stop-opacity:0.21904762;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2370" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop2848" />
-      <stop
-         style="stop-color:#484848;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2850" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2865"
-       inkscape:collect="always">
-      <stop
-         id="stop2867"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2869"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         offset="0"
-         style="stop-color:#ffd1d1;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ff1d1d;stop-opacity:1;"
-         offset="0.5"
-         id="stop3006" />
-      <stop
-         id="stop2970"
-         offset="1"
-         style="stop-color:#6f0000;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         offset="0"
-         style="stop-color:#c1c1c1;stop-opacity:1;" />
-      <stop
-         id="stop2978"
-         offset="1"
-         style="stop-color:#acacac;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984"
-       inkscape:collect="always">
-      <stop
-         id="stop2986"
-         offset="0"
-         style="stop-color:#e7e2b8;stop-opacity:1;" />
-      <stop
-         id="stop2988"
-         offset="1"
-         style="stop-color:#e7e2b8;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2998"
-         offset="1"
-         style="stop-color:#c9c9c9;stop-opacity:1;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4477"
-       id="radialGradient2504"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.237968,-1.591178e-15,28.93278)"
-       cx="24.130018"
-       cy="37.967922"
-       fx="24.130018"
-       fy="37.967922"
-       r="16.528622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2865"
-       id="radialGradient2552"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.348243,-2.396518e-14,26.35543)"
-       cx="23.5625"
-       cy="40.4375"
-       fx="23.5625"
-       fy="40.4375"
-       r="19.5625" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2966"
-       id="linearGradient2554"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,-3.312994e-15)"
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2974"
-       id="linearGradient2556"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,-3.312994e-15)"
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2984"
-       id="radialGradient2558"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,-1.236196e-16,8.582434e-17,2.029717,-61.55532,-27.88417)"
-       cx="29.053354"
-       cy="27.640751"
-       fx="29.053354"
-       fy="27.640751"
-       r="3.2408544" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2994"
-       id="linearGradient2560"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)"
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2846"
-       id="linearGradient2730"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,1,48.18409,-6.22072e-15)"
-       x1="27.366341"
-       y1="26.580296"
-       x2="31.335964"
-       y2="30.557772" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4440"
-       id="linearGradient2732"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.334593,0,0,1.291292,55.15793,-7.460658)"
-       x1="30.656250"
-       y1="34.000000"
-       x2="33.218750"
-       y2="31.062500" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2366"
-       id="linearGradient2734"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,1,44.17827,-7.045146e-16)"
-       x1="18.292673"
-       y1="13.602121"
-       x2="17.500893"
-       y2="25.743469" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4454"
-       id="radialGradient2736"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,1,43.352,1.032377e-15)"
-       cx="18.240929"
-       cy="21.817987"
-       fx="18.240929"
-       fy="21.817987"
-       r="8.3085051" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4467"
-       id="radialGradient2738"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.592963,-7.7469e-24,-5.714443e-24,2.252104,-25.05976,-18.941)"
-       cx="15.414371"
-       cy="13.078408"
-       fx="15.414371"
-       fy="13.078408"
-       r="6.6562500" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="126"
-     inkscape:window-x="59"
-     inkscape:window-height="705"
-     inkscape:window-width="1102"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="true"
-     inkscape:current-layer="layer6"
-     inkscape:cy="-7.874336"
-     inkscape:cx="38.123818"
-     inkscape:zoom="1"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.59607843"
-     bordercolor="#434343"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:showpageshadow="false"
-     borderlayer="true" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Edit Find Replace</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>edit</rdf:li>
-            <rdf:li>find</rdf:li>
-            <rdf:li>locate</rdf:li>
-            <rdf:li>search</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Garrett LeSage</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner, Steven Garrity</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Shadow">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.165152e-2,0,0,1.485743e-2,43.0076,42.68539)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-  </g>
-  <g
-     style="display:inline"
-     inkscape:groupmode="layer"
-     inkscape:label="Base"
-     id="layer1">
-    <path
-       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854"
-       d="M 11.505723,5.4942766 L 11.505723,43.400869"
-       id="path15672"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Magnifying Glass"
-     style="display:inline">
-    <g
-       id="g2679">
-      <rect
-         rx="1.1449448"
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         transform="matrix(1.003584,0,0,1.001943,-0.12722,-0.153534)"
-         ry="1.1468204"
-         y="3.6464462"
-         x="6.6035528"
-         height="40.920494"
-         width="34.875"
-         id="rect15391"
-         style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-      <rect
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         transform="matrix(1.003584,0,0,1.001943,-0.12722,-0.153534)"
-         rx="0.14851625"
-         ry="0.14875954"
-         y="4.5839462"
-         x="7.6660538"
-         height="38.946384"
-         width="32.775887"
-         id="rect15660"
-         style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-      <g
-         id="g2270"
-         transform="translate(0.646447,-3.798933e-2)"
-         style="display:inline">
-        <g
-           transform="matrix(0.229703,0.000000,0.000000,0.229703,4.967081,4.244972)"
-           style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
-           id="g1440">
-          <radialGradient
-             gradientUnits="userSpaceOnUse"
-             fy="114.56840"
-             fx="20.892099"
-             r="5.2560000"
-             cy="114.56840"
-             cx="20.892099"
-             id="radialGradient1442">
-            <stop
-               id="stop1444"
-               style="stop-color:#F0F0F0"
-               offset="0" />
-            <stop
-               id="stop1446"
-               style="stop-color:#474747"
-               offset="1" />
-          </radialGradient>
-          <path
-             id="path1448"
-             d="M 23.428000,113.07000 C 23.428000,115.04300 21.828000,116.64200 19.855000,116.64200 C 17.881000,116.64200 16.282000,115.04200 16.282000,113.07000 C 16.282000,111.09600 17.882000,109.49700 19.855000,109.49700 C 21.828000,109.49700 23.428000,111.09700 23.428000,113.07000 z "
-             style="stroke:none" />
-          <radialGradient
-             gradientUnits="userSpaceOnUse"
-             fy="64.567902"
-             fx="20.892099"
-             r="5.2570000"
-             cy="64.567902"
-             cx="20.892099"
-             id="radialGradient1450">
-            <stop
-               id="stop1452"
-               style="stop-color:#F0F0F0"
-               offset="0" />
-            <stop
-               id="stop1454"
-               style="stop-color:#474747"
-               offset="1" />
-          </radialGradient>
-          <path
-             id="path1456"
-             d="M 23.428000,63.070000 C 23.428000,65.043000 21.828000,66.643000 19.855000,66.643000 C 17.881000,66.643000 16.282000,65.043000 16.282000,63.070000 C 16.282000,61.096000 17.882000,59.497000 19.855000,59.497000 C 21.828000,59.497000 23.428000,61.097000 23.428000,63.070000 z "
-             style="stroke:none" />
-        </g>
-        <path
-           id="path15570"
-           d="M 9.9950109,29.952326 C 9.9950109,30.405530 9.6274861,30.772825 9.1742821,30.772825 C 8.7208483,30.772825 8.3535532,30.405301 8.3535532,29.952326 C 8.3535532,29.498892 8.7210780,29.131597 9.1742821,29.131597 C 9.6274861,29.131597 9.9950109,29.499122 9.9950109,29.952326 z "
-           style="fill:url(#radialGradient2283);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
-        <path
-           id="path15577"
-           d="M 9.9950109,18.467176 C 9.9950109,18.920380 9.6274861,19.287905 9.1742821,19.287905 C 8.7208483,19.287905 8.3535532,18.920380 8.3535532,18.467176 C 8.3535532,18.013742 8.7210780,17.646447 9.1742821,17.646447 C 9.6274861,17.646447 9.9950109,18.013972 9.9950109,18.467176 z "
-           style="fill:url(#radialGradient2285);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
-      </g>
-      <path
-         sodipodi:nodetypes="cc"
-         id="path15674"
-         d="M 12.500000,5.0205154 L 12.500000,43.038228"
-         style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831;display:inline" />
-      <g
-         id="g2253"
-         transform="matrix(0.909091,0.000000,0.000000,1.000000,2.363628,0.000000)">
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="9.0000000"
-           x="15.000002"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15686"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="11.000000"
-           x="15.000002"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15688"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="13.000000"
-           x="15.000002"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15690"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="15.000000"
-           x="15.000002"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15692"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="17.000000"
-           x="15.000002"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15694"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="19.000000"
-           x="15.000002"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15696"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="21.000000"
-           x="15.000002"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15698"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="23.000000"
-           x="15.000002"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15700"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.068204239"
-           y="25.000000"
-           x="14.999992"
-           height="1.0000000"
-           width="9.9000053"
-           id="rect15732"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="29.000000"
-           x="14.999992"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15736"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="31.000000"
-           x="14.999992"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15738"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="33.000000"
-           x="14.999992"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15740"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.15156493"
-           y="35.000000"
-           x="14.999992"
-           height="1.0000000"
-           width="22.000004"
-           id="rect15742"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           ry="0.065390877"
-           rx="0.10609552"
-           y="37.000000"
-           x="14.999992"
-           height="1.0000000"
-           width="15.400014"
-           id="rect15744"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
-      </g>
-    </g>
-    <path
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       transform="matrix(0.962422,0,0,1.011366,-7.130766,-7.903209)"
-       d="M 40.65864 37.967922 A 16.528622 3.9332814 0 1 1  7.6013966,37.967922 A 16.528622 3.9332814 0 1 1  40.65864 37.967922 z"
-       sodipodi:ry="3.9332814"
-       sodipodi:rx="16.528622"
-       sodipodi:cy="37.967922"
-       sodipodi:cx="24.130018"
-       id="path4475"
-       style="opacity:0.17112301;color:#000000;fill:url(#radialGradient2504);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <g
-       id="g2711"
-       transform="translate(-1.000325,-0.85088)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true">
-      <path
-         transform="matrix(-0.643277,0,0,0.643277,31.49802,4.828704)"
-         sodipodi:nodetypes="csscccscccscczzzz"
-         id="path2844"
-         d="M 18.627569,3.1435548 C 10.488439,3.1435548 3.8827682,9.7492259 3.8827682,17.888356 C 3.8827682,26.027486 10.488439,32.633158 18.627569,32.633158 C 22.107124,32.633158 25.17857,31.248765 27.701292,29.230511 C 27.495915,30.237392 27.623257,31.265879 28.457436,31.990436 L 39.42152,41.517846 C 40.654936,42.589175 42.508982,42.448806 43.58031,41.215389 C 44.651638,39.981971 44.511269,38.127927 43.277853,37.056599 L 32.313769,27.529188 C 31.642242,26.945909 30.820891,26.773219 30.007531,26.886466 C 31.994231,24.374044 33.37237,21.337663 33.37237,17.888356 C 33.37237,9.7492259 26.766699,3.1435548 18.627569,3.1435548 z M 18.551954,4.3697381 C 26.191413,4.3697381 31.843729,9.1586886 31.843729,17.661513 C 31.843729,26.336626 26.027039,30.953288 18.551954,30.953288 C 11.249005,30.953288 5.2601806,25.475196 5.2601806,17.661513 C 5.2601806,9.6774061 11.084819,4.369738 18.551954,4.3697381 z "
-         style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2730);stroke-width:3.10908341;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="matrix(-0.643277,0,0,0.643277,31.49802,4.828704)"
-         style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 18.602905,3.0803551 C 10.437465,3.0803551 3.8104408,9.7073791 3.8104408,17.872819 C 3.8104408,26.038259 10.437465,32.665283 18.602905,32.665283 C 22.093708,32.665283 25.175082,31.276416 27.70596,29.251638 C 27.499919,30.261774 27.627672,31.293585 28.464547,32.020484 L 39.464073,41.578691 C 40.701476,42.653483 42.561515,42.512661 43.636306,41.275256 C 44.711097,40.037852 44.570274,38.177814 43.332871,37.103023 L 32.333346,27.544815 C 31.659648,26.959651 30.835642,26.786402 30.019653,26.900016 C 32.012775,24.379472 33.395369,21.333276 33.395369,17.872819 C 33.395369,9.7073791 26.768345,3.0803551 18.602905,3.0803551 z M 18.527046,6.2664243 C 24.808154,6.2664245 29.905864,11.364135 29.905864,17.645243 C 29.905864,23.926351 24.808154,29.024061 18.527046,29.024061 C 12.245938,29.024061 7.1482276,23.926351 7.1482276,17.645243 C 7.1482278,11.364135 12.245938,6.2664243 18.527046,6.2664243 z "
-         id="path4430"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="matrix(-0.643277,0,0,0.643277,31.49802,4.828704)"
-         style="color:#000000;fill:url(#linearGradient2732);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 39.507004,41.57769 C 39.028332,39.304503 40.904334,36.766268 43.091057,36.789315 C 43.091057,36.789315 32.33069,27.531204 32.33069,27.531204 C 29.385899,27.474498 28.061188,29.80382 28.553876,32.131126 L 39.507004,41.57769 z "
-         id="path4438"
-         sodipodi:nodetypes="ccccc"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         sodipodi:type="arc"
-         style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2734);stroke-width:1.24788225;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="path4450"
-         sodipodi:cx="17.500893"
-         sodipodi:cy="18.920233"
-         sodipodi:rx="11.048544"
-         sodipodi:ry="11.048544"
-         d="M 28.549437 18.920233 A 11.048544 11.048544 0 1 1  6.4523487,18.920233 A 11.048544 11.048544 0 1 1  28.549437 18.920233 z"
-         transform="matrix(-0.801358,0,0,0.801358,33.70147,0.855159)"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <rect
-         style="opacity:0.43315507;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.55458939;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect4495"
-         width="19.048439"
-         height="4.4404783"
-         x="40.373337"
-         y="0.14086054"
-         rx="3.3215265"
-         ry="2.9348745"
-         transform="matrix(-0.484379,0.4233,0.417423,0.489452,31.49802,4.828704)"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         sodipodi:type="arc"
-         style="color:#000000;fill:url(#radialGradient2736);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:1.11148739;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dashoffset:0;stroke-opacity:1;visibility:visible"
-         id="path4452"
-         sodipodi:cx="17.589281"
-         sodipodi:cy="18.478292"
-         sodipodi:rx="8.3085051"
-         sodipodi:ry="8.3085051"
-         d="M 25.897786 18.478292 A 8.3085051 8.3085051 0 1 1  9.280776,18.478292 A 8.3085051 8.3085051 0 1 1  25.897786 18.478292 z"
-         transform="matrix(-0.899697,0,0,0.899697,35.502,-0.509826)"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="matrix(0.643277,0,0,0.643277,7.855933,4.828704)"
-         style="opacity:0.83422457;color:#000000;fill:url(#radialGradient2738);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 18.156915,7.3966938 C 12.949325,7.3966938 8.7323681,11.613651 8.7323681,16.821241 C 8.7323681,18.325216 9.1526753,19.709014 9.77954,20.971144 C 11.03192,21.432757 12.362297,21.746827 13.774307,21.746827 C 19.945262,21.746827 24.873589,16.88519 25.254413,10.809698 C 23.523449,8.7641668 21.044374,7.3966938 18.156915,7.3966938 z "
-         id="path4462"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-    </g>
-    <path
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       transform="matrix(0.616613,0,0,0.293577,12.73816,29.12848)"
-       d="M 43.125 40.4375 A 19.5625 6.8125 0 1 1  4,40.4375 A 19.5625 6.8125 0 1 1  43.125 40.4375 z"
-       sodipodi:ry="6.8125"
-       sodipodi:rx="19.5625"
-       sodipodi:cy="40.4375"
-       sodipodi:cx="23.5625"
-       id="path3008"
-       style="opacity:0.2;color:#000000;fill:url(#radialGradient2552);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <g
-       id="g1574"
-       transform="matrix(1.033699,-0.276979,0.276979,1.033699,16.06828,-14.54823)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true">
-      <path
-         transform="translate(-29.75546,19)"
-         sodipodi:nodetypes="cccccc"
-         id="path2960"
-         d="M 17.34116,32.5 L 22.96616,26.875 L 43.059909,17.125 C 46.309909,15.875 48.247409,20.5 45.372409,22.125 L 25.34116,31.5 L 17.34116,32.5 z "
-         style="color:#000000;fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:0.93443578;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="translate(-29.75546,19)"
-         style="color:#000000;fill:url(#linearGradient2554);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 45.361958,21.53125 C 45.361958,21.53125 46.81399,20.649883 46.018208,18.6875 C 45.233296,16.751923 43.330708,17.53125 43.330708,17.53125 L 38.330708,20 z "
-         id="path2964"
-         sodipodi:nodetypes="czcczcc"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="translate(-29.75546,19)"
-         sodipodi:nodetypes="czcczcc"
-         id="path2962"
-         d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 42.330708,23 C 42.330708,23 43.15774,21.681133 42.549458,20.3125 C 41.924458,18.90625 40.330708,19 40.330708,19 L 38.330708,20 z "
-         style="color:#000000;fill:url(#linearGradient2556);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="translate(-29.75546,19)"
-         sodipodi:nodetypes="cccc"
-         id="path2982"
-         d="M 18.768208,31.78125 L 23.268208,27.28125 C 24.768208,28.09375 25.549458,29.4375 25.143208,31 L 18.768208,31.78125 z "
-         style="color:#000000;fill:url(#radialGradient2558);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="translate(-29.75546,19)"
-         sodipodi:nodetypes="cccc"
-         id="path2992"
-         d="M 20.111958,30.375 L 18.486958,31.96875 L 20.830708,31.65625 C 21.049458,30.9375 20.643208,30.59375 20.111958,30.375 z "
-         style="color:#000000;fill:url(#linearGradient2560);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="translate(-29.75546,19)"
-         sodipodi:nodetypes="ccccc"
-         id="path3002"
-         d="M 23.268208,27.25 L 24.830708,28.5 L 40.218048,21.18133 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 z "
-         style="color:#000000;fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-      <path
-         transform="translate(-29.75546,19)"
-         sodipodi:nodetypes="ccccc"
-         id="path3004"
-         d="M 25.143208,31.0625 L 25.330708,30.3125 L 40.561798,23.1829 C 40.561798,23.1829 40.451638,23.796527 40.345919,23.93225 L 25.143208,31.0625 z "
-         style="color:#000000;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/edit-find.png has changed
--- a/libgui/src/icons/edit-find.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,750 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="90.000000"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-filename="/home/steven/edit-find-48.png"
-   sodipodi:docname="edit-find.svg"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg249"
-   height="48.000000px"
-   width="48.000000px"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective113" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4542">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4544" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4546" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         id="stop15666"
-         offset="1.0000000"
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <radialGradient
-       id="aigrd3"
-       cx="20.8921"
-       cy="64.5679"
-       r="5.257"
-       fx="20.8921"
-       fy="64.5679"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         offset="0"
-         style="stop-color:#F0F0F0"
-         id="stop15573" />
-      <stop
-         offset="1.0000000"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         id="stop15575" />
-    </radialGradient>
-    <radialGradient
-       id="aigrd2"
-       cx="20.8921"
-       cy="114.5684"
-       r="5.256"
-       fx="20.8921"
-       fy="114.5684"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         offset="0"
-         style="stop-color:#F0F0F0"
-         id="stop15566" />
-      <stop
-         offset="1.0000000"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         id="stop15568" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         offset="0.0000000"
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
-      <stop
-         id="stop271"
-         offset="1.0000000"
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         offset="0.0000000"
-         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
-      <stop
-         id="stop261"
-         offset="1.0000000"
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient269"
-       id="radialGradient15656"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
-       cx="8.8244190"
-       cy="3.7561285"
-       fx="8.8244190"
-       fy="3.7561285"
-       r="37.751713" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient259"
-       id="radialGradient15658"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)"
-       cx="33.966679"
-       cy="35.736916"
-       fx="33.966679"
-       fy="35.736916"
-       r="86.708450" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15662"
-       id="radialGradient15668"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
-       cx="8.1435566"
-       cy="7.2678967"
-       fx="8.1435566"
-       fy="7.2678967"
-       r="38.158695" />
-    <radialGradient
-       r="5.256"
-       fy="114.5684"
-       fx="20.8921"
-       cy="114.5684"
-       cx="20.8921"
-       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2283"
-       xlink:href="#aigrd2"
-       inkscape:collect="always" />
-    <radialGradient
-       r="5.257"
-       fy="64.5679"
-       fx="20.8921"
-       cy="64.5679"
-       cx="20.8921"
-       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2285"
-       xlink:href="#aigrd3"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4542"
-       id="radialGradient4548"
-       cx="24.306795"
-       cy="42.07798"
-       fx="24.306795"
-       fy="42.07798"
-       r="15.821514"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         offset="0"
-         style="stop-color:#7d7d7d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop4448" />
-      <stop
-         id="stop4444"
-         offset="1.0000000"
-         style="stop-color:#686868;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         offset="0.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.20784314;" />
-      <stop
-         id="stop4458"
-         offset="1.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.67619050;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4471"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.24761905;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4477"
-       inkscape:collect="always">
-      <stop
-         id="stop4479"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4481"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2368" />
-      <stop
-         id="stop2374"
-         offset="0.50000000"
-         style="stop-color:#ffffff;stop-opacity:0.21904762;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2370" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop2848" />
-      <stop
-         style="stop-color:#484848;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2850" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4477"
-       id="radialGradient1527"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.237968,-8.821068e-16,28.93278)"
-       cx="24.130018"
-       cy="37.967922"
-       fx="24.130018"
-       fy="37.967922"
-       r="16.528622" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2846"
-       id="linearGradient1529"
-       gradientUnits="userSpaceOnUse"
-       x1="27.366341"
-       y1="26.580296"
-       x2="31.335964"
-       y2="30.557772" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4440"
-       id="linearGradient1531"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.334593,0.000000,0.000000,1.291292,-6.973842,-7.460658)"
-       x1="30.656250"
-       y1="34.000000"
-       x2="33.218750"
-       y2="31.062500" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2366"
-       id="linearGradient1533"
-       gradientUnits="userSpaceOnUse"
-       x1="18.292673"
-       y1="13.602121"
-       x2="17.500893"
-       y2="25.743469" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4454"
-       id="radialGradient1537"
-       gradientUnits="userSpaceOnUse"
-       cx="18.240929"
-       cy="21.817987"
-       fx="18.240929"
-       fy="21.817987"
-       r="8.3085051" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4467"
-       id="radialGradient1539"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.592963,-7.746900e-24,-5.714443e-24,2.252104,-25.05975,-18.94100)"
-       cx="15.414371"
-       cy="13.078408"
-       fx="15.414371"
-       fy="13.078408"
-       r="6.6562500" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="418"
-     inkscape:window-height="818"
-     inkscape:window-width="1016"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="true"
-     inkscape:current-layer="layer6"
-     inkscape:cy="14.980943"
-     inkscape:cx="25.938708"
-     inkscape:zoom="1"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Edit Find</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>edit</rdf:li>
-            <rdf:li>find</rdf:li>
-            <rdf:li>locate</rdf:li>
-            <rdf:li>search</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Steven Garrity</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Shadow">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.165152e-2,0,0,1.485743e-2,43.0076,42.68539)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-  </g>
-  <g
-     style="display:inline"
-     inkscape:groupmode="layer"
-     inkscape:label="Base"
-     id="layer1">
-    <rect
-       style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-       id="rect15391"
-       width="34.875000"
-       height="40.920494"
-       x="6.6035528"
-       y="3.6464462"
-       ry="1.1490486" />
-    <rect
-       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-       id="rect15660"
-       width="32.775887"
-       height="38.946384"
-       x="7.6660538"
-       y="4.5839462"
-       ry="0.14904857"
-       rx="0.14904857" />
-    <g
-       transform="translate(0.646447,-3.798933e-2)"
-       id="g2270">
-      <g
-         id="g1440"
-         style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
-         transform="matrix(0.229703,0.000000,0.000000,0.229703,4.967081,4.244972)">
-        <radialGradient
-           id="radialGradient1442"
-           cx="20.892099"
-           cy="114.56840"
-           r="5.2560000"
-           fx="20.892099"
-           fy="114.56840"
-           gradientUnits="userSpaceOnUse">
-          <stop
-             offset="0"
-             style="stop-color:#F0F0F0"
-             id="stop1444" />
-          <stop
-             offset="1"
-             style="stop-color:#474747"
-             id="stop1446" />
-        </radialGradient>
-        <path
-           style="stroke:none"
-           d="M 23.428000,113.07000 C 23.428000,115.04300 21.828000,116.64200 19.855000,116.64200 C 17.881000,116.64200 16.282000,115.04200 16.282000,113.07000 C 16.282000,111.09600 17.882000,109.49700 19.855000,109.49700 C 21.828000,109.49700 23.428000,111.09700 23.428000,113.07000 z "
-           id="path1448" />
-        <radialGradient
-           id="radialGradient1450"
-           cx="20.892099"
-           cy="64.567902"
-           r="5.2570000"
-           fx="20.892099"
-           fy="64.567902"
-           gradientUnits="userSpaceOnUse">
-          <stop
-             offset="0"
-             style="stop-color:#F0F0F0"
-             id="stop1452" />
-          <stop
-             offset="1"
-             style="stop-color:#474747"
-             id="stop1454" />
-        </radialGradient>
-        <path
-           style="stroke:none"
-           d="M 23.428000,63.070000 C 23.428000,65.043000 21.828000,66.643000 19.855000,66.643000 C 17.881000,66.643000 16.282000,65.043000 16.282000,63.070000 C 16.282000,61.096000 17.882000,59.497000 19.855000,59.497000 C 21.828000,59.497000 23.428000,61.097000 23.428000,63.070000 z "
-           id="path1456" />
-      </g>
-      <path
-         style="fill:url(#radialGradient2283);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
-         d="M 9.9950109,29.952326 C 9.9950109,30.405530 9.6274861,30.772825 9.1742821,30.772825 C 8.7208483,30.772825 8.3535532,30.405301 8.3535532,29.952326 C 8.3535532,29.498892 8.7210780,29.131597 9.1742821,29.131597 C 9.6274861,29.131597 9.9950109,29.499122 9.9950109,29.952326 z "
-         id="path15570" />
-      <path
-         style="fill:url(#radialGradient2285);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
-         d="M 9.9950109,18.467176 C 9.9950109,18.920380 9.6274861,19.287905 9.1742821,19.287905 C 8.7208483,19.287905 8.3535532,18.920380 8.3535532,18.467176 C 8.3535532,18.013742 8.7210780,17.646447 9.1742821,17.646447 C 9.6274861,17.646447 9.9950109,18.013972 9.9950109,18.467176 z "
-         id="path15577" />
-    </g>
-    <path
-       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854"
-       d="M 11.505723,5.4942766 L 11.505723,43.400869"
-       id="path15672"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831"
-       d="M 12.500000,5.0205154 L 12.500000,43.038228"
-       id="path15674"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Magnifying Glass"
-     style="display:inline">
-    <g
-       transform="matrix(0.909091,0.000000,0.000000,1.000000,2.363628,0.000000)"
-       id="g2253">
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15686"
-         width="22.000004"
-         height="1.0000000"
-         x="15.000002"
-         y="9.0000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15688"
-         width="22.000004"
-         height="1.0000000"
-         x="15.000002"
-         y="11.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15690"
-         width="22.000004"
-         height="1.0000000"
-         x="15.000002"
-         y="13.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15692"
-         width="22.000004"
-         height="1.0000000"
-         x="15.000002"
-         y="15.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15694"
-         width="22.000004"
-         height="1.0000000"
-         x="15.000002"
-         y="17.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15696"
-         width="22.000004"
-         height="1.0000000"
-         x="15.000002"
-         y="19.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15698"
-         width="22.000004"
-         height="1.0000000"
-         x="15.000002"
-         y="21.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15700"
-         width="22.000004"
-         height="1.0000000"
-         x="15.000002"
-         y="23.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15732"
-         width="9.9000053"
-         height="1.0000000"
-         x="14.999992"
-         y="25.000000"
-         rx="0.068204239"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15736"
-         width="22.000004"
-         height="1.0000000"
-         x="14.999992"
-         y="29.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15738"
-         width="22.000004"
-         height="1.0000000"
-         x="14.999992"
-         y="31.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15740"
-         width="22.000004"
-         height="1.0000000"
-         x="14.999992"
-         y="33.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15742"
-         width="22.000004"
-         height="1.0000000"
-         x="14.999992"
-         y="35.000000"
-         rx="0.15156493"
-         ry="0.065390877" />
-      <rect
-         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
-         id="rect15744"
-         width="15.400014"
-         height="1.0000000"
-         x="14.999992"
-         y="37.000000"
-         rx="0.10609552"
-         ry="0.065390877" />
-    </g>
-    <g
-       id="g1772"
-       transform="matrix(0.665377,0.000000,0.000000,0.665377,15.98645,17.90835)">
-      <path
-         sodipodi:type="arc"
-         style="opacity:0.17112298;color:#000000;fill:url(#radialGradient1527);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="path4475"
-         sodipodi:cx="24.130018"
-         sodipodi:cy="37.967922"
-         sodipodi:rx="16.528622"
-         sodipodi:ry="3.9332814"
-         d="M 40.658640 37.967922 A 16.528622 3.9332814 0 1 1  7.6013966,37.967922 A 16.528622 3.9332814 0 1 1  40.658640 37.967922 z"
-         transform="matrix(1.446431,0.000000,0.000000,1.519990,-10.97453,-17.75168)" />
-      <path
-         sodipodi:nodetypes="csscccscccscczzzz"
-         id="path2844"
-         d="M 18.627569,3.1435548 C 10.488439,3.1435548 3.8827682,9.7492259 3.8827682,17.888356 C 3.8827682,26.027486 10.488439,32.633158 18.627569,32.633158 C 22.107124,32.633158 25.178570,31.248765 27.701292,29.230511 C 27.495915,30.237392 27.623257,31.265879 28.457436,31.990436 L 39.421520,41.517846 C 40.654936,42.589175 42.508982,42.448806 43.580310,41.215389 C 44.651638,39.981971 44.511269,38.127927 43.277853,37.056599 L 32.313769,27.529188 C 31.642242,26.945909 30.820891,26.773219 30.007531,26.886466 C 31.994231,24.374044 33.372370,21.337663 33.372370,17.888356 C 33.372370,9.7492259 26.766699,3.1435548 18.627569,3.1435548 z M 18.551954,4.3697381 C 26.191413,4.3697381 31.843729,9.1586886 31.843729,17.661513 C 31.843729,26.336626 26.027039,30.953288 18.551954,30.953288 C 11.249005,30.953288 5.2601806,25.475196 5.2601806,17.661513 C 5.2601806,9.6774061 11.084819,4.3697380 18.551954,4.3697381 z "
-         style="opacity:1.0000000;color:#000000;fill:#dcdcdc;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1529);stroke-width:3.0058157;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:1.0000000;color:#000000;fill:#dcdcdc;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         d="M 18.602905,3.0803551 C 10.437465,3.0803551 3.8104408,9.7073791 3.8104408,17.872819 C 3.8104408,26.038259 10.437465,32.665283 18.602905,32.665283 C 22.093708,32.665283 25.175082,31.276416 27.705960,29.251638 C 27.499919,30.261774 27.627672,31.293585 28.464547,32.020484 L 39.464073,41.578691 C 40.701476,42.653483 42.561515,42.512661 43.636306,41.275256 C 44.711097,40.037852 44.570274,38.177814 43.332871,37.103023 L 32.333346,27.544815 C 31.659648,26.959651 30.835642,26.786402 30.019653,26.900016 C 32.012775,24.379472 33.395369,21.333276 33.395369,17.872819 C 33.395369,9.7073791 26.768345,3.0803551 18.602905,3.0803551 z M 18.527046,6.2664243 C 24.808154,6.2664245 29.905864,11.364135 29.905864,17.645243 C 29.905864,23.926351 24.808154,29.024061 18.527046,29.024061 C 12.245938,29.024061 7.1482276,23.926351 7.1482276,17.645243 C 7.1482278,11.364135 12.245938,6.2664243 18.527046,6.2664243 z "
-         id="path4430" />
-      <path
-         style="opacity:1.0000000;color:#000000;fill:url(#linearGradient1531);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         d="M 39.507004,41.577690 C 39.028332,39.304503 40.904334,36.766268 43.091057,36.789315 C 43.091057,36.789315 32.330690,27.531204 32.330690,27.531204 C 29.385899,27.474498 28.061188,29.803820 28.553876,32.131126 L 39.507004,41.577690 z "
-         id="path4438"
-         sodipodi:nodetypes="ccccc" />
-      <path
-         sodipodi:type="arc"
-         style="opacity:1.0000000;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1533);stroke-width:1.2064340;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="path4450"
-         sodipodi:cx="17.500893"
-         sodipodi:cy="18.920233"
-         sodipodi:rx="11.048544"
-         sodipodi:ry="11.048544"
-         d="M 28.549437 18.920233 A 11.048544 11.048544 0 1 1  6.4523487,18.920233 A 11.048544 11.048544 0 1 1  28.549437 18.920233 z"
-         transform="matrix(1.245743,0.000000,0.000000,1.245743,-3.425346,-6.177033)" />
-      <rect
-         style="opacity:0.43315509;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.5029539;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         id="rect4495"
-         width="19.048439"
-         height="4.4404783"
-         x="40.373337"
-         y="0.14086054"
-         rx="3.2112026"
-         ry="2.8373930"
-         transform="matrix(0.752986,0.658037,-0.648902,0.760872,0.000000,0.000000)" />
-      <path
-         sodipodi:type="arc"
-         style="color:#000000;fill:url(#radialGradient1537);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3063a3;stroke-width:1.0745695;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible"
-         id="path4452"
-         sodipodi:cx="17.589281"
-         sodipodi:cy="18.478292"
-         sodipodi:rx="8.3085051"
-         sodipodi:ry="8.3085051"
-         d="M 25.897786 18.478292 A 8.3085051 8.3085051 0 1 1  9.2807760,18.478292 A 8.3085051 8.3085051 0 1 1  25.897786 18.478292 z"
-         transform="matrix(1.398614,0.000000,0.000000,1.398614,-6.224338,-8.298958)" />
-      <path
-         style="opacity:0.83422458;color:#000000;fill:url(#radialGradient1539);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         d="M 18.156915,7.3966938 C 12.949325,7.3966938 8.7323681,11.613651 8.7323681,16.821241 C 8.7323681,18.325216 9.1526753,19.709014 9.7795400,20.971144 C 11.031920,21.432757 12.362297,21.746827 13.774307,21.746827 C 19.945262,21.746827 24.873589,16.885190 25.254413,10.809698 C 23.523449,8.7641668 21.044374,7.3966938 18.156915,7.3966938 z "
-         id="path4462" />
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/edit-paste.png has changed
--- a/libgui/src/icons/edit-paste.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,531 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg12360"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   sodipodi:docname="edit-paste.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs12362">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective80" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2259">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2261" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2263" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2251">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2253" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2255" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2239">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2241" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2243" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2224">
-      <stop
-         style="stop-color:#7c7c7c;stop-opacity:1;"
-         offset="0"
-         id="stop2226" />
-      <stop
-         style="stop-color:#b8b8b8;stop-opacity:1;"
-         offset="1"
-         id="stop2228" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2216">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2218" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2220" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15234">
-      <stop
-         style="stop-color:#97978a;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15236" />
-      <stop
-         id="stop15242"
-         offset="0.50000000"
-         style="stop-color:#c2c2b9;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#7d7d6f;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15238" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15218">
-      <stop
-         style="stop-color:#f0f0ef;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15220" />
-      <stop
-         id="stop2269"
-         offset="0.59928656"
-         style="stop-color:#e8e8e8;stop-opacity:1;" />
-      <stop
-         id="stop2267"
-         offset="0.82758623"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#d8d8d3;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15222" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient14484">
-      <stop
-         style="stop-color:#c68827;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop14486" />
-      <stop
-         style="stop-color:#89601f;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop14488" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient13746">
-      <stop
-         style="stop-color:#646459;stop-opacity:1;"
-         offset="0"
-         id="stop13748" />
-      <stop
-         style="stop-color:#646459;stop-opacity:0;"
-         offset="1"
-         id="stop13750" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient13746"
-       id="radialGradient13752"
-       cx="24.647722"
-       cy="45.272587"
-       fx="24.647722"
-       fy="45.272587"
-       r="21.011173"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.110577,4.987330e-17,40.26648)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient14484"
-       id="linearGradient14490"
-       x1="6.1071744"
-       y1="10.451290"
-       x2="33.857143"
-       y2="37.879860"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15218"
-       id="linearGradient15224"
-       x1="22.308331"
-       y1="18.992140"
-       x2="35.785294"
-       y2="39.498238"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.065698,0.000000,0.000000,0.987595,-1.564439,7.487332e-2)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15234"
-       id="linearGradient15240"
-       x1="25.404572"
-       y1="3.8180194"
-       x2="25.464211"
-       y2="9.3233509"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.052632,0.000000,0.000000,1.000000,-1.789474,0.000000)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2216"
-       id="linearGradient2222"
-       x1="36.8125"
-       y1="39.15625"
-       x2="39.0625"
-       y2="42.0625"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2224"
-       id="linearGradient2230"
-       x1="35.996582"
-       y1="40.458221"
-       x2="33.664921"
-       y2="37.770721"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2239"
-       id="linearGradient2245"
-       x1="25.682829"
-       y1="12.172059"
-       x2="25.692169"
-       y2="-0.20294096"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2251"
-       id="linearGradient2257"
-       x1="33.396004"
-       y1="36.921333"
-       x2="34.170048"
-       y2="38.070381"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2259"
-       id="linearGradient2265"
-       x1="26.076092"
-       y1="26.696676"
-       x2="30.811172"
-       y2="42.007351"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15234"
-       id="linearGradient2283"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.538743,0.000000,0.000000,0.511806,10.80080,-0.582640)"
-       x1="25.404572"
-       y1="3.8180194"
-       x2="25.404572"
-       y2="6.481061" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15234"
-       id="linearGradient2287"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.005222,0.000000,0.000000,0.883928,-0.627923,0.843750)"
-       x1="25.404572"
-       y1="3.8180194"
-       x2="25.464211"
-       y2="9.3233509" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.15294118"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-125.14425"
-     inkscape:cy="14.046835"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="872"
-     inkscape:window-height="818"
-     inkscape:window-x="385"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata12365">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Edit Paste</dc:title>
-        <dc:date>2005-10-10</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>edit</rdf:li>
-            <rdf:li>paste</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.325216e-2,0,0,1.485743e-2,44.80627,43.06039)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-    <rect
-       style="opacity:1.0000000;fill:url(#linearGradient14490);fill-opacity:1.0;fill-rule:evenodd;stroke:#714c16;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1"
-       id="rect12368"
-       width="39.035683"
-       height="41.045437"
-       x="4.4643173"
-       y="4.5000000"
-       rx="1.3879371"
-       ry="1.3879364" />
-    <rect
-       style="opacity:1;fill:url(#linearGradient15224);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect12413"
-       width="30.951559"
-       height="35.976688"
-       x="8.5323219"
-       y="6.5295157"
-       rx="0.56650835"
-       ry="0.56650835" />
-    <rect
-       style="opacity:1.0000000;fill:#5c5c5c;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="rect13756"
-       width="12.000000"
-       height="4.0000000"
-       x="18.000000"
-       y="0.0000000"
-       rx="0.98387533"
-       ry="0.98387533" />
-    <rect
-       style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2265);stroke-width:1.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect15244"
-       width="29.014147"
-       height="34.040764"
-       x="9.5171413"
-       y="7.4665856"
-       rx="0"
-       ry="0" />
-    <rect
-       style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#c68827;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="rect15974"
-       width="37.085655"
-       height="39.092987"
-       x="5.4393425"
-       y="5.4307775"
-       rx="0.47879848"
-       ry="0.47879848" />
-    <rect
-       ry="1.3879364"
-       rx="1.3879377"
-       y="4.4722719"
-       x="14.791488"
-       height="7"
-       width="18.947376"
-       id="rect2208"
-       style="opacity:0.10795455;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-    <rect
-       ry="1.3879364"
-       rx="1.3879377"
-       y="3.5000000"
-       x="14.526322"
-       height="7.0000000"
-       width="18.947376"
-       id="rect2285"
-       style="opacity:1.0000000;fill:url(#linearGradient15240);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#5c5c5c;stroke-width:1.0000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
-    <rect
-       ry="0.32543635"
-       rx="0.32543635"
-       y="1.2086792"
-       x="19.151323"
-       height="3.5826404"
-       width="9.6973763"
-       id="rect2281"
-       style="opacity:1;fill:url(#linearGradient2283);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-    <rect
-       style="opacity:1;fill:url(#linearGradient2287);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect13754"
-       width="18.093992"
-       height="6.1875"
-       x="14.953014"
-       y="3.9375"
-       rx="1.0129364"
-       ry="1.0129364" />
-    <path
-       style="opacity:0.48863636;color:#000000;fill:url(#linearGradient2222);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 39.018306,36.25 L 39.0625,42.0625 L 30.5625,42.018306 L 39.018306,36.25 z "
-       id="path2212"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="opacity:1;color:#000000;fill:url(#linearGradient2230);fill-opacity:1.0;fill-rule:evenodd;stroke:#868a84;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 30.059082,42.086864 C 31.850223,42.254516 39.048809,37.717278 39.539922,33.698855 C 37.97666,36.121952 34.584971,35.667446 30.476213,35.826456 C 30.476213,35.826456 30.871582,41.586864 30.059082,42.086864 z "
-       id="path2210"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="opacity:0.31681817;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2245);stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       d="M 19.46875 1.46875 C 19.466654 1.4708456 19.470414 1.4975336 19.46875 1.5 C 19.46758 1.502776 19.438116 1.4969757 19.4375 1.5 L 19.4375 4.375 C 19.4375 4.3814229 19.46641 4.4006981 19.46875 4.40625 C 19.471216 4.4079135 19.465974 4.4363298 19.46875 4.4375 L 15.9375 4.4375 C 15.91974 4.4375 15.892285 4.4357551 15.875 4.4375 C 15.840968 4.4426713 15.781454 4.4572762 15.75 4.46875 C 15.611832 4.5269964 15.482328 4.6677699 15.4375 4.8125 C 15.426991 4.8535348 15.4375 4.9243489 15.4375 4.96875 L 15.4375 9.125 C 15.4375 9.1427605 15.435755 9.1702147 15.4375 9.1875 C 15.442671 9.2215321 15.457276 9.2810456 15.46875 9.3125 C 15.478458 9.3355281 15.487176 9.3851004 15.5 9.40625 C 15.5046 9.41307 15.526336 9.4309205 15.53125 9.4375 C 15.552124 9.4628138 15.599686 9.5103764 15.625 9.53125 C 15.638159 9.5410789 15.6734 9.5539504 15.6875 9.5625 C 15.702038 9.5703781 15.734648 9.5872782 15.75 9.59375 C 15.781454 9.6052238 15.840968 9.6198287 15.875 9.625 C 15.892285 9.6267449 15.91974 9.625 15.9375 9.625 L 32.0625 9.625 C 32.08026 9.625 32.107715 9.6267449 32.125 9.625 C 32.159032 9.6198287 32.218546 9.6052238 32.25 9.59375 C 32.265352 9.5872782 32.297962 9.5703781 32.3125 9.5625 C 32.3266 9.5539504 32.361841 9.5410789 32.375 9.53125 C 32.400314 9.5103764 32.447876 9.4628138 32.46875 9.4375 C 32.473664 9.4309205 32.4954 9.41307 32.5 9.40625 C 32.512824 9.3851004 32.521542 9.3355281 32.53125 9.3125 C 32.542724 9.2810456 32.557329 9.2215321 32.5625 9.1875 C 32.564245 9.1702147 32.5625 9.1427605 32.5625 9.125 L 32.5625 4.96875 C 32.5625 4.9243489 32.573009 4.8535348 32.5625 4.8125 C 32.517672 4.6677698 32.388168 4.5269964 32.25 4.46875 C 32.218546 4.4572762 32.159032 4.4426713 32.125 4.4375 C 32.107715 4.4357551 32.08026 4.4375 32.0625 4.4375 L 28.53125 4.4375 C 28.534026 4.4363298 28.528784 4.4079135 28.53125 4.40625 C 28.533591 4.4006981 28.5625 4.3814229 28.5625 4.375 L 28.5625 1.5 C 28.561884 1.4969757 28.53242 1.502776 28.53125 1.5 C 28.529586 1.4975336 28.533346 1.4708456 28.53125 1.46875 C 28.528474 1.4675798 28.503024 1.4693657 28.5 1.46875 L 19.5 1.46875 C 19.496976 1.4693657 19.471526 1.4675798 19.46875 1.46875 z "
-       id="rect2232" />
-    <path
-       sodipodi:nodetypes="cccc"
-       id="path2247"
-       d="M 31.509519,40.68705 C 32.879298,40.003221 36.038783,38.086016 37.338164,36.205012 C 35.545641,36.581496 34.347243,36.794585 31.610576,36.900494 C 31.610576,36.900494 31.697137,39.91208 31.509519,40.68705 z "
-       style="opacity:0.36931818;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2257);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <rect
-       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="rect2271"
-       width="21"
-       height="2"
-       x="14"
-       y="15" />
-    <rect
-       y="19"
-       x="14"
-       height="2"
-       width="20"
-       id="rect2273"
-       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <rect
-       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="rect2275"
-       width="18"
-       height="2"
-       x="14"
-       y="23" />
-    <rect
-       y="27"
-       x="14"
-       height="2"
-       width="21"
-       id="rect2277"
-       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <rect
-       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="rect2279"
-       width="13"
-       height="2"
-       x="14"
-       y="31" />
-  </g>
-</svg>
Binary file libgui/src/icons/edit-redo.png has changed
--- a/libgui/src/icons/edit-redo.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="90.000000"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   width="48px"
-   height="48px"
-   id="svg11300"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
-   sodipodi:docname="edit-redo.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective31" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2240">
-      <stop
-         style="stop-color:#99b00b;stop-opacity:1;"
-         offset="0"
-         id="stop2242" />
-      <stop
-         style="stop-color:#99b00b;stop-opacity:0;"
-         offset="1"
-         id="stop2244" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2232">
-      <stop
-         style="stop-color:#788600;stop-opacity:1;"
-         offset="0"
-         id="stop2234" />
-      <stop
-         style="stop-color:#788600;stop-opacity:0;"
-         offset="1"
-         id="stop2236" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4991">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4993" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4995" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient8668"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-5.825329e-14,16.87306)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient2187"
-       inkscape:collect="always">
-      <stop
-         id="stop2189"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop2191"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2187"
-       id="linearGradient1764"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.813471e-16,-1.171926,1.171926,1.813471e-16,1.782801,54.10111)"
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4991"
-       id="radialGradient4997"
-       cx="16.563837"
-       cy="11.132236"
-       fx="16.563837"
-       fy="11.132236"
-       r="19.0625"
-       gradientTransform="matrix(-1.290127e-2,1.685197,1.713082,1.311475e-2,-1.041499,-10.11571)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2232"
-       id="linearGradient2238"
-       x1="33"
-       y1="35.75"
-       x2="31.5"
-       y2="42.5"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2240"
-       id="linearGradient2246"
-       x1="33"
-       y1="35.75"
-       x2="31.5"
-       y2="42.5"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     stroke="#788600"
-     fill="#99b00b"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.25490196"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4"
-     inkscape:cx="12.500477"
-     inkscape:cy="33.008096"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="892"
-     inkscape:window-height="818"
-     inkscape:window-x="368"
-     inkscape:window-y="30" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Edit Redo</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>edit</rdf:li>
-            <rdf:li>redo</rdf:li>
-            <rdf:li>again</rdf:li>
-            <rdf:li>reapply</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       transform="matrix(1.489736,0.000000,0.000000,-1.001252,-12.64716,75.31260)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.14117647;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       style="opacity:1;color:#000000;fill:url(#linearGradient2246);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient2238);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 38.37476,45.034369 C -1.6510486,46.355509 4.6747954,12.29355 25.49479,12.49765 L 25.49479,3.1222396 L 42.143271,17.708819 L 25.49479,33.006349 C 25.49479,33.006349 25.49479,23.337969 25.49479,23.337969 C 11.43168,22.751999 7.3172614,44.770549 38.37476,45.034369 z "
-       id="path1432"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       sodipodi:nodetypes="ccccccc"
-       id="path2177"
-       d="M 16.92492,39.315519 C 5.2018204,33.235892 8.7371274,13.087489 26.5085,13.549959 L 26.5085,5.4508678 C 26.5085,5.4508678 40.556238,17.714589 40.556238,17.714589 L 26.5085,30.658617 C 26.5085,30.658617 26.5085,22.380979 26.5085,22.380979 C 11.66865,22.032709 12.34859,35.138579 16.92492,39.315519 z "
-       style="opacity:0.69886361;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1764);stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <path
-       style="opacity:0.49431817;color:#000000;fill:url(#radialGradient4997);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 26.036989,4.5686095 L 36.723727,14.798241 C 29.786227,14.79824 32.036989,23.735424 25.911989,26.610424 L 25.974489,22.943609 C 10.786989,22.881109 11.661989,38.443609 22.724489,42.693609 C 3.6363414,37.811681 6.2869904,13.381109 25.911989,12.88111 L 26.036989,4.5686095 z "
-       id="path4989"
-       sodipodi:nodetypes="ccccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/edit-undo.png has changed
--- a/libgui/src/icons/edit-undo.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="90.000000"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   width="48px"
-   height="48px"
-   id="svg11300"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
-   sodipodi:docname="edit-undo.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective31" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2326">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2328" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2330" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2316">
-      <stop
-         style="stop-color:#c4a000;stop-opacity:1;"
-         offset="0"
-         id="stop2318" />
-      <stop
-         style="stop-color:#c4a000;stop-opacity:0;"
-         offset="1"
-         id="stop2320" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2308">
-      <stop
-         style="stop-color:#edd400;stop-opacity:1;"
-         offset="0"
-         id="stop2310" />
-      <stop
-         style="stop-color:#edd400;stop-opacity:0;"
-         offset="1"
-         id="stop2312" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient8668"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-6.227265e-14,16.87306)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient2187"
-       inkscape:collect="always">
-      <stop
-         id="stop2189"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop2191"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2187"
-       id="linearGradient1764"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.813471e-16,-1.171926,-1.171926,1.813471e-16,46.17440,54.10111)"
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2308"
-       id="linearGradient2314"
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2316"
-       id="linearGradient2322"
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2326"
-       id="radialGradient2332"
-       cx="15.09403"
-       cy="13.282721"
-       fx="15.09403"
-       fy="13.282721"
-       r="10.16466"
-       gradientTransform="matrix(2.496031,-1.151905e-16,1.061756e-16,2.300689,-25.12402,-17.82636)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     stroke="#c4a000"
-     fill="#edd400"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.25490196"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.8284271"
-     inkscape:cx="-19.855325"
-     inkscape:cy="-15.183692"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="891"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Edit Undo</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>edit</rdf:li>
-            <rdf:li>undo</rdf:li>
-            <rdf:li>revert</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       transform="matrix(-1.489736,0.000000,0.000000,-1.001252,60.60436,75.31260)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.14117647;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       style="opacity:1;color:#000000;fill:url(#linearGradient2314);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient2322);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 9.582441,45.034369 C 49.608249,46.355509 43.282405,12.29355 22.462411,12.49765 L 22.462411,3.1222396 L 5.8139298,17.708819 L 22.462411,33.006349 C 22.462411,33.006349 22.462411,23.337969 22.462411,23.337969 C 36.525521,22.751999 40.639939,44.770549 9.582441,45.034369 z "
-       id="path1432"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       sodipodi:nodetypes="ccccccc"
-       id="path2177"
-       d="M 31.032281,39.315519 C 42.75538,33.235892 39.220073,13.087489 21.448701,13.549959 L 21.448701,5.4508678 C 21.448701,5.4508678 7.4009628,17.714589 7.4009628,17.714589 L 21.448701,30.658617 C 21.448701,30.658617 21.448701,22.380979 21.448701,22.380979 C 36.288551,22.032709 35.608611,35.138579 31.032281,39.315519 z "
-       style="opacity:0.69886361;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1764);stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <path
-       style="opacity:0.51136364;color:#000000;fill:url(#radialGradient2332);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 6.6291261,17.682797 L 12.28598,23.074486 C 18.561553,22.897709 15.733126,16.710525 26.958446,13.616933 L 22.008699,12.998214 L 21.92031,4.3361562 L 6.6291261,17.682797 z "
-       id="path2324"
-       sodipodi:nodetypes="cccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/figure-axes.png has changed
--- a/libgui/src/icons/figure-axes.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,328 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="32"
-   height="32"
-   viewBox="0 0 32 32"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="axes.svg"
-   inkscape:export-filename="/media/pantxo/datadisk/dev/octavewrk/buguimenus/grid.png"
-   inkscape:export-xdpi="96"
-   inkscape:export-ydpi="96">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="EmptyTriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="EmptyTriangleInM"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path11121"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt"
-         transform="matrix(-0.4,0,0,-0.4,1.8,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path10973"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(0.4,0,0,0.4,4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path10967"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(0.8,0,0,0.8,10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path11112"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt"
-         transform="scale(0.4)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4940"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="TriangleOutM">
-      <path
-         transform="scale(0.4)"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         id="path4942"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4834"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4836"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4282"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-3"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-6"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-5"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-5"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-62"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-9"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-1"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-0"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-93"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-6"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-6"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-2"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-6"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-18"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-9"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-20"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-2"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-3"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="15.839192"
-     inkscape:cx="-5.2134374"
-     inkscape:cy="9.4027107"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     units="px"
-     inkscape:window-width="1920"
-     inkscape:window-height="1052"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1">
-    <inkscape:grid
-       type="xygrid"
-       id="grid4136" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Calque 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1020.3622)">
-    <rect
-       style="opacity:0.95;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.51709878px;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-variant-east_asian:normal"
-       id="rect1030"
-       width="20.999962"
-       height="19.319965"
-       x="6.0000381"
-       y="1026.2021" />
-  </g>
-</svg>
Binary file libgui/src/icons/figure-grid.png has changed
--- a/libgui/src/icons/figure-grid.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,357 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="32"
-   height="32"
-   viewBox="0 0 32 32"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="grid.svg"
-   inkscape:export-filename="/media/pantxo/datadisk/dev/octavewrk/buguimenus/grid.png"
-   inkscape:export-xdpi="96"
-   inkscape:export-ydpi="96">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="EmptyTriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="EmptyTriangleInM"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path11121"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt"
-         transform="matrix(-0.4,0,0,-0.4,1.8,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path10973"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(0.4,0,0,0.4,4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path10967"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(0.8,0,0,0.8,10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path11112"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt"
-         transform="scale(0.4)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4940"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="TriangleOutM">
-      <path
-         transform="scale(0.4)"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         id="path4942"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4834"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4836"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4282"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-3"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-6"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-5"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-5"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-62"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-9"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-1"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-0"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-93"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-6"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-6"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-2"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-6"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-18"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleInM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleInM-9"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4282-20"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(-0.4)" />
-    </marker>
-    <marker
-       inkscape:stockid="TriangleOutM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutM-2"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4291-3"
-         d="M 5.77,0 -2.88,5 V -5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="scale(0.4)" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="15.839192"
-     inkscape:cx="0.026728929"
-     inkscape:cy="9.4027107"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     units="px"
-     inkscape:window-width="1920"
-     inkscape:window-height="1052"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1">
-    <inkscape:grid
-       type="xygrid"
-       id="grid4136" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Calque 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1020.3622)">
-    <circle
-       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.03419757;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate;opacity:0.95"
-       id="path10626"
-       cx="3.6666665"
-       cy="1024.9812"
-       r="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.51709878px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:0.95"
-       d="m 10.333333,1045.6956 v -19.3334"
-       id="path12915"
-       inkscape:connector-curvature="0" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path12921"
-       d="m 23.666667,1045.6956 v -19.3334"
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.51709878px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:0.95" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.51709878px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;opacity:0.95"
-       d="M 7,1029.1242 H 27"
-       id="path12925"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.51709878px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;opacity:0.95"
-       d="M 7,1042.9336 H 27"
-       id="path12927"
-       inkscape:connector-curvature="0" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path13032"
-       d="M 7,1036.0156 H 27"
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.51709878px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;opacity:0.95" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.51709878px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:0.95"
-       d="m 17,1045.6956 v -19.3334"
-       id="path13034"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
Binary file libgui/src/icons/figure-pan.png has changed
--- a/libgui/src/icons/figure-pan.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,971 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="64"
-   inkscape:export-xdpi="64"
-   inkscape:export-filename="/home/pantxo/Dev/octavewrk/buguimenus/pan.png"
-   width="48px"
-   height="48px"
-   id="svg11300"
-   sodipodi:version="0.32"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="pan.svg"
-   version="1.1">
-  <defs
-     id="defs3">
-    <linearGradient
-       id="linearGradient2353">
-      <stop
-         id="stop2355"
-         offset="0"
-         style="stop-color:#86acd6;stop-opacity:1;" />
-      <stop
-         id="stop2357"
-         offset="1"
-         style="stop-color:#3970a9;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2343">
-      <stop
-         style="stop-color:#adc7e3;stop-opacity:1;"
-         offset="0"
-         id="stop2345" />
-      <stop
-         style="stop-color:#427fbf;stop-opacity:1;"
-         offset="1"
-         id="stop2347" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2333">
-      <stop
-         style="stop-color:#2b5388;stop-opacity:1;"
-         offset="0"
-         id="stop2335" />
-      <stop
-         id="stop2341"
-         offset="0"
-         style="stop-color:#2f5c96;stop-opacity:1;" />
-      <stop
-         style="stop-color:#97b6de;stop-opacity:1;"
-         offset="1"
-         id="stop2337" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2307">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2309" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2311" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2414">
-      <stop
-         id="stop2416"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0.5"
-         id="stop2315" />
-      <stop
-         id="stop2418"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2402">
-      <stop
-         style="stop-color:#d8d8d8;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop2404" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2406" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2392">
-      <stop
-         id="stop2394"
-         offset="0.0000000"
-         style="stop-color:#a0a0a0;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2396"
-         offset="1.0000000"
-         style="stop-color:#e7e7e7;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2380"
-       inkscape:collect="always">
-      <stop
-         id="stop2382"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2384"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient10314">
-      <stop
-         id="stop10316"
-         offset="0.0000000"
-         style="stop-color:#f3f3f3;stop-opacity:1.0000000;" />
-      <stop
-         id="stop10318"
-         offset="1.0000000"
-         style="stop-color:#838383;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8938">
-      <stop
-         style="stop-color:#fdc674;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop8940" />
-      <stop
-         style="stop-color:#d88103;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop8942" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7636">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop7638" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop7640" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7614">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop7616" />
-      <stop
-         id="stop7649"
-         offset="0.21590909"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         id="stop7632"
-         offset="0.50000000"
-         style="stop-color:#838383;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#838383;stop-opacity:0;"
-         offset="1"
-         id="stop7618" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7608">
-      <stop
-         id="stop7610"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#e3e3e3;stop-opacity:1.0000000;"
-         offset="0.46022728"
-         id="stop7622" />
-      <stop
-         id="stop7624"
-         offset="0.61970556"
-         style="stop-color:#dadada;stop-opacity:0.67058824;" />
-      <stop
-         id="stop7612"
-         offset="1.0000000"
-         style="stop-color:#d1d1d1;stop-opacity:0.34285715;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7602">
-      <stop
-         style="stop-color:#f6f6f6;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop7604" />
-      <stop
-         style="stop-color:#e0e0e0;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop7606" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7586">
-      <stop
-         style="stop-color:#525252;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop7588" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop7590" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient12836"
-       inkscape:collect="always">
-      <stop
-         id="stop12838"
-         offset="0"
-         style="stop-color:#515152;stop-opacity:1;" />
-      <stop
-         id="stop12840"
-         offset="1"
-         style="stop-color:#515152;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient12828">
-      <stop
-         id="stop12830"
-         offset="0.0000000"
-         style="stop-color:#cccccd;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#adadae;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop12862" />
-      <stop
-         id="stop12832"
-         offset="1.0000000"
-         style="stop-color:#8f8f90;stop-opacity:0.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient12810">
-      <stop
-         id="stop12812"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop12814"
-         offset="1.0000000"
-         style="stop-color:#e5e5e5;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11625"
-       inkscape:collect="always">
-      <stop
-         id="stop11627"
-         offset="0"
-         style="stop-color:#fce94f;stop-opacity:1;" />
-      <stop
-         id="stop11629"
-         offset="1"
-         style="stop-color:#fce94f;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11615">
-      <stop
-         id="stop11617"
-         offset="0.0000000"
-         style="stop-color:#636363;stop-opacity:1.0000000;" />
-      <stop
-         id="stop11619"
-         offset="1.0000000"
-         style="stop-color:#000000;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11602">
-      <stop
-         id="stop11604"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         id="stop11606"
-         offset="1.0000000"
-         style="stop-color:#c5c5c5;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11594">
-      <stop
-         id="stop11596"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop11598"
-         offset="1.0000000"
-         style="stop-color:#d1d1d1;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11520">
-      <stop
-         id="stop11522"
-         offset="0.0000000"
-         style="stop-color:#fbfbfb;stop-opacity:1.0000000;" />
-      <stop
-         id="stop11524"
-         offset="1.0000000"
-         style="stop-color:#dcdcdc;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11508"
-       inkscape:collect="always">
-      <stop
-         id="stop11510"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop11512"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11494"
-       inkscape:collect="always">
-      <stop
-         id="stop11496"
-         offset="0"
-         style="stop-color:#ef2929;stop-opacity:1;" />
-      <stop
-         id="stop11498"
-         offset="1"
-         style="stop-color:#ef2929;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11415">
-      <stop
-         id="stop11417"
-         offset="0.0000000"
-         style="stop-color:#204a87;stop-opacity:0.0000000;" />
-      <stop
-         style="stop-color:#204a87;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop11423" />
-      <stop
-         id="stop11419"
-         offset="1"
-         style="stop-color:#204a87;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11399"
-       inkscape:collect="always">
-      <stop
-         id="stop11401"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop11403"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-60.28571,-0.285714)"
-       y2="34.462429"
-       x2="43.615788"
-       y1="3.7744560"
-       x1="15.828360"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11425"
-       xlink:href="#linearGradient11415"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(-60.57143,0.000000)"
-       y2="39.033859"
-       x2="35.679932"
-       y1="9.3458843"
-       x1="9.6957054"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11427"
-       xlink:href="#linearGradient11415"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="33.462429"
-       x2="26.758644"
-       y1="19.774456"
-       x1="13.267134"
-       gradientTransform="translate(-60.85714,0.428571)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11439"
-       xlink:href="#linearGradient11415"
-       inkscape:collect="always" />
-    <radialGradient
-       r="8.5000000"
-       fy="39.142857"
-       fx="12.071428"
-       cy="39.142857"
-       cx="12.071428"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.487395,0.000000,20.06483)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient11441"
-       xlink:href="#linearGradient11399"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)"
-       gradientUnits="userSpaceOnUse"
-       r="3.8335034"
-       fy="15.048258"
-       fx="27.577173"
-       cy="15.048258"
-       cx="27.577173"
-       id="radialGradient11500"
-       xlink:href="#linearGradient11494"
-       inkscape:collect="always" />
-    <radialGradient
-       r="3.8335034"
-       fy="16.049133"
-       fx="27.577173"
-       cy="16.049133"
-       cx="27.577173"
-       gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient11504"
-       xlink:href="#linearGradient11494"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,2.166583e-14,29.48178)"
-       r="6.5659914"
-       fy="44.565483"
-       fx="30.203562"
-       cy="44.565483"
-       cx="30.203562"
-       id="radialGradient11514"
-       xlink:href="#linearGradient11508"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientTransform="matrix(1.995058,-1.535926e-32,0.000000,1.855412,24.94925,-30.20430)"
-       gradientUnits="userSpaceOnUse"
-       r="20.530962"
-       fy="35.878170"
-       fx="24.445690"
-       cy="35.878170"
-       cx="24.445690"
-       id="radialGradient11526"
-       xlink:href="#linearGradient11520"
-       inkscape:collect="always" />
-    <radialGradient
-       r="6.5659914"
-       fy="44.565483"
-       fx="30.203562"
-       cy="44.565483"
-       cx="30.203562"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,-5.348412e-14,29.48178)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient11532"
-       xlink:href="#linearGradient11508"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(1.045319,0.000000,0.000000,0.957884,48.16627,1.415543)"
-       gradientUnits="userSpaceOnUse"
-       y2="38.947163"
-       x2="31.799011"
-       y1="8.9471626"
-       x1="20.092352"
-       id="linearGradient11600"
-       xlink:href="#linearGradient11594"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(0.984324,0.000000,0.000000,0.957884,49.65734,1.415543)"
-       gradientUnits="userSpaceOnUse"
-       y2="39.447163"
-       x2="24.445671"
-       y1="0.49847093"
-       x1="24.445671"
-       id="linearGradient11608"
-       xlink:href="#linearGradient11520"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.570338,3.171097e-15,-4.005596e-15,4.509900,-64.25843,-94.25499)"
-       r="4.7500000"
-       fy="27.749998"
-       fx="25.000000"
-       cy="27.749998"
-       cx="25.000000"
-       id="radialGradient11621"
-       xlink:href="#linearGradient11615"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       id="linearGradient11631"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(2.000000,0.000000)"
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11635"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(4.000000,0.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11639"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(6.000000,0.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11643"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(8.000000,0.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11647"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11655"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(2.000000,0.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11657"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(4.000000,0.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11659"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(6.000000,0.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient11661"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="21.459777"
-       x2="87.528968"
-       y1="21.459777"
-       x1="65.623963"
-       id="linearGradient12816"
-       xlink:href="#linearGradient12810"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="12.022278"
-       x2="62.591469"
-       y1="25.209778"
-       x1="84.998962"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12818"
-       xlink:href="#linearGradient12810"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.969219,0.227988,-0.194668,0.827570,9.443870,-15.99848)"
-       r="7.0056136"
-       fy="33.398670"
-       fx="88.593018"
-       cy="33.398670"
-       cx="88.593018"
-       id="radialGradient12834"
-       xlink:href="#linearGradient12828"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="36.656250"
-       x2="92.062500"
-       y1="31.656250"
-       x1="88.750000"
-       id="linearGradient12842"
-       xlink:href="#linearGradient12836"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="21.459777"
-       x2="87.528968"
-       y1="21.459777"
-       x1="65.623963"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12878"
-       xlink:href="#linearGradient12810"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="36.656250"
-       x2="92.062500"
-       y1="31.656250"
-       x1="88.750000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12880"
-       xlink:href="#linearGradient12836"
-       inkscape:collect="always" />
-    <radialGradient
-       r="7.0056136"
-       fy="33.398670"
-       fx="88.593018"
-       cy="33.398670"
-       cx="88.593018"
-       gradientTransform="matrix(0.969219,0.227988,-0.194668,0.827570,9.443870,-15.99848)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient12882"
-       xlink:href="#linearGradient12828"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="12.022278"
-       x2="62.591469"
-       y1="25.209778"
-       x1="84.998962"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12884"
-       xlink:href="#linearGradient12810"
-       inkscape:collect="always" />
-    <radialGradient
-       r="4.7500000"
-       fy="27.749998"
-       fx="25.000000"
-       cy="27.749998"
-       cx="25.000000"
-       gradientTransform="matrix(3.570338,3.171097e-15,-4.005596e-15,4.509900,-64.25843,-94.25499)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient12894"
-       xlink:href="#linearGradient11615"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(7.267442e-2,-0.181686)"
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12896"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(2.072674,-0.181686)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12898"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(4.072674,-0.181686)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12900"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(6.000000,0.000000)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12902"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(7.267442e-2,-0.181686)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12911"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(2.072674,-0.181686)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12913"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="27.375000"
-       x2="21.500000"
-       y1="30.000000"
-       x1="21.500000"
-       gradientTransform="translate(4.072674,-0.181686)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient12915"
-       xlink:href="#linearGradient11625"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11594"
-       id="linearGradient7584"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.476329,0.000000,0.000000,0.627721,62.07560,9.156933)"
-       x1="31.597168"
-       y1="33.447811"
-       x2="24.445690"
-       y2="21.067410" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7586"
-       id="radialGradient7592"
-       cx="24.399090"
-       cy="29.099535"
-       fx="24.399090"
-       fy="29.099535"
-       r="6.0270013"
-       gradientTransform="matrix(2.407878,2.776254e-16,-5.900875e-16,1.861050,14.96976,-20.55775)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7608"
-       id="linearGradient7596"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.059222,0.000000,0.000000,0.808101,48.08657,4.001391)"
-       x1="22.585604"
-       y1="34.149513"
-       x2="22.585604"
-       y2="11.042997" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7636"
-       id="linearGradient7642"
-       x1="25.279068"
-       y1="28.554562"
-       x2="28.284273"
-       y2="38.454056"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(49.32070,0.000000)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7614"
-       id="radialGradient7647"
-       cx="24.483574"
-       cy="29.609560"
-       fx="24.483574"
-       fy="29.609560"
-       r="4.4774761"
-       gradientTransform="matrix(2.777122,-8.126449e-2,6.891211e-2,2.223012,4.035118,-33.24798)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2307"
-       id="linearGradient2313"
-       x1="21.985764"
-       y1="15.953948"
-       x2="21.776054"
-       y2="9.2115307"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-55.684662,3.005204)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2343"
-       id="linearGradient2349"
-       x1="17.329659"
-       y1="8.1524134"
-       x2="17.329659"
-       y2="22.389206"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-66.114487,0.88388355)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2380"
-       id="radialGradient974"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.223129,0,0,0.33567164,-8.8071623,25.965578)"
-       cx="27.223612"
-       cy="39.072777"
-       fx="27.223612"
-       fy="39.072777"
-       r="18.384777" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2343"
-       id="linearGradient982"
-       gradientUnits="userSpaceOnUse"
-       x1="17.329659"
-       y1="8.1524134"
-       x2="17.329659"
-       y2="22.389206"
-       gradientTransform="matrix(0,0.48743869,-0.48743869,0,74.598989,8.6090155)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2343"
-       id="linearGradient982-1"
-       gradientUnits="userSpaceOnUse"
-       x1="17.329659"
-       y1="8.1524134"
-       x2="17.329659"
-       y2="22.389206"
-       gradientTransform="matrix(0,0.48743869,-0.48743869,0,11.94366,-1.802594)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2343"
-       id="linearGradient1015"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.48743869,-0.48743869,0,127.96938,4.9886278)"
-       x1="17.329659"
-       y1="8.1524134"
-       x2="17.329659"
-       y2="22.389206" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2343"
-       id="linearGradient1023-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.48743869,-0.48743869,0,68.213099,2.2323471)"
-       x1="17.329659"
-       y1="8.1524134"
-       x2="17.329659"
-       y2="22.389206" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2343"
-       id="linearGradient2349-5"
-       x1="17.329659"
-       y1="8.1524134"
-       x2="17.329659"
-       y2="22.389206"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.0110852,-7.0521685)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2307"
-       id="linearGradient2313-0"
-       x1="21.985764"
-       y1="15.953948"
-       x2="21.776054"
-       y2="9.2115307"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4.6562264,-8.2714384)" />
-  </defs>
-  <sodipodi:namedview
-     stroke="#204a87"
-     fill="#729fcf"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.25490196"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.656854"
-     inkscape:cx="31.383363"
-     inkscape:cy="40.213913"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="1920"
-     inkscape:window-height="1052"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:snap-global="false"
-     inkscape:window-maximized="1">
-    <inkscape:grid
-       type="xygrid"
-       id="grid988" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
-        <dc:title></dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>view</rdf:li>
-            <rdf:li>refresh</rdf:li>
-            <rdf:li>reload</rdf:li>
-            <rdf:li>reboot</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <ellipse
-       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.44919787;fill:url(#radialGradient974);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.08159184;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-       id="ellipse960"
-       cx="24.490826"
-       cy="39.081177"
-       rx="22.486954"
-       ry="6.1712399" />
-    <path
-       style="opacity:1;vector-effect:none;fill:url(#linearGradient2349);fill-opacity:1;stroke:#204a87;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-       d="m 24.113437,6.6437268 -6.168813,6.1688122 h 3.337803 v 7.498983 h -7.508102 v -3.328684 l -6.1688133,6.168813 6.1688133,6.168813 V 25.99178 h 7.508102 v 7.498983 h -3.337803 l 6.168813,6.168813 6.168813,-6.168813 H 26.963989 V 25.99178 h 7.48856 v 3.328684 l 6.168814,-6.168813 -6.168814,-6.168813 v 3.328684 h -7.48856 v -7.498983 h 3.318261 z"
-       id="rect990"
-       inkscape:connector-curvature="0" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path1086"
-       d="m 24.113437,7.971912 -3.868492,3.887676 2.060265,-0.01563 -0.0625,9.455955 -9.477592,-0.03125 0.04687,-1.93147 -3.8216173,3.809551 3.8216173,3.840802 -0.01563,-1.993971 9.461967,0.04687 v 9.409081 h -1.95089 l 3.805992,3.528301 3.790367,-3.606426 -1.917714,0.0625 v -9.440331 h 9.413166 v 1.962721 l 3.915368,-3.731427 -3.977868,-4.043926 -0.0625,2.21272 -9.350666,-0.1875 0.1875,-9.44033 1.792714,0.0625 z"
-       style="opacity:0.46590911;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#linearGradient2313);stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-       sodipodi:nodetypes="ccccccccccccccccccccccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/figure-rotate.png has changed
--- a/libgui/src/icons/figure-rotate.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="64"
-   inkscape:export-xdpi="64"
-   inkscape:export-filename="/home/pantxo/Dev/octaveclone/libgui/src/icons/figure-rotate.png"
-   width="48px"
-   height="48px"
-   id="svg11300"
-   sodipodi:version="0.32"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="figure-rotate.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   version="1.1">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective58" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2690">
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:1;"
-         offset="0"
-         id="stop2692" />
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:0;"
-         offset="1"
-         id="stop2694" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2682">
-      <stop
-         style="stop-color:#3977c3;stop-opacity:1;"
-         offset="0"
-         id="stop2684" />
-      <stop
-         style="stop-color:#89aedc;stop-opacity:0;"
-         offset="1"
-         id="stop2686" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2402">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="0"
-         id="stop2404" />
-      <stop
-         style="stop-color:#528ac5;stop-opacity:1;"
-         offset="1"
-         id="stop2406" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2380">
-      <stop
-         style="stop-color:#b9cfe7;stop-opacity:1"
-         offset="0"
-         id="stop2382" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1"
-         id="stop2384" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2871">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2873" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1"
-         offset="1"
-         id="stop2875" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2847">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2849" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:0;"
-         offset="1"
-         id="stop2851" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2831">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2833" />
-      <stop
-         id="stop2855"
-         offset="0.33333334"
-         style="stop-color:#5b86be;stop-opacity:1;" />
-      <stop
-         style="stop-color:#83a8d8;stop-opacity:0;"
-         offset="1"
-         id="stop2835" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2797">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2799" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2801" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2831"
-       id="linearGradient1486"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.92009777,0,0,0.92009777,2.3856234,1.4987352)"
-       x1="13.478554"
-       y1="10.612206"
-       x2="15.419417"
-       y2="19.115122" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2847"
-       id="linearGradient1488"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.92009777,0,0,-0.92009777,45.687722,43.938248)"
-       x1="37.128052"
-       y1="29.729605"
-       x2="37.065414"
-       y2="26.194071" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797"
-       id="linearGradient1491"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797"
-       id="linearGradient1493"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871"
-       id="linearGradient1501"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient1503"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,-9.680928e-14,16.87306)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2380"
-       id="linearGradient2386"
-       x1="62.513836"
-       y1="36.061237"
-       x2="15.984863"
-       y2="20.60858"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2402"
-       id="linearGradient2408"
-       x1="18.935766"
-       y1="23.667896"
-       x2="53.588622"
-       y2="26.649362"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2682"
-       id="linearGradient2688"
-       x1="36.713837"
-       y1="31.455952"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.92009777,0,0,0.92009777,1.9573979,1.7541479)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2690"
-       id="linearGradient2696"
-       x1="32.647972"
-       y1="30.748846"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.92009777,0,0,0.92009777,1.9573979,1.7541479)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2380"
-       id="linearGradient872"
-       gradientUnits="userSpaceOnUse"
-       x1="62.513836"
-       y1="36.061237"
-       x2="15.984863"
-       y2="20.60858" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871"
-       id="linearGradient874"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2402"
-       id="linearGradient876"
-       gradientUnits="userSpaceOnUse"
-       x1="18.935766"
-       y1="23.667896"
-       x2="53.588622"
-       y2="26.649362" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871"
-       id="linearGradient878"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-  </defs>
-  <sodipodi:namedview
-     stroke="#3465a4"
-     fill="#729fcf"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.25490196"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="7.9999999"
-     inkscape:cx="-8.7701413"
-     inkscape:cy="19.722655"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="1791"
-     inkscape:window-height="951"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:title>View Refresh</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>reload</rdf:li>
-            <rdf:li>refresh</rdf:li>
-            <rdf:li>view</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <ellipse
-       transform="matrix(-1.489736,0,0,-1.001252,61.20865,75.2819)"
-       id="path8660"
-       style="opacity:0.38333333;color:#000000;fill:url(#radialGradient1503);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:type="arc"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126" />
-    <path
-       style="color:#000000;display:block;overflow:visible;visibility:visible;fill:url(#linearGradient1486);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1488);stroke-width:0.92009741;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-       d="m 20.500048,11.332277 c 0,0 -8.223374,-0.575061 -5.693105,9.085966 H 7.7336919 c 0,0 0.4600488,-10.9261611 12.7663561,-9.085966 z"
-       id="path2865"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       sodipodi:nodetypes="cccc"
-       inkscape:connector-curvature="0" />
-    <g
-       id="g1878"
-       transform="matrix(-0.53278354,-0.45013759,-0.45013759,0.53278354,54.325545,14.057116)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       style="fill:url(#linearGradient2386);fill-opacity:1;stroke:#3465a4;stroke-opacity:1">
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path1880"
-         d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.113843,3.1515478 7.6245439,20.496754 22.714328,33.219189 c 0,0 -0.251917,-9.88122 -0.251917,-9.88122 18.82976,0.998977 32.981627,14.071729 21.844372,26.891725 z"
-         style="color:#000000;display:block;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient872);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient874);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true"
-         inkscape:connector-curvature="0" />
-    </g>
-    <path
-       sodipodi:nodetypes="cccc"
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       id="path2839"
-       d="m 28.065172,32.519917 c 0,0 8.223374,0.575061 5.693105,-9.085965 h 7.154577 c 0,1.38254 -0.541374,10.926161 -12.847682,9.085965 z"
-       style="color:#000000;display:block;overflow:visible;visibility:visible;fill:url(#linearGradient2696);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2688);stroke-width:0.92009741;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-       inkscape:connector-curvature="0" />
-    <g
-       style="color:#000000;display:block;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient2408);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1501);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       transform="matrix(0.53278354,0.45013759,0.45013759,-0.53278354,-5.3307177,29.850244)"
-       id="g2779">
-      <path
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         style="color:#000000;display:block;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient876);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient878);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-         d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.399432,3.0690297 7.793943,20.424005 22.462411,33.006349 c 0,0 0,-9.66838 0,-9.66838 18.82976,0.998977 32.981627,14.071729 21.844372,26.891725 z"
-         id="path2781"
-         sodipodi:nodetypes="ccccccc"
-         inkscape:connector-curvature="0" />
-    </g>
-    <path
-       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.27222224;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.92009759;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-       d="m 8.4555884,36.890382 0.057506,-13.686455 11.9037646,-0.345036 -4.038192,4.765018 3.558225,2.183575 c -2.760293,2.07022 -4.186029,2.228594 -5.106126,4.586345 l -2.591785,-1.941657 z"
-       id="path2791"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       sodipodi:nodetypes="cccccccc"
-       inkscape:connector-curvature="0" />
-    <g
-       id="g2793"
-       transform="matrix(0.46790284,0.39532093,0.39532093,-0.46790284,-1.6983235,29.855029)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1">
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path2795"
-         d="M 51.090265,45.943705 C 60.210465,30.723955 46.631614,12.20113 19.485058,11.948579 L 19.513464,3.7032834 6.5341979,19.296639 19.367661,30.26876 c 0,0 0.05562,-9.006878 0.05562,-9.006878 17.527815,-0.223909 35.195185,10.103372 31.666984,24.681823 z"
-         style="color:#000000;display:block;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1493);stroke-width:1.50208926;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       transform="matrix(-0.46790284,-0.39532093,-0.39532093,0.46790284,50.767665,14.051696)"
-       id="g2805">
-      <path
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         style="color:#000000;display:block;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1491);stroke-width:1.50208926;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-         d="M 51.389927,46.505946 C 60.510127,31.286196 47.050763,12.432359 19.628482,12.069755 L 19.342824,4.0507204 6.3413093,19.379475 19.809059,30.764589 c 0,0 -0.181765,-9.453243 -0.181765,-9.453243 18.244937,0.381972 34.783881,10.925246 31.762633,25.1946 z"
-         id="path2807"
-         sodipodi:nodetypes="ccccccc"
-         inkscape:connector-curvature="0" />
-    </g>
-    <path
-       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.27222224;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.92009759;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
-       d="m 8.225564,16.935761 c 3.306312,-9.6069914 15.129887,-5.653639 18.574474,-4.14044 3.84169,0.194578 5.221312,-2.608481 8.28088,-2.760293 C 22.153787,1.0272741 8.5706006,4.0543924 8.225564,16.935761 Z"
-       id="path2811"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       sodipodi:nodetypes="cccc"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
Binary file libgui/src/icons/figure-text.png has changed
--- a/libgui/src/icons/figure-text.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,639 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg1306"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/mimetypes"
-   sodipodi:docname="font-x-generic.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs1308">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective73" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient6719"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient6717"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient6715"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4785">
-      <stop
-         style="stop-color:#2e3436;stop-opacity:1;"
-         offset="0"
-         id="stop4787" />
-      <stop
-         style="stop-color:#2e3436;stop-opacity:0;"
-         offset="1"
-         id="stop4789" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4767">
-      <stop
-         style="stop-color:#729fcf"
-         offset="0"
-         id="stop4769" />
-      <stop
-         style="stop-color:#3465a4"
-         offset="1"
-         id="stop4771" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4755">
-      <stop
-         style="stop-color:#eeeeec;stop-opacity:1;"
-         offset="0"
-         id="stop4757" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000"
-         offset="1"
-         id="stop4759" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4755"
-       id="linearGradient4761"
-       x1="36.668537"
-       y1="36.383247"
-       x2="10.303555"
-       y2="7.4928832"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4767"
-       id="linearGradient4773"
-       x1="18.561554"
-       y1="12.998214"
-       x2="30.935921"
-       y2="33.681091"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-1.000000,-1.000000)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4785"
-       id="radialGradient4791"
-       cx="22.402998"
-       cy="43.071735"
-       fx="22.402998"
-       fy="43.071735"
-       r="22.318058"
-       gradientTransform="matrix(1.026073,-4.434013e-3,9.770098e-4,7.524542e-2,-0.626191,41.79022)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4767"
-       id="linearGradient4815"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(105.0249,14.77363)"
-       x1="18.561554"
-       y1="12.998214"
-       x2="30.935921"
-       y2="33.681091" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.11372549"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="56.344977"
-     inkscape:cy="12.600577"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     fill="#2e3436"
-     stroke="#888a85"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="872"
-     inkscape:window-height="746"
-     inkscape:window-x="357"
-     inkscape:window-y="41"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata1311">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Generic font</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>the oxygen guys</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:source>http://tango-project.org</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>font</rdf:li>
-            <rdf:li>type</rdf:li>
-            <rdf:li>letter</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <g
-       style="display:inline"
-       transform="matrix(2.47484e-2,0,0,2.086758e-2,46.13711,41.50715)"
-       id="g6707">
-      <rect
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect6709"
-         width="1339.6335"
-         height="478.35718"
-         x="-1559.2523"
-         y="-150.69685" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         id="path6711"
-         sodipodi:nodetypes="cccc" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path6713"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    </g>
-    <rect
-       style="opacity:1.0000000;fill:url(#linearGradient4761);fill-opacity:1.0;stroke:#888a85;stroke-width:1.0249254;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="rect1314"
-       width="41.011471"
-       height="42.987240"
-       x="3.4883704"
-       y="2.5121932"
-       rx="0.99906075"
-       ry="0.99914879" />
-    <path
-       style="font-size:46.600502px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient4773);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Nimbus Roman No9 L"
-       d="M 39.000000,39.008527 C 36.343774,38.775525 36.064168,38.777717 35.458362,35.375884 L 31.077914,8.9999998 L 30.241301,8.9999998 L 16.352156,32.300251 C 12.670720,38.498111 11.798459,38.635723 9.9344410,39.008527 L 9.9344410,40.129135 L 19.054985,40.129135 L 19.054985,39.008527 C 16.678362,38.775525 16.305555,38.917521 16.305555,37.752510 C 16.305555,36.867101 16.445358,36.447694 17.237565,34.863278 L 19.893794,30.159922 L 30.145904,30.159922 L 31.077914,35.702087 C 31.124515,36.121492 31.171115,36.540897 31.171115,36.913700 C 31.171115,38.684518 30.924955,38.728924 27.942526,39.008527 L 27.942526,40.129135 L 39.000000,40.129135 L 39.000000,39.008527 M 20.872404,27.919804 L 27.862480,15.803673 L 29.912902,27.919804 L 20.872404,27.919804"
-       id="text2044"
-       sodipodi:nodetypes="cccccccccsccccscccccccc" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4633"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520060,11.81453)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4635"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520061,13.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4639"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520065,17.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4641"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520061,19.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4643"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520056,21.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4645"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520057,23.81455)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4647"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520061,25.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4649"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520061,27.81455)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4651"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520057,29.81455)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4653"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520065,31.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4655"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520066,33.81455)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4657"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520070,35.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4659"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520070,37.81455)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4661"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520066,39.81455)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4663"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520061,15.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4665"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520065,41.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4667"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520066,43.81455)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4669"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(0.452550,0.000000,0.000000,-0.532412,-2.520070,45.81454)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4675"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,15.52001,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4679"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,21.52002,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4681"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,23.52002,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4683"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,25.52002,1.185486)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4685"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,27.52003,1.185486)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4687"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,29.52002,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4689"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,31.52003,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4691"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,33.52003,1.185486)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4693"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,35.52002,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4695"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,37.52003,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4697"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,39.52002,1.185506)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4699"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,41.52003,1.185506)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4701"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,43.52003,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4703"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,19.52002,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4705"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,45.52002,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4707"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,47.52003,1.185496)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4709"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,49.52002,1.185506)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;display:inline"
-       id="path4751"
-       sodipodi:cx="22.141281"
-       sodipodi:cy="9.9819622"
-       sodipodi:rx="1.1048543"
-       sodipodi:ry="0.93912619"
-       d="M 23.246135 9.9819622 A 1.1048543 0.93912619 0 1 1  21.036427,9.9819622 A 1.1048543 0.93912619 0 1 1  23.246135 9.9819622 z"
-       transform="matrix(-0.452550,0.000000,0.000000,0.532412,17.52000,-0.814489)" />
-    <rect
-       style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.0249996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="rect4753"
-       width="39.013622"
-       height="41.033813"
-       x="4.4870877"
-       y="3.5124998"
-       rx="0.0000000"
-       ry="0.0000000" />
-  </g>
-</svg>
Binary file libgui/src/icons/figure-zoom-in.png has changed
--- a/libgui/src/icons/figure-zoom-in.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="figure-zoom-in.svg"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:version="0.32"
-   id="svg11300"
-   height="48px"
-   width="48px"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   version="1.1"
-   inkscape:export-filename="/home/pantxo/Dev/octaveclone/libgui/src/icons/figure-zoom-in.png"
-   inkscape:export-xdpi="64"
-   inkscape:export-ydpi="64">
-  <defs
-     id="defs3">
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4487">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4489" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4491" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4477">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4479" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4481" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4440"
-       id="linearGradient4446"
-       x1="30.656250"
-       y1="34.000000"
-       x2="33.218750"
-       y2="31.062500"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.334593,0.000000,0.000000,1.291292,-6.973842,-7.460658)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4454"
-       id="radialGradient4460"
-       cx="18.240929"
-       cy="21.817987"
-       fx="18.240929"
-       fy="21.817987"
-       r="8.3085051"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4467"
-       id="radialGradient4473"
-       cx="15.414371"
-       cy="13.078408"
-       fx="15.414371"
-       fy="13.078408"
-       r="6.6562500"
-       gradientTransform="matrix(2.592963,-7.746900e-24,-5.714443e-24,2.252104,-25.05975,-18.94100)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4487"
-       id="radialGradient4493"
-       cx="24.130018"
-       cy="37.967922"
-       fx="24.130018"
-       fy="37.967922"
-       r="16.528622"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.237968,3.152859e-15,28.93278)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="25.743469"
-       x2="17.500893"
-       y1="13.602121"
-       x1="18.292673"
-       id="linearGradient2372"
-       xlink:href="#linearGradient2366"
-       inkscape:collect="always" />
-    <radialGradient
-       r="16.528622"
-       fy="37.967922"
-       fx="24.130018"
-       cy="37.967922"
-       cx="24.130018"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.237968,-2.471981e-16,28.93278)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2842"
-       xlink:href="#linearGradient4477"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="30.557772"
-       x2="31.335964"
-       y1="26.580296"
-       x1="27.366341"
-       id="linearGradient2852"
-       xlink:href="#linearGradient2846"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)"
-       r="10.319340"
-       fy="35.127438"
-       fx="23.070683"
-       cy="35.127438"
-       cx="23.070683"
-       id="radialGradient2097"
-       xlink:href="#linearGradient2091"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="50.939667"
-       x2="45.380436"
-       y1="45.264122"
-       x1="46.834816"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7186"
-       xlink:href="#linearGradient2871"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="26.649362"
-       x2="53.588622"
-       y1="23.667896"
-       x1="18.935766"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7184"
-       xlink:href="#linearGradient2402"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="50.939667"
-       x2="45.380436"
-       y1="45.264122"
-       x1="46.834816"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7182"
-       xlink:href="#linearGradient2871"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="20.60858"
-       x2="15.984863"
-       y1="36.061237"
-       x1="62.513836"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7180"
-       xlink:href="#linearGradient2380"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)"
-       y2="23.554308"
-       x2="22.374878"
-       y1="13.604306"
-       x1="13.435029"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7189"
-       xlink:href="#linearGradient7179"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="23.554308"
-       x2="22.374878"
-       y1="13.604306"
-       x1="13.435029"
-       id="linearGradient7185"
-       xlink:href="#linearGradient7179"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient1322">
-      <stop
-         style="stop-color:#729fcf"
-         offset="0.0000000"
-         id="stop1324" />
-      <stop
-         style="stop-color:#5187d6;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop1326" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         id="stop2318"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2320"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.65979379;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7179"
-       inkscape:collect="always">
-      <stop
-         id="stop7181"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop7183"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.048164"
-       x2="52.854097"
-       y1="26.048164"
-       x1="5.9649176"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1491"
-       xlink:href="#linearGradient2797"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2797"
-       inkscape:collect="always">
-      <stop
-         id="stop2799"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop2801"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.048164"
-       x2="52.854097"
-       y1="26.048164"
-       x1="5.9649176"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1493"
-       xlink:href="#linearGradient2797"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2402">
-      <stop
-         id="stop2404"
-         offset="0"
-         style="stop-color:#729fcf;stop-opacity:1;" />
-      <stop
-         id="stop2406"
-         offset="1"
-         style="stop-color:#528ac5;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2871"
-       inkscape:collect="always">
-      <stop
-         id="stop2873"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         id="stop2875"
-         offset="1"
-         style="stop-color:#3465a4;stop-opacity:1" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-48.77039,-5.765705)"
-       gradientUnits="userSpaceOnUse"
-       y2="24.842253"
-       x2="37.124462"
-       y1="30.748846"
-       x1="32.647972"
-       id="linearGradient2696"
-       xlink:href="#linearGradient2690"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2690"
-       inkscape:collect="always">
-      <stop
-         id="stop2692"
-         offset="0"
-         style="stop-color:#c4d7eb;stop-opacity:1;" />
-      <stop
-         id="stop2694"
-         offset="1"
-         style="stop-color:#c4d7eb;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-48.77039,-5.765705)"
-       gradientUnits="userSpaceOnUse"
-       y2="24.842253"
-       x2="37.124462"
-       y1="31.455952"
-       x1="36.713837"
-       id="linearGradient2688"
-       xlink:href="#linearGradient2682"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2682">
-      <stop
-         id="stop2684"
-         offset="0"
-         style="stop-color:#3977c3;stop-opacity:1;" />
-      <stop
-         id="stop2686"
-         offset="1"
-         style="stop-color:#89aedc;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2380">
-      <stop
-         id="stop2382"
-         offset="0"
-         style="stop-color:#b9cfe7;stop-opacity:1" />
-      <stop
-         id="stop2384"
-         offset="1"
-         style="stop-color:#729fcf;stop-opacity:1" />
-    </linearGradient>
-    <linearGradient
-       y2="19.115122"
-       x2="15.419417"
-       y1="10.612206"
-       x1="13.478554"
-       gradientTransform="translate(-48.30498,-6.043298)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1486"
-       xlink:href="#linearGradient2831"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2831">
-      <stop
-         id="stop2833"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         style="stop-color:#5b86be;stop-opacity:1;"
-         offset="0.33333334"
-         id="stop2855" />
-      <stop
-         id="stop2835"
-         offset="1"
-         style="stop-color:#83a8d8;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.194071"
-       x2="37.065414"
-       y1="29.729605"
-       x1="37.128052"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1488"
-       xlink:href="#linearGradient2847"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2847"
-       inkscape:collect="always">
-      <stop
-         id="stop2849"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         id="stop2851"
-         offset="1"
-         style="stop-color:#3465a4;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       r="15.644737"
-       fy="36.421127"
-       fx="24.837126"
-       cy="36.421127"
-       cx="24.837126"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient1503"
-       xlink:href="#linearGradient8662"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient8662"
-       inkscape:collect="always">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7916">
-      <stop
-         id="stop7918"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop7920"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.34020618;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2091"
-       inkscape:collect="always">
-      <stop
-         id="stop2093"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2095"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2091-4">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2093-5" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2095-1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7916-4">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7918-2" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.34020618;"
-         offset="1.0000000"
-         id="stop7920-2" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662-1">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664-8" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666-3" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662-1"
-       id="radialGradient1503-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2847-9">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2849-2" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:0;"
-         offset="1"
-         id="stop2851-2" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2847-9"
-       id="linearGradient1488-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
-       x1="37.128052"
-       y1="29.729605"
-       x2="37.065414"
-       y2="26.194071" />
-    <linearGradient
-       id="linearGradient2831-3">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2833-8" />
-      <stop
-         id="stop2855-6"
-         offset="0.33333334"
-         style="stop-color:#5b86be;stop-opacity:1;" />
-      <stop
-         style="stop-color:#83a8d8;stop-opacity:0;"
-         offset="1"
-         id="stop2835-0" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2831-3"
-       id="linearGradient1486-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.30498,-6.043298)"
-       x1="13.478554"
-       y1="10.612206"
-       x2="15.419417"
-       y2="19.115122" />
-    <linearGradient
-       id="linearGradient2380-5">
-      <stop
-         style="stop-color:#b9cfe7;stop-opacity:1"
-         offset="0"
-         id="stop2382-2" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1"
-         id="stop2384-4" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2682-7">
-      <stop
-         style="stop-color:#3977c3;stop-opacity:1;"
-         offset="0"
-         id="stop2684-4" />
-      <stop
-         style="stop-color:#89aedc;stop-opacity:0;"
-         offset="1"
-         id="stop2686-2" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2682-7"
-       id="linearGradient2688-2"
-       x1="36.713837"
-       y1="31.455952"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.77039,-5.765705)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2690-3">
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:1;"
-         offset="0"
-         id="stop2692-4" />
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:0;"
-         offset="1"
-         id="stop2694-9" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2690-3"
-       id="linearGradient2696-0"
-       x1="32.647972"
-       y1="30.748846"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.77039,-5.765705)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2871-3">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2873-7" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1"
-         offset="1"
-         id="stop2875-0" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2402-2">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="0"
-         id="stop2404-8" />
-      <stop
-         style="stop-color:#528ac5;stop-opacity:1;"
-         offset="1"
-         id="stop2406-0" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797-7"
-       id="linearGradient1493-3"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2797-7">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2799-4" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2801-0" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797-7"
-       id="linearGradient1491-2"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7179-1">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7181-0" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop7183-4" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316-2">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2318-6" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.65979379;"
-         offset="1"
-         id="stop2320-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1322-8">
-      <stop
-         id="stop1324-1"
-         offset="0.0000000"
-         style="stop-color:#729fcf" />
-      <stop
-         id="stop1326-2"
-         offset="1.0000000"
-         style="stop-color:#5187d6;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1322-8"
-       id="linearGradient4975-0"
-       x1="34.892849"
-       y1="36.422989"
-       x2="45.918697"
-       y2="48.547989"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-18.01785,-13.57119)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7179-1"
-       id="linearGradient7185-5"
-       x1="13.435029"
-       y1="13.604306"
-       x2="22.374878"
-       y2="23.554308"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7179-1"
-       id="linearGradient7189-6"
-       gradientUnits="userSpaceOnUse"
-       x1="13.435029"
-       y1="13.604306"
-       x2="22.374878"
-       y2="23.554308"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2380-5"
-       id="linearGradient7180-0"
-       gradientUnits="userSpaceOnUse"
-       x1="62.513836"
-       y1="36.061237"
-       x2="15.984863"
-       y2="20.60858" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871-3"
-       id="linearGradient7182-5"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2402-2"
-       id="linearGradient7184-1"
-       gradientUnits="userSpaceOnUse"
-       x1="18.935766"
-       y1="23.667896"
-       x2="53.588622"
-       y2="26.649362" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871-3"
-       id="linearGradient7186-6"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7916-4"
-       id="linearGradient7922-7"
-       x1="16.874998"
-       y1="22.851799"
-       x2="27.900846"
-       y2="34.976799"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2091-4"
-       id="radialGradient2097-3"
-       cx="23.070683"
-       cy="35.127438"
-       fx="23.070683"
-       fy="35.127438"
-       r="10.319340"
-       gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2846-0"
-       id="linearGradient2852-6"
-       x1="27.366341"
-       y1="26.580296"
-       x2="31.335964"
-       y2="30.557772"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4477-1"
-       id="radialGradient2842-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.237968,0,28.93278)"
-       cx="24.130018"
-       cy="37.967922"
-       fx="24.130018"
-       fy="37.967922"
-       r="16.528622" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2366-6"
-       id="linearGradient2372-0"
-       x1="18.292673"
-       y1="13.602121"
-       x2="17.500893"
-       y2="25.743469"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.237968,0,28.93278)"
-       r="16.528622"
-       fy="37.967922"
-       fx="24.130018"
-       cy="37.967922"
-       cx="24.130018"
-       id="radialGradient4493-9"
-       xlink:href="#linearGradient4487-8"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.592963,0,0,2.252104,-25.05975,-18.941)"
-       r="6.6562500"
-       fy="13.078408"
-       fx="15.414371"
-       cy="13.078408"
-       cx="15.414371"
-       id="radialGradient4473-9"
-       xlink:href="#linearGradient4467-5"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       r="8.3085051"
-       fy="21.817987"
-       fx="18.240929"
-       cy="21.817987"
-       cx="18.240929"
-       id="radialGradient4460-5"
-       xlink:href="#linearGradient4454-4"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(1.334593,0,0,1.291292,-6.973842,-7.460658)"
-       gradientUnits="userSpaceOnUse"
-       y2="31.062500"
-       x2="33.218750"
-       y1="34.000000"
-       x1="30.656250"
-       id="linearGradient4446-6"
-       xlink:href="#linearGradient4440-0"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient4440-0">
-      <stop
-         id="stop4442-8"
-         offset="0"
-         style="stop-color:#7d7d7d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop4448-3" />
-      <stop
-         id="stop4444-5"
-         offset="1.0000000"
-         style="stop-color:#686868;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-4">
-      <stop
-         id="stop4456-1"
-         offset="0.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.20784314;" />
-      <stop
-         id="stop4458-5"
-         offset="1.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.67619050;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-5">
-      <stop
-         id="stop4469-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4471-3"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.24761905;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4477-1"
-       inkscape:collect="always">
-      <stop
-         id="stop4479-1"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4481-3"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4487-8"
-       inkscape:collect="always">
-      <stop
-         id="stop4489-0"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4491-4"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-6">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2368-3" />
-      <stop
-         id="stop2374-5"
-         offset="0.50000000"
-         style="stop-color:#ffffff;stop-opacity:0.21904762;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2370-0" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-0">
-      <stop
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop2848-8" />
-      <stop
-         style="stop-color:#484848;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2850-7" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2846"
-       id="linearGradient3882"
-       gradientUnits="userSpaceOnUse"
-       x1="27.366341"
-       y1="26.580296"
-       x2="31.335964"
-       y2="30.557772" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4440"
-       id="linearGradient3884"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.334593,0,0,1.291292,-6.973842,-7.460658)"
-       x1="30.656250"
-       y1="34.000000"
-       x2="33.218750"
-       y2="31.062500" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2366"
-       id="linearGradient3886"
-       gradientUnits="userSpaceOnUse"
-       x1="18.292673"
-       y1="13.602121"
-       x2="17.500893"
-       y2="25.743469" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4454"
-       id="radialGradient3888"
-       gradientUnits="userSpaceOnUse"
-       cx="18.240929"
-       cy="21.817987"
-       fx="18.240929"
-       fy="21.817987"
-       r="8.3085051" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4467"
-       id="radialGradient3890"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.592963,0,0,2.252104,-25.05975,-18.941)"
-       cx="15.414371"
-       cy="13.078408"
-       fx="15.414371"
-       fy="13.078408"
-       r="6.6562500" />
-  </defs>
-  <sodipodi:namedview
-     stroke="#3465a4"
-     inkscape:window-y="0"
-     inkscape:window-x="0"
-     inkscape:window-height="1052"
-     inkscape:window-width="1920"
-     inkscape:showpageshadow="false"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="g1037"
-     inkscape:cy="10.06332"
-     inkscape:cx="-10.858184"
-     inkscape:zoom="5.6568543"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     fill="#729fcf"
-     inkscape:object-paths="true"
-     inkscape:window-maximized="1"
-     inkscape:snap-global="false">
-    <inkscape:grid
-       type="xygrid"
-       id="grid3085" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Martin Ruskov</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://commons.wikimedia.org/wiki/Tango_icon</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Shadow"
-     sodipodi:insensitive="true">
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.17112301;color:#000000;fill:url(#radialGradient2842);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path4475"
-       sodipodi:cx="24.130018"
-       sodipodi:cy="37.967922"
-       sodipodi:rx="16.528622"
-       sodipodi:ry="3.9332814"
-       d="m 40.65864,37.967922 a 16.528622,3.9332814 0 1 1 -33.0572434,0 16.528622,3.9332814 0 1 1 33.0572434,0 z"
-       transform="matrix(1.446431,0,0,1.51999,-10.97453,-17.75168)" />
-    <path
-       transform="matrix(0.497764,0,0,0.609621,8.973526,15.61929)"
-       d="m 40.65864,37.967922 a 16.528622,3.9332814 0 1 1 -33.0572434,0 16.528622,3.9332814 0 1 1 33.0572434,0 z"
-       sodipodi:ry="3.9332814"
-       sodipodi:rx="16.528622"
-       sodipodi:cy="37.967922"
-       sodipodi:cx="24.130018"
-       id="path4485"
-       style="color:#000000;fill:url(#radialGradient4493);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Magnifying glass"
-     sodipodi:insensitive="true">
-    <g
-       id="g1772"
-       transform="translate(0.12372323,0.07535096)">
-      <path
-         sodipodi:nodetypes="csscccscccscczzzz"
-         id="path2844"
-         d="m 18.627569,3.1435548 c -8.13913,0 -14.7448008,6.6056711 -14.7448008,14.7448012 0,8.13913 6.6056708,14.744802 14.7448008,14.744802 3.479555,0 6.551001,-1.384393 9.073723,-3.402647 -0.205377,1.006881 -0.07803,2.035368 0.756144,2.759925 l 10.964084,9.52741 c 1.233416,1.071329 3.087462,0.93096 4.15879,-0.302457 1.071328,-1.233418 0.930959,-3.087462 -0.302457,-4.15879 L 32.313769,27.529188 c -0.671527,-0.583279 -1.492878,-0.755969 -2.306238,-0.642722 1.9867,-2.512422 3.364839,-5.548803 3.364839,-8.99811 0,-8.1391301 -6.605671,-14.7448012 -14.744801,-14.7448012 z m -0.07562,1.2261833 c 7.639459,0 13.291775,4.7889505 13.291775,13.2917749 0,8.675113 -5.81669,13.291775 -13.291775,13.291775 -7.302949,0 -13.2917734,-5.478092 -13.2917734,-13.291775 0,-7.9841069 5.8246384,-13.291775 13.2917734,-13.2917749 z"
-         style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3882);stroke-width:2.00000095;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-         inkscape:connector-curvature="0" />
-      <path
-         style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible"
-         d="m 18.602905,3.0803551 c -8.16544,0 -14.7924642,6.627024 -14.7924642,14.7924639 0,8.16544 6.6270242,14.792464 14.7924642,14.792464 3.490803,0 6.572177,-1.388867 9.103055,-3.413645 -0.206041,1.010136 -0.07829,2.041947 0.758587,2.768846 l 10.999526,9.558207 c 1.237403,1.074792 3.097442,0.93397 4.172233,-0.303435 1.074791,-1.237404 0.933968,-3.097442 -0.303435,-4.172233 L 32.333346,27.544815 c -0.673698,-0.585164 -1.497704,-0.758413 -2.313693,-0.644799 1.993122,-2.520544 3.375716,-5.56674 3.375716,-9.027197 0,-8.1654399 -6.627024,-14.7924639 -14.792464,-14.7924639 z m -0.07586,3.1860692 c 6.281108,2e-7 11.378818,5.0977107 11.378818,11.3788187 0,6.281108 -5.09771,11.378818 -11.378818,11.378818 -6.281108,0 -11.3788184,-5.09771 -11.3788184,-11.378818 2e-7,-6.281108 5.0977104,-11.3788187 11.3788184,-11.3788187 z"
-         id="path4430"
-         inkscape:connector-curvature="0" />
-      <path
-         style="color:#000000;fill:url(#linearGradient3884);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-         d="m 39.507004,41.57769 c -0.478672,-2.273187 1.39733,-4.811422 3.584053,-4.788375 0,0 -10.760367,-9.258111 -10.760367,-9.258111 -2.944791,-0.05671 -4.269502,2.272616 -3.776814,4.599922 l 10.953128,9.446564 z"
-         id="path4438"
-         sodipodi:nodetypes="ccccc"
-         inkscape:connector-curvature="0" />
-      <path
-         sodipodi:type="arc"
-         style="color:#000000;fill:none;stroke:url(#linearGradient3886);stroke-width:0.8027336;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-         id="path4450"
-         sodipodi:cx="17.500893"
-         sodipodi:cy="18.920233"
-         sodipodi:rx="11.048544"
-         sodipodi:ry="11.048544"
-         d="M 28.549437,18.920233 A 11.048544,11.048544 0 0 1 17.500893,29.968777 11.048544,11.048544 0 0 1 6.4523487,18.920233 11.048544,11.048544 0 0 1 17.500893,7.8716888 11.048544,11.048544 0 0 1 28.549437,18.920233 Z"
-         transform="matrix(1.245743,0,0,1.245743,-3.425346,-6.177033)" />
-      <rect
-         style="opacity:0.43315507;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.00003111;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-         id="rect4495"
-         width="19.048439"
-         height="4.4404783"
-         x="40.373337"
-         y="0.14086054"
-         rx="2.1366608"
-         ry="1.8879365"
-         transform="matrix(0.752986,0.658037,-0.648902,0.760872,0,0)" />
-      <path
-         sodipodi:type="arc"
-         style="color:#000000;fill:url(#radialGradient3888);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:0.71499395;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible"
-         id="path4452"
-         sodipodi:cx="17.589281"
-         sodipodi:cy="18.478292"
-         sodipodi:rx="8.3085051"
-         sodipodi:ry="8.3085051"
-         d="m 25.897786,18.478292 a 8.3085051,8.3085051 0 0 1 -8.308505,8.308506 8.3085051,8.3085051 0 0 1 -8.308505,-8.308506 8.3085051,8.3085051 0 0 1 8.308505,-8.308505 8.3085051,8.3085051 0 0 1 8.308505,8.308505 z"
-         transform="matrix(1.398614,0,0,1.398614,-6.224338,-8.298958)" />
-      <path
-         style="opacity:0.83422457;color:#000000;fill:url(#radialGradient3890);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-         d="m 18.156915,7.3966938 c -5.20759,0 -9.4245469,4.2169572 -9.4245469,9.4245472 0,1.503975 0.4203072,2.887773 1.0471719,4.149903 1.25238,0.461613 2.582757,0.775683 3.994767,0.775683 6.170955,0 11.099282,-4.861637 11.480106,-10.937129 C 23.523449,8.7641668 21.044374,7.3966938 18.156915,7.3966938 z"
-         id="path4462"
-         inkscape:connector-curvature="0" />
-    </g>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Symbol"
-     id="layer1"
-     style="display:inline">
-    <g
-       id="g1037"
-       transform="translate(0.4375,0.375)">
-      <path
-         inkscape:connector-curvature="0"
-         id="path1031"
-         d="M 18.4375,8.3269029 V 25.799937"
-         style="fill:none;stroke:#3063a3;stroke-width:3.35902286;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1;font-variant-east_asian:normal;opacity:1;vector-effect:none;stroke-dashoffset:0" />
-      <path
-         style="fill:none;stroke:#3063a3;stroke-width:3.35902286;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-variant-east_asian:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-dashoffset:0"
-         d="M 27.174017,17.06342 H 9.7009829"
-         id="path1009"
-         inkscape:connector-curvature="0"
-         inkscape:export-xdpi="64"
-         inkscape:export-ydpi="64" />
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/figure-zoom-original.png has changed
--- a/libgui/src/icons/figure-zoom-original.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,306 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="48"
-   height="48"
-   id="svg11300"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="figure-zoom-original.svg"
-   inkscape:export-filename="/home/pantxo/Dev/octaveclone/libgui/src/icons/figure-zoom-original.png"
-   inkscape:export-xdpi="64"
-   inkscape:export-ydpi="64">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="1052"
-     id="namedview5046"
-     showgrid="true"
-     inkscape:zoom="16"
-     inkscape:cx="1.03237"
-     inkscape:cy="32.234375"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg11300">
-    <inkscape:grid
-       type="xygrid"
-       id="grid5048" />
-  </sodipodi:namedview>
-  <defs
-     id="defs3">
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4487">
-      <stop
-         id="stop4489"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4491"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4477">
-      <stop
-         id="stop4479"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4481"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="30.65625"
-       y1="34"
-       x2="33.21875"
-       y2="31.0625"
-       id="linearGradient4446"
-       xlink:href="#linearGradient4440"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.334593,0,0,1.291292,-6.973842,-7.460658)" />
-    <radialGradient
-       cx="18.240929"
-       cy="21.817987"
-       r="8.3085051"
-       fx="18.240929"
-       fy="21.817987"
-       id="radialGradient4460"
-       xlink:href="#linearGradient4454"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.398614,0,0,1.398614,-6.224338,-8.298958)" />
-    <radialGradient
-       cx="15.414371"
-       cy="13.078408"
-       r="6.65625"
-       fx="15.414371"
-       fy="13.078408"
-       id="radialGradient4473"
-       xlink:href="#linearGradient4467"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.592963,0,0,2.252104,-25.05975,-18.941)" />
-    <radialGradient
-       cx="24.130018"
-       cy="37.967922"
-       r="16.528622"
-       fx="24.130018"
-       fy="37.967922"
-       id="radialGradient4493"
-       xlink:href="#linearGradient4487"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.497764,0,0,0.14507029,8.973526,33.25732)" />
-    <linearGradient
-       x1="18.292673"
-       y1="13.602121"
-       x2="17.500893"
-       y2="25.743469"
-       id="linearGradient2372"
-       xlink:href="#linearGradient2366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.245743,0,0,1.245743,-3.425346,-6.177033)" />
-    <radialGradient
-       cx="24.130018"
-       cy="37.967922"
-       r="16.528622"
-       fx="24.130018"
-       fy="37.967922"
-       id="radialGradient2842"
-       xlink:href="#linearGradient4477"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.446431,0,0,0.36170898,-10.97453,26.225856)" />
-    <linearGradient
-       x1="27.366341"
-       y1="26.580296"
-       x2="31.335964"
-       y2="30.557772"
-       id="linearGradient2852"
-       xlink:href="#linearGradient2846"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="18.240929"
-       cy="21.817987"
-       r="8.3085051"
-       fx="18.240929"
-       fy="21.817987"
-       id="radialGradient4460-4"
-       xlink:href="#linearGradient4454"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.398614,0,0,1.398614,-12.480222,-13.719877)" />
-  </defs>
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
-        <dc:title />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <path
-     d="m 47.835387,39.959182 a 23.907511,5.9785484 0 1 1 -47.81502131,0 23.907511,5.9785484 0 1 1 47.81502131,0 z"
-     id="path4475"
-     style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.17112301;fill:url(#radialGradient2842);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.48275447;marker:none"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 18.627569,3.1435548 c -8.13913,0 -14.7448008,6.6056711 -14.7448008,14.7448012 0,8.13913 6.6056708,14.744802 14.7448008,14.744802 3.479555,0 6.551001,-1.384393 9.073723,-3.402647 -0.205377,1.006881 -0.07803,2.035368 0.756144,2.759925 l 10.964084,9.52741 c 1.233416,1.071329 3.087462,0.93096 4.15879,-0.302457 1.071328,-1.233418 0.930959,-3.087462 -0.302457,-4.15879 L 32.313769,27.529188 c -0.671527,-0.583279 -1.492878,-0.755969 -2.306238,-0.642722 1.9867,-2.512422 3.364839,-5.548803 3.364839,-8.99811 0,-8.1391301 -6.605671,-14.7448012 -14.744801,-14.7448012 z m -0.07562,1.2261833 c 7.639459,0 13.291775,4.7889505 13.291775,13.2917749 0,8.675113 -5.81669,13.291775 -13.291775,13.291775 -7.302949,0 -13.2917734,-5.478092 -13.2917734,-13.291775 0,-7.9841069 5.8246384,-13.291775 13.2917734,-13.2917749 z"
-     id="path2844"
-     style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2852);stroke-width:2.00000095;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 18.602905,3.0803551 c -8.16544,0 -14.7924642,6.627024 -14.7924642,14.7924639 0,8.16544 6.6270242,14.792464 14.7924642,14.792464 3.490803,0 6.572177,-1.388867 9.103055,-3.413645 -0.206041,1.010136 -0.07829,2.041947 0.758587,2.768846 l 10.999526,9.558207 c 1.237403,1.074792 3.097442,0.93397 4.172233,-0.303435 1.074791,-1.237404 0.933968,-3.097442 -0.303435,-4.172233 L 32.333346,27.544815 c -0.673698,-0.585164 -1.497704,-0.758413 -2.313693,-0.644799 1.993122,-2.520544 3.375716,-5.56674 3.375716,-9.027197 0,-8.1654399 -6.627024,-14.7924639 -14.792464,-14.7924639 z m -0.07586,3.1860692 c 6.281108,2e-7 11.378818,5.0977107 11.378818,11.3788187 0,6.281108 -5.09771,11.378818 -11.378818,11.378818 -6.281108,0 -11.3788184,-5.09771 -11.3788184,-11.378818 2e-7,-6.281108 5.0977104,-11.3788187 11.3788184,-11.3788187 z"
-     id="path4430"
-     style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 39.507004,41.57769 c -0.478672,-2.273187 1.39733,-4.811422 3.584053,-4.788375 0,0 -10.760367,-9.258111 -10.760367,-9.258111 -2.944791,-0.05671 -4.269502,2.272616 -3.776814,4.599922 z"
-     id="path4438"
-     style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4446);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 32.139915,17.392715 a 13.763647,13.763647 0 1 1 -27.5272928,0 13.763647,13.763647 0 1 1 27.5272928,0 z"
-     id="path4450"
-     style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient2372);stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 29.211933,38.765333 a 8.227353,2.3978109 0 1 1 -16.454705,0 8.227353,2.3978109 0 1 1 16.454705,0 z"
-     id="path4485"
-     style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient4493);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.55086058;marker:none"
-     inkscape:connector-curvature="0" />
-  <rect
-     width="19.048445"
-     height="4.4404783"
-     rx="2.1366615"
-     ry="1.8879365"
-     x="40.373348"
-     y="0.14086054"
-     transform="matrix(0.75298577,0.6580368,-0.648902,0.760872,0,0)"
-     id="rect4495"
-     style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.43315507;fill:none;stroke:#ffffff;stroke-width:1.00003111;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
-  <path
-     d="m 29.996668,17.54504 a 11.620392,11.620392 0 1 1 -23.2407828,0 11.620392,11.620392 0 1 1 23.2407828,0 z"
-     id="path4452"
-     style="color:#000000;visibility:visible;fill:url(#radialGradient4460);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:1.0000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dashoffset:0;stroke-opacity:1;marker:none"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 18.156915,7.3966938 c -5.20759,0 -9.4245469,4.2169572 -9.4245469,9.4245472 0,1.503975 0.4203072,2.887773 1.0471719,4.149903 1.25238,0.461613 2.582757,0.775683 3.994767,0.775683 6.170955,0 11.099282,-4.861637 11.480106,-10.937129 C 23.523449,8.7641668 21.044374,7.3966938 18.156915,7.3966938 Z"
-     id="path4462"
-     style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.83422457;fill:url(#radialGradient4473);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
-     inkscape:connector-curvature="0" />
-  <text
-     id="text2696"
-     y="25.497047"
-     x="11.396652"
-     style="font-style:normal;font-weight:normal;font-size:23.87401581px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#3063a3;fill-opacity:1;stroke:none;stroke-width:1.0000006;font-variant-east_asian:normal;opacity:1;vector-effect:none;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;"
-     xml:space="preserve"><tspan
-       style="stroke-width:1.0000006;fill:#3063a3;font-variant-east_asian:normal;vector-effect:none;fill-opacity:1;stroke:none;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;"
-       y="25.497047"
-       x="11.396652"
-       id="tspan2694"
-       sodipodi:role="line">1</tspan></text>
-</svg>
Binary file libgui/src/icons/figure-zoom-out.png has changed
--- a/libgui/src/icons/figure-zoom-out.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="figure-zoom-out.svg"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:version="0.32"
-   id="svg11300"
-   height="48px"
-   width="48px"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   version="1.1"
-   inkscape:export-filename="/home/pantxo/Dev/octaveclone/libgui/src/icons/figure-zoom-out.png"
-   inkscape:export-xdpi="64"
-   inkscape:export-ydpi="64">
-  <defs
-     id="defs3">
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4487">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4489" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop4491" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4477">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4479" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4481" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4440"
-       id="linearGradient4446"
-       x1="30.656250"
-       y1="34.000000"
-       x2="33.218750"
-       y2="31.062500"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.334593,0.000000,0.000000,1.291292,-6.973842,-7.460658)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4454"
-       id="radialGradient4460"
-       cx="18.240929"
-       cy="21.817987"
-       fx="18.240929"
-       fy="21.817987"
-       r="8.3085051"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4467"
-       id="radialGradient4473"
-       cx="15.414371"
-       cy="13.078408"
-       fx="15.414371"
-       fy="13.078408"
-       r="6.6562500"
-       gradientTransform="matrix(2.592963,-7.746900e-24,-5.714443e-24,2.252104,-25.05975,-18.94100)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4487"
-       id="radialGradient4493"
-       cx="24.130018"
-       cy="37.967922"
-       fx="24.130018"
-       fy="37.967922"
-       r="16.528622"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.237968,3.152859e-15,28.93278)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="25.743469"
-       x2="17.500893"
-       y1="13.602121"
-       x1="18.292673"
-       id="linearGradient2372"
-       xlink:href="#linearGradient2366"
-       inkscape:collect="always" />
-    <radialGradient
-       r="16.528622"
-       fy="37.967922"
-       fx="24.130018"
-       cy="37.967922"
-       cx="24.130018"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.237968,-2.471981e-16,28.93278)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2842"
-       xlink:href="#linearGradient4477"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="30.557772"
-       x2="31.335964"
-       y1="26.580296"
-       x1="27.366341"
-       id="linearGradient2852"
-       xlink:href="#linearGradient2846"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)"
-       r="10.319340"
-       fy="35.127438"
-       fx="23.070683"
-       cy="35.127438"
-       cx="23.070683"
-       id="radialGradient2097"
-       xlink:href="#linearGradient2091"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="50.939667"
-       x2="45.380436"
-       y1="45.264122"
-       x1="46.834816"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7186"
-       xlink:href="#linearGradient2871"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="26.649362"
-       x2="53.588622"
-       y1="23.667896"
-       x1="18.935766"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7184"
-       xlink:href="#linearGradient2402"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="50.939667"
-       x2="45.380436"
-       y1="45.264122"
-       x1="46.834816"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7182"
-       xlink:href="#linearGradient2871"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="20.60858"
-       x2="15.984863"
-       y1="36.061237"
-       x1="62.513836"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7180"
-       xlink:href="#linearGradient2380"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)"
-       y2="23.554308"
-       x2="22.374878"
-       y1="13.604306"
-       x1="13.435029"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7189"
-       xlink:href="#linearGradient7179"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="23.554308"
-       x2="22.374878"
-       y1="13.604306"
-       x1="13.435029"
-       id="linearGradient7185"
-       xlink:href="#linearGradient7179"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient1322">
-      <stop
-         style="stop-color:#729fcf"
-         offset="0.0000000"
-         id="stop1324" />
-      <stop
-         style="stop-color:#5187d6;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop1326" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         id="stop2318"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2320"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.65979379;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7179"
-       inkscape:collect="always">
-      <stop
-         id="stop7181"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop7183"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.048164"
-       x2="52.854097"
-       y1="26.048164"
-       x1="5.9649176"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1491"
-       xlink:href="#linearGradient2797"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2797"
-       inkscape:collect="always">
-      <stop
-         id="stop2799"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop2801"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.048164"
-       x2="52.854097"
-       y1="26.048164"
-       x1="5.9649176"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1493"
-       xlink:href="#linearGradient2797"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2402">
-      <stop
-         id="stop2404"
-         offset="0"
-         style="stop-color:#729fcf;stop-opacity:1;" />
-      <stop
-         id="stop2406"
-         offset="1"
-         style="stop-color:#528ac5;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2871"
-       inkscape:collect="always">
-      <stop
-         id="stop2873"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         id="stop2875"
-         offset="1"
-         style="stop-color:#3465a4;stop-opacity:1" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-48.77039,-5.765705)"
-       gradientUnits="userSpaceOnUse"
-       y2="24.842253"
-       x2="37.124462"
-       y1="30.748846"
-       x1="32.647972"
-       id="linearGradient2696"
-       xlink:href="#linearGradient2690"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2690"
-       inkscape:collect="always">
-      <stop
-         id="stop2692"
-         offset="0"
-         style="stop-color:#c4d7eb;stop-opacity:1;" />
-      <stop
-         id="stop2694"
-         offset="1"
-         style="stop-color:#c4d7eb;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-48.77039,-5.765705)"
-       gradientUnits="userSpaceOnUse"
-       y2="24.842253"
-       x2="37.124462"
-       y1="31.455952"
-       x1="36.713837"
-       id="linearGradient2688"
-       xlink:href="#linearGradient2682"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2682">
-      <stop
-         id="stop2684"
-         offset="0"
-         style="stop-color:#3977c3;stop-opacity:1;" />
-      <stop
-         id="stop2686"
-         offset="1"
-         style="stop-color:#89aedc;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2380">
-      <stop
-         id="stop2382"
-         offset="0"
-         style="stop-color:#b9cfe7;stop-opacity:1" />
-      <stop
-         id="stop2384"
-         offset="1"
-         style="stop-color:#729fcf;stop-opacity:1" />
-    </linearGradient>
-    <linearGradient
-       y2="19.115122"
-       x2="15.419417"
-       y1="10.612206"
-       x1="13.478554"
-       gradientTransform="translate(-48.30498,-6.043298)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1486"
-       xlink:href="#linearGradient2831"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2831">
-      <stop
-         id="stop2833"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         style="stop-color:#5b86be;stop-opacity:1;"
-         offset="0.33333334"
-         id="stop2855" />
-      <stop
-         id="stop2835"
-         offset="1"
-         style="stop-color:#83a8d8;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.194071"
-       x2="37.065414"
-       y1="29.729605"
-       x1="37.128052"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1488"
-       xlink:href="#linearGradient2847"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient2847"
-       inkscape:collect="always">
-      <stop
-         id="stop2849"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         id="stop2851"
-         offset="1"
-         style="stop-color:#3465a4;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       r="15.644737"
-       fy="36.421127"
-       fx="24.837126"
-       cy="36.421127"
-       cx="24.837126"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient1503"
-       xlink:href="#linearGradient8662"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient8662"
-       inkscape:collect="always">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7916">
-      <stop
-         id="stop7918"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop7920"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.34020618;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2091"
-       inkscape:collect="always">
-      <stop
-         id="stop2093"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2095"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2091-4">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2093-5" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2095-1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7916-4">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7918-2" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.34020618;"
-         offset="1.0000000"
-         id="stop7920-2" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662-1">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664-8" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666-3" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662-1"
-       id="radialGradient1503-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2847-9">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2849-2" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:0;"
-         offset="1"
-         id="stop2851-2" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2847-9"
-       id="linearGradient1488-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
-       x1="37.128052"
-       y1="29.729605"
-       x2="37.065414"
-       y2="26.194071" />
-    <linearGradient
-       id="linearGradient2831-3">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2833-8" />
-      <stop
-         id="stop2855-6"
-         offset="0.33333334"
-         style="stop-color:#5b86be;stop-opacity:1;" />
-      <stop
-         style="stop-color:#83a8d8;stop-opacity:0;"
-         offset="1"
-         id="stop2835-0" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2831-3"
-       id="linearGradient1486-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.30498,-6.043298)"
-       x1="13.478554"
-       y1="10.612206"
-       x2="15.419417"
-       y2="19.115122" />
-    <linearGradient
-       id="linearGradient2380-5">
-      <stop
-         style="stop-color:#b9cfe7;stop-opacity:1"
-         offset="0"
-         id="stop2382-2" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1"
-         id="stop2384-4" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2682-7">
-      <stop
-         style="stop-color:#3977c3;stop-opacity:1;"
-         offset="0"
-         id="stop2684-4" />
-      <stop
-         style="stop-color:#89aedc;stop-opacity:0;"
-         offset="1"
-         id="stop2686-2" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2682-7"
-       id="linearGradient2688-2"
-       x1="36.713837"
-       y1="31.455952"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.77039,-5.765705)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2690-3">
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:1;"
-         offset="0"
-         id="stop2692-4" />
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:0;"
-         offset="1"
-         id="stop2694-9" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2690-3"
-       id="linearGradient2696-0"
-       x1="32.647972"
-       y1="30.748846"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.77039,-5.765705)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2871-3">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2873-7" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1"
-         offset="1"
-         id="stop2875-0" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2402-2">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="0"
-         id="stop2404-8" />
-      <stop
-         style="stop-color:#528ac5;stop-opacity:1;"
-         offset="1"
-         id="stop2406-0" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797-7"
-       id="linearGradient1493-3"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2797-7">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2799-4" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2801-0" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797-7"
-       id="linearGradient1491-2"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7179-1">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7181-0" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop7183-4" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316-2">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2318-6" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.65979379;"
-         offset="1"
-         id="stop2320-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1322-8">
-      <stop
-         id="stop1324-1"
-         offset="0.0000000"
-         style="stop-color:#729fcf" />
-      <stop
-         id="stop1326-2"
-         offset="1.0000000"
-         style="stop-color:#5187d6;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1322-8"
-       id="linearGradient4975-0"
-       x1="34.892849"
-       y1="36.422989"
-       x2="45.918697"
-       y2="48.547989"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-18.01785,-13.57119)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7179-1"
-       id="linearGradient7185-5"
-       x1="13.435029"
-       y1="13.604306"
-       x2="22.374878"
-       y2="23.554308"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7179-1"
-       id="linearGradient7189-6"
-       gradientUnits="userSpaceOnUse"
-       x1="13.435029"
-       y1="13.604306"
-       x2="22.374878"
-       y2="23.554308"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2380-5"
-       id="linearGradient7180-0"
-       gradientUnits="userSpaceOnUse"
-       x1="62.513836"
-       y1="36.061237"
-       x2="15.984863"
-       y2="20.60858" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871-3"
-       id="linearGradient7182-5"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2402-2"
-       id="linearGradient7184-1"
-       gradientUnits="userSpaceOnUse"
-       x1="18.935766"
-       y1="23.667896"
-       x2="53.588622"
-       y2="26.649362" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871-3"
-       id="linearGradient7186-6"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7916-4"
-       id="linearGradient7922-7"
-       x1="16.874998"
-       y1="22.851799"
-       x2="27.900846"
-       y2="34.976799"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2091-4"
-       id="radialGradient2097-3"
-       cx="23.070683"
-       cy="35.127438"
-       fx="23.070683"
-       fy="35.127438"
-       r="10.319340"
-       gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2846-0"
-       id="linearGradient2852-6"
-       x1="27.366341"
-       y1="26.580296"
-       x2="31.335964"
-       y2="30.557772"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4477-1"
-       id="radialGradient2842-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.237968,0,28.93278)"
-       cx="24.130018"
-       cy="37.967922"
-       fx="24.130018"
-       fy="37.967922"
-       r="16.528622" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2366-6"
-       id="linearGradient2372-0"
-       x1="18.292673"
-       y1="13.602121"
-       x2="17.500893"
-       y2="25.743469"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.237968,0,28.93278)"
-       r="16.528622"
-       fy="37.967922"
-       fx="24.130018"
-       cy="37.967922"
-       cx="24.130018"
-       id="radialGradient4493-9"
-       xlink:href="#linearGradient4487-8"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.592963,0,0,2.252104,-25.05975,-18.941)"
-       r="6.6562500"
-       fy="13.078408"
-       fx="15.414371"
-       cy="13.078408"
-       cx="15.414371"
-       id="radialGradient4473-9"
-       xlink:href="#linearGradient4467-5"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       r="8.3085051"
-       fy="21.817987"
-       fx="18.240929"
-       cy="21.817987"
-       cx="18.240929"
-       id="radialGradient4460-5"
-       xlink:href="#linearGradient4454-4"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="matrix(1.334593,0,0,1.291292,-6.973842,-7.460658)"
-       gradientUnits="userSpaceOnUse"
-       y2="31.062500"
-       x2="33.218750"
-       y1="34.000000"
-       x1="30.656250"
-       id="linearGradient4446-6"
-       xlink:href="#linearGradient4440-0"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient4440-0">
-      <stop
-         id="stop4442-8"
-         offset="0"
-         style="stop-color:#7d7d7d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop4448-3" />
-      <stop
-         id="stop4444-5"
-         offset="1.0000000"
-         style="stop-color:#686868;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-4">
-      <stop
-         id="stop4456-1"
-         offset="0.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.20784314;" />
-      <stop
-         id="stop4458-5"
-         offset="1.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.67619050;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-5">
-      <stop
-         id="stop4469-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4471-3"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.24761905;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4477-1"
-       inkscape:collect="always">
-      <stop
-         id="stop4479-1"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4481-3"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4487-8"
-       inkscape:collect="always">
-      <stop
-         id="stop4489-0"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4491-4"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-6">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2368-3" />
-      <stop
-         id="stop2374-5"
-         offset="0.50000000"
-         style="stop-color:#ffffff;stop-opacity:0.21904762;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2370-0" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-0">
-      <stop
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop2848-8" />
-      <stop
-         style="stop-color:#484848;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2850-7" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2846"
-       id="linearGradient3882"
-       gradientUnits="userSpaceOnUse"
-       x1="27.366341"
-       y1="26.580296"
-       x2="31.335964"
-       y2="30.557772" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4440"
-       id="linearGradient3884"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.334593,0,0,1.291292,-6.973842,-7.460658)"
-       x1="30.656250"
-       y1="34.000000"
-       x2="33.218750"
-       y2="31.062500" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2366"
-       id="linearGradient3886"
-       gradientUnits="userSpaceOnUse"
-       x1="18.292673"
-       y1="13.602121"
-       x2="17.500893"
-       y2="25.743469" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4454"
-       id="radialGradient3888"
-       gradientUnits="userSpaceOnUse"
-       cx="18.240929"
-       cy="21.817987"
-       fx="18.240929"
-       fy="21.817987"
-       r="8.3085051" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4467"
-       id="radialGradient3890"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.592963,0,0,2.252104,-25.05975,-18.941)"
-       cx="15.414371"
-       cy="13.078408"
-       fx="15.414371"
-       fy="13.078408"
-       r="6.6562500" />
-  </defs>
-  <sodipodi:namedview
-     stroke="#3465a4"
-     inkscape:window-y="0"
-     inkscape:window-x="0"
-     inkscape:window-height="1052"
-     inkscape:window-width="1920"
-     inkscape:showpageshadow="false"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="g4336"
-     inkscape:cy="16.836574"
-     inkscape:cx="7.5214099"
-     inkscape:zoom="16"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     fill="#729fcf"
-     inkscape:object-paths="true"
-     inkscape:window-maximized="1"
-     inkscape:snap-global="false">
-    <inkscape:grid
-       type="xygrid"
-       id="grid3085" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Martin Ruskov</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://commons.wikimedia.org/wiki/Tango_icon</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
-        <dc:title />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Shadow"
-     sodipodi:insensitive="true">
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.17112301;color:#000000;fill:url(#radialGradient2842);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       id="path4475"
-       sodipodi:cx="24.130018"
-       sodipodi:cy="37.967922"
-       sodipodi:rx="16.528622"
-       sodipodi:ry="3.9332814"
-       d="m 40.65864,37.967922 a 16.528622,3.9332814 0 1 1 -33.0572434,0 16.528622,3.9332814 0 1 1 33.0572434,0 z"
-       transform="matrix(1.446431,0,0,1.51999,-10.97453,-17.75168)" />
-    <path
-       transform="matrix(0.497764,0,0,0.609621,8.973526,15.61929)"
-       d="m 40.65864,37.967922 a 16.528622,3.9332814 0 1 1 -33.0572434,0 16.528622,3.9332814 0 1 1 33.0572434,0 z"
-       sodipodi:ry="3.9332814"
-       sodipodi:rx="16.528622"
-       sodipodi:cy="37.967922"
-       sodipodi:cx="24.130018"
-       id="path4485"
-       style="color:#000000;fill:url(#radialGradient4493);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Magnifying glass"
-     sodipodi:insensitive="true">
-    <g
-       id="g1772"
-       transform="translate(0.12372323,0.07535096)">
-      <path
-         sodipodi:nodetypes="csscccscccscczzzz"
-         id="path2844"
-         d="m 18.627569,3.1435548 c -8.13913,0 -14.7448008,6.6056711 -14.7448008,14.7448012 0,8.13913 6.6056708,14.744802 14.7448008,14.744802 3.479555,0 6.551001,-1.384393 9.073723,-3.402647 -0.205377,1.006881 -0.07803,2.035368 0.756144,2.759925 l 10.964084,9.52741 c 1.233416,1.071329 3.087462,0.93096 4.15879,-0.302457 1.071328,-1.233418 0.930959,-3.087462 -0.302457,-4.15879 L 32.313769,27.529188 c -0.671527,-0.583279 -1.492878,-0.755969 -2.306238,-0.642722 1.9867,-2.512422 3.364839,-5.548803 3.364839,-8.99811 0,-8.1391301 -6.605671,-14.7448012 -14.744801,-14.7448012 z m -0.07562,1.2261833 c 7.639459,0 13.291775,4.7889505 13.291775,13.2917749 0,8.675113 -5.81669,13.291775 -13.291775,13.291775 -7.302949,0 -13.2917734,-5.478092 -13.2917734,-13.291775 0,-7.9841069 5.8246384,-13.291775 13.2917734,-13.2917749 z"
-         style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3882);stroke-width:2.00000095;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-         inkscape:connector-curvature="0" />
-      <path
-         style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible"
-         d="m 18.602905,3.0803551 c -8.16544,0 -14.7924642,6.627024 -14.7924642,14.7924639 0,8.16544 6.6270242,14.792464 14.7924642,14.792464 3.490803,0 6.572177,-1.388867 9.103055,-3.413645 -0.206041,1.010136 -0.07829,2.041947 0.758587,2.768846 l 10.999526,9.558207 c 1.237403,1.074792 3.097442,0.93397 4.172233,-0.303435 1.074791,-1.237404 0.933968,-3.097442 -0.303435,-4.172233 L 32.333346,27.544815 c -0.673698,-0.585164 -1.497704,-0.758413 -2.313693,-0.644799 1.993122,-2.520544 3.375716,-5.56674 3.375716,-9.027197 0,-8.1654399 -6.627024,-14.7924639 -14.792464,-14.7924639 z m -0.07586,3.1860692 c 6.281108,2e-7 11.378818,5.0977107 11.378818,11.3788187 0,6.281108 -5.09771,11.378818 -11.378818,11.378818 -6.281108,0 -11.3788184,-5.09771 -11.3788184,-11.378818 2e-7,-6.281108 5.0977104,-11.3788187 11.3788184,-11.3788187 z"
-         id="path4430"
-         inkscape:connector-curvature="0" />
-      <path
-         style="color:#000000;fill:url(#linearGradient3884);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-         d="m 39.507004,41.57769 c -0.478672,-2.273187 1.39733,-4.811422 3.584053,-4.788375 0,0 -10.760367,-9.258111 -10.760367,-9.258111 -2.944791,-0.05671 -4.269502,2.272616 -3.776814,4.599922 l 10.953128,9.446564 z"
-         id="path4438"
-         sodipodi:nodetypes="ccccc"
-         inkscape:connector-curvature="0" />
-      <path
-         sodipodi:type="arc"
-         style="color:#000000;fill:none;stroke:url(#linearGradient3886);stroke-width:0.8027336;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-         id="path4450"
-         sodipodi:cx="17.500893"
-         sodipodi:cy="18.920233"
-         sodipodi:rx="11.048544"
-         sodipodi:ry="11.048544"
-         d="M 28.549437,18.920233 A 11.048544,11.048544 0 0 1 17.500893,29.968777 11.048544,11.048544 0 0 1 6.4523487,18.920233 11.048544,11.048544 0 0 1 17.500893,7.8716888 11.048544,11.048544 0 0 1 28.549437,18.920233 Z"
-         transform="matrix(1.245743,0,0,1.245743,-3.425346,-6.177033)" />
-      <rect
-         style="opacity:0.43315507;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.00003111;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-         id="rect4495"
-         width="19.048439"
-         height="4.4404783"
-         x="40.373337"
-         y="0.14086054"
-         rx="2.1366608"
-         ry="1.8879365"
-         transform="matrix(0.752986,0.658037,-0.648902,0.760872,0,0)" />
-      <path
-         sodipodi:type="arc"
-         style="color:#000000;fill:url(#radialGradient3888);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:0.71499395;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible"
-         id="path4452"
-         sodipodi:cx="17.589281"
-         sodipodi:cy="18.478292"
-         sodipodi:rx="8.3085051"
-         sodipodi:ry="8.3085051"
-         d="m 25.897786,18.478292 a 8.3085051,8.3085051 0 0 1 -8.308505,8.308506 8.3085051,8.3085051 0 0 1 -8.308505,-8.308506 8.3085051,8.3085051 0 0 1 8.308505,-8.308505 8.3085051,8.3085051 0 0 1 8.308505,8.308505 z"
-         transform="matrix(1.398614,0,0,1.398614,-6.224338,-8.298958)" />
-      <path
-         style="opacity:0.83422457;color:#000000;fill:url(#radialGradient3890);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-         d="m 18.156915,7.3966938 c -5.20759,0 -9.4245469,4.2169572 -9.4245469,9.4245472 0,1.503975 0.4203072,2.887773 1.0471719,4.149903 1.25238,0.461613 2.582757,0.775683 3.994767,0.775683 6.170955,0 11.099282,-4.861637 11.480106,-10.937129 C 23.523449,8.7641668 21.044374,7.3966938 18.156915,7.3966938 z"
-         id="path4462"
-         inkscape:connector-curvature="0" />
-    </g>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Symbol"
-     id="layer1"
-     style="display:inline">
-    <g
-       inkscape:label="Layer 1"
-       id="g4336"
-       transform="matrix(0.5028156,0,0,0.5028156,6.3171967,5.1658557)">
-      <path
-         style="display:inline;fill:#3063a3;stroke:#3063a3;stroke-width:6.96080233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="M 41.726775,25.069487 H 6.9763933"
-         id="path1009"
-         inkscape:connector-curvature="0"
-         inkscape:export-xdpi="64"
-         inkscape:export-ydpi="64" />
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/fleur.png has changed
Binary file libgui/src/icons/folder-new.png has changed
--- a/libgui/src/icons/folder-new.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,452 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg97"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   sodipodi:docname="folder-new.svg"
-   inkscape:export-filename="/home/jimmac/Desktop/horlander-style3.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective71" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient5027"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         style="stop-color:#6194cb;stop-opacity:1;"
-         offset="0"
-         id="stop9768" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="1"
-         id="stop9770" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         offset="0"
-         style="stop-color:#424242;stop-opacity:1;" />
-      <stop
-         id="stop3100"
-         offset="1.0000000"
-         style="stop-color:#777777;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319"
-       inkscape:collect="always">
-      <stop
-         id="stop320"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop321"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         style="stop-color:#202020;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop1790" />
-      <stop
-         style="stop-color:#b9b9b9;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop1791" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1789"
-       id="radialGradient238"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.055022,-2.734504e-2,0.177703,1.190929,-3.572177,-7.125301)"
-       cx="20.706017"
-       cy="37.517986"
-       fx="20.706017"
-       fy="37.517986"
-       r="30.905205" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.87628865;"
-         offset="0.0000000"
-         id="stop3984" />
-      <stop
-         style="stop-color:#fffffe;stop-opacity:0.0000000;"
-         offset="1.0000000"
-         id="stop3985" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3983"
-       id="linearGradient491"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0.000000,0.000000,0.708978,-0.879573,-1.318166)"
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.689312"
-       x2="12.853771"
-       y1="32.567184"
-       x1="13.035696"
-       gradientTransform="matrix(1.317489,0.000000,0.000000,0.816256,-0.879573,-1.318166)"
-       id="linearGradient322"
-       xlink:href="#linearGradient319"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="6.1802502"
-       x2="15.514889"
-       y1="31.367750"
-       x1="18.112709"
-       id="linearGradient3104"
-       xlink:href="#linearGradient3096"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9766"
-       id="linearGradient9772"
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         id="stop12517"
-         offset="0.50000000"
-         style="stop-color:#fff520;stop-opacity:0.89108908;" />
-      <stop
-         id="stop12514"
-         offset="1.0000000"
-         style="stop-color:#fff300;stop-opacity:0.0000000;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12512"
-       id="radialGradient1758"
-       gradientUnits="userSpaceOnUse"
-       cx="55.000000"
-       cy="125.00000"
-       fx="55.000000"
-       fy="125.00000"
-       r="14.375000" />
-  </defs>
-  <sodipodi:namedview
-     fill="#729fcf"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.10196078"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-83.185817"
-     inkscape:cy="-7.2408029"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="872"
-     inkscape:window-height="659"
-     inkscape:window-x="898"
-     inkscape:window-y="342"
-     inkscape:showpageshadow="false"
-     stroke="#3465a4" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>New Folder</dc:title>
-        <dc:date />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>folder</rdf:li>
-            <rdf:li>directory</rdf:li>
-            <rdf:li>create</rdf:li>
-            <rdf:li>new</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Tuomas Kuosmanen</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Folder"
-     inkscape:groupmode="layer">
-    <g
-       style="display:inline"
-       id="g5022"
-       transform="matrix(2.165152e-2,0,0,1.903841e-2,42.41538,36.93372)">
-      <rect
-         y="-150.69685"
-         x="-1559.2523"
-         height="478.35718"
-         width="1339.6335"
-         id="rect4173"
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path5058"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         id="path5018"
-         sodipodi:nodetypes="cccc" />
-    </g>
-    <path
-       d="M 4.5217805,38.687417 C 4.5435766,39.103721 4.9816854,39.520026 5.3979900,39.520026 L 36.725011,39.520026 C 37.141313,39.520026 37.535823,39.103721 37.514027,38.687417 L 36.577584,11.460682 C 36.555788,11.044379 36.117687,10.628066 35.701383,10.628066 L 22.430510,10.628066 C 21.945453,10.628066 21.196037,10.312477 21.028866,9.5214338 L 20.417475,6.6283628 C 20.262006,5.8926895 19.535261,5.5904766 19.118957,5.5904766 L 4.3400975,5.5904766 C 3.9237847,5.5904766 3.5292767,6.0067807 3.5510726,6.4230849 L 4.5217805,38.687417 z "
-       id="path216"
-       style="fill:url(#radialGradient238);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient3104);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
-       sodipodi:nodetypes="ccccccssssccc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9788"
-       d="M 5.2265927,22.5625 L 35.492173,22.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9784"
-       d="M 5.0421736,18.5625 L 35.489104,18.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 4.9806965,12.5625 L 35.488057,12.5625"
-       id="path9778"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.3861577,32.5625 L 35.494881,32.5625"
-       id="path9798"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9800"
-       d="M 5.5091398,34.5625 L 35.496893,34.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.0421736,16.5625 L 35.489104,16.5625"
-       id="path9782"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9780"
-       d="M 5.0114345,14.5625 L 35.48858,14.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9776"
-       d="M 4.9220969,10.5625 L 20.202912,10.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 4.8737534,8.5624999 L 19.657487,8.5624999"
-       id="path9774"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.3246666,28.5625 L 35.493876,28.5625"
-       id="path9794"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9792"
-       d="M 5.2880638,26.5625 L 35.493184,26.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.2265927,24.5625 L 35.492173,24.5625"
-       id="path9790"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.1958537,20.5625 L 35.491649,20.5625"
-       id="path9786"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9796"
-       d="M 5.3246666,30.5625 L 35.493876,30.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.5091398,36.5625 L 35.496893,36.5625"
-       id="path9802"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="color:#000000;fill:url(#linearGradient491);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.2138050;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible;opacity:0.45142857"
-       d="M 6.0683430,38.864023 C 6.0846856,39.176251 5.8874317,39.384402 5.5697582,39.280326 L 5.5697582,39.280326 C 5.2520766,39.176251 5.0330270,38.968099 5.0166756,38.655870 L 4.0689560,6.5913839 C 4.0526131,6.2791558 4.2341418,6.0906134 4.5463699,6.0906134 L 18.968420,6.0429196 C 19.280648,6.0429196 19.900363,6.3433923 20.101356,7.3651014 L 20.674845,10.180636 C 20.247791,9.7153790 20.255652,9.7010175 20.037287,9.0239299 L 19.631192,7.7647478 C 19.412142,7.0371009 18.932991,6.9328477 18.620763,6.9328477 L 5.7329889,6.9328477 C 5.4207613,6.9328477 5.2235075,7.1409999 5.2398583,7.4532364 L 6.1778636,38.968099 L 6.0683430,38.864023 z "
-       id="path219"
-       sodipodi:nodetypes="cccccccccscccccc" />
-    <g
-       style="stroke-miterlimit:4.0000000;stroke-width:0.99946535;stroke:none;fill-rule:nonzero;fill-opacity:0.75706214;fill:#ffffff"
-       id="g220"
-       transform="matrix(1.040764,0.000000,5.449252e-2,1.040764,-8.670199,2.670594)"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-ydpi="74.800003">
-      <path
-         style="fill-opacity:0.50847459;fill:#ffffff"
-         d="M 42.417183,8.5151772 C 42.422267,8.4180642 42.289022,8.2681890 42.182066,8.2681716 L 29.150665,8.2660527 C 29.150665,8.2660527 30.062379,8.8540072 31.352477,8.8622963 L 42.405974,8.9333167 C 42.417060,8.7215889 42.408695,8.6772845 42.417183,8.5151772 z "
-         id="path221"
-         sodipodi:nodetypes="cscscs" />
-    </g>
-    <path
-       style="color:#000000;fill:url(#linearGradient9772);fill-opacity:1.0;fill-rule:nonzero;stroke:#3465a4;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:block"
-       d="M 39.783532,39.510620 C 40.927426,39.466556 41.746608,38.414321 41.830567,37.189615 C 42.622354,25.640928 43.489927,15.957666 43.489927,15.957666 C 43.562082,15.710182 43.322016,15.462699 43.009787,15.462699 L 8.6386304,15.462699 C 8.6386304,15.462699 6.7883113,37.329591 6.7883113,37.329591 C 6.6737562,38.311657 6.3223038,39.134309 5.2384755,39.513304 L 39.783532,39.510620 z "
-       id="path233"
-       sodipodi:nodetypes="cscccscc"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-ydpi="74.800003" />
-    <path
-       sodipodi:nodetypes="ccsscsc"
-       id="path304"
-       d="M 9.6202444,16.463921 L 42.411343,16.528735 L 40.837297,36.530714 C 40.752975,37.602225 40.386619,37.958929 38.964641,37.958929 C 37.093139,37.958929 10.286673,37.926522 7.569899,37.926522 C 7.8034973,37.605711 7.9036547,36.937899 7.9049953,36.92191 L 9.6202444,16.463921 z "
-       style="opacity:0.46590909;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient322);stroke-width:0.99999970px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path323"
-       d="M 9.6202481,16.223182 L 8.4536014,31.866453 C 8.4536014,31.866453 16.749756,27.718375 27.119949,27.718375 C 37.490142,27.718375 42.675239,16.223182 42.675239,16.223182 L 9.6202481,16.223182 z "
-       style="fill:#ffffff;fill-opacity:0.089285679;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-    <g
-       id="layer4"
-       inkscape:label="new"
-       style="display:inline"
-       transform="translate(-1.976491,1.981795)">
-      <path
-         sodipodi:type="arc"
-         style="color:#000000;fill:url(#radialGradient1758);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
-         id="path12511"
-         sodipodi:cx="55"
-         sodipodi:cy="125"
-         sodipodi:rx="14.375"
-         sodipodi:ry="14.375"
-         d="M 69.375 125 A 14.375 14.375 0 1 1  40.625,125 A 14.375 14.375 0 1 1  69.375 125 z"
-         transform="matrix(0.783292,0,0,0.783292,-6.340883,-86.65168)"
-         inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
-         inkscape:export-xdpi="33.852203"
-         inkscape:export-ydpi="33.852203" />
-    </g>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="pattern" />
-</svg>
Binary file libgui/src/icons/folder.png has changed
--- a/libgui/src/icons/folder.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,424 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg97"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/places"
-   sodipodi:docname="folder.svg"
-   inkscape:export-filename="/home/jimmac/Desktop/horlander-style3.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective68" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient6719"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient6717"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient6715"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient9806">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop9808" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop9810" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         style="stop-color:#6194cb;stop-opacity:1;"
-         offset="0"
-         id="stop9768" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="1"
-         id="stop9770" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         offset="0"
-         style="stop-color:#424242;stop-opacity:1;" />
-      <stop
-         id="stop3100"
-         offset="1.0000000"
-         style="stop-color:#777777;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319"
-       inkscape:collect="always">
-      <stop
-         id="stop320"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop321"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         style="stop-color:#202020;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop1790" />
-      <stop
-         style="stop-color:#b9b9b9;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop1791" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1789"
-       id="radialGradient238"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.055022,-2.734504e-2,0.177703,1.190929,-3.572177,-7.125301)"
-       cx="20.706017"
-       cy="37.517986"
-       fx="20.706017"
-       fy="37.517986"
-       r="30.905205" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.87628865;"
-         offset="0.0000000"
-         id="stop3984" />
-      <stop
-         style="stop-color:#fffffe;stop-opacity:0.0000000;"
-         offset="1.0000000"
-         id="stop3985" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3983"
-       id="linearGradient491"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0.000000,0.000000,0.708978,-0.879573,-1.318166)"
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.689312"
-       x2="12.853771"
-       y1="32.567184"
-       x1="13.035696"
-       gradientTransform="matrix(1.317489,0.000000,0.000000,0.816256,-0.879573,-1.318166)"
-       id="linearGradient322"
-       xlink:href="#linearGradient319"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="6.1802502"
-       x2="15.514889"
-       y1="31.367750"
-       x1="18.112709"
-       id="linearGradient3104"
-       xlink:href="#linearGradient3096"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9766"
-       id="linearGradient9772"
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9806"
-       id="radialGradient9812"
-       cx="24.35099"
-       cy="41.591846"
-       fx="24.35099"
-       fy="41.591846"
-       r="19.136078"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.242494,1.565588e-16,31.50606)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     fill="#729fcf"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.10196078"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4"
-     inkscape:cx="54.359127"
-     inkscape:cy="-13.803699"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1026"
-     inkscape:window-height="818"
-     inkscape:window-x="169"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false"
-     stroke="#3465a4" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Folder Icon</dc:title>
-        <dc:date />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>folder</rdf:li>
-            <rdf:li>directory</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Folder"
-     inkscape:groupmode="layer">
-    <g
-       style="display:inline"
-       transform="matrix(2.262383e-2,0,0,2.086758e-2,43.38343,36.36962)"
-       id="g6707">
-      <rect
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect6709"
-         width="1339.6335"
-         height="478.35718"
-         x="-1559.2523"
-         y="-150.69685" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         id="path6711"
-         sodipodi:nodetypes="cccc" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path6713"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    </g>
-    <path
-       d="M 4.5217805,38.687417 C 4.5435766,39.103721 4.9816854,39.520026 5.3979900,39.520026 L 36.725011,39.520026 C 37.141313,39.520026 37.535823,39.103721 37.514027,38.687417 L 36.577584,11.460682 C 36.555788,11.044379 36.117687,10.628066 35.701383,10.628066 L 22.430510,10.628066 C 21.945453,10.628066 21.196037,10.312477 21.028866,9.5214338 L 20.417475,6.6283628 C 20.262006,5.8926895 19.535261,5.5904766 19.118957,5.5904766 L 4.3400975,5.5904766 C 3.9237847,5.5904766 3.5292767,6.0067807 3.5510726,6.4230849 L 4.5217805,38.687417 z "
-       id="path216"
-       style="fill:url(#radialGradient238);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient3104);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
-       sodipodi:nodetypes="ccccccssssccc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9788"
-       d="M 5.2265927,22.5625 L 35.492173,22.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9784"
-       d="M 5.0421736,18.5625 L 35.489104,18.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 4.9806965,12.5625 L 35.488057,12.5625"
-       id="path9778"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.3861577,32.5625 L 35.494881,32.5625"
-       id="path9798"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9800"
-       d="M 5.5091398,34.5625 L 35.496893,34.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.0421736,16.5625 L 35.489104,16.5625"
-       id="path9782"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9780"
-       d="M 5.0114345,14.5625 L 35.48858,14.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9776"
-       d="M 4.9220969,10.5625 L 20.202912,10.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 4.8737534,8.5624999 L 19.657487,8.5624999"
-       id="path9774"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.3246666,28.5625 L 35.493876,28.5625"
-       id="path9794"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9792"
-       d="M 5.2880638,26.5625 L 35.493184,26.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.2265927,24.5625 L 35.492173,24.5625"
-       id="path9790"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.1958537,20.5625 L 35.491649,20.5625"
-       id="path9786"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path9796"
-       d="M 5.3246666,30.5625 L 35.493876,30.5625"
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 5.5091398,36.5625 L 35.496893,36.5625"
-       id="path9802"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="color:#000000;fill:url(#linearGradient491);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.2138050;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible;opacity:0.45142857"
-       d="M 6.0683430,38.864023 C 6.0846856,39.176251 5.8874317,39.384402 5.5697582,39.280326 L 5.5697582,39.280326 C 5.2520766,39.176251 5.0330270,38.968099 5.0166756,38.655870 L 4.0689560,6.5913839 C 4.0526131,6.2791558 4.2341418,6.0906134 4.5463699,6.0906134 L 18.968420,6.0429196 C 19.280648,6.0429196 19.900363,6.3433923 20.101356,7.3651014 L 20.674845,10.180636 C 20.247791,9.7153790 20.255652,9.7010175 20.037287,9.0239299 L 19.631192,7.7647478 C 19.412142,7.0371009 18.932991,6.9328477 18.620763,6.9328477 L 5.7329889,6.9328477 C 5.4207613,6.9328477 5.2235075,7.1409999 5.2398583,7.4532364 L 6.1778636,38.968099 L 6.0683430,38.864023 z "
-       id="path219"
-       sodipodi:nodetypes="cccccccccscccccc" />
-    <g
-       style="stroke-miterlimit:4.0000000;stroke-width:0.99946535;stroke:none;fill-rule:nonzero;fill-opacity:0.75706214;fill:#ffffff"
-       id="g220"
-       transform="matrix(1.040764,0.000000,5.449252e-2,1.040764,-8.670199,2.670594)"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-ydpi="74.800003">
-      <path
-         style="fill-opacity:0.50847459;fill:#ffffff"
-         d="M 42.417183,8.5151772 C 42.422267,8.4180642 42.289022,8.2681890 42.182066,8.2681716 L 29.150665,8.2660527 C 29.150665,8.2660527 30.062379,8.8540072 31.352477,8.8622963 L 42.405974,8.9333167 C 42.417060,8.7215889 42.408695,8.6772845 42.417183,8.5151772 z "
-         id="path221"
-         sodipodi:nodetypes="cscscs" />
-    </g>
-    <path
-       style="color:#000000;fill:url(#linearGradient9772);fill-opacity:1.0;fill-rule:nonzero;stroke:#3465a4;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:block"
-       d="M 39.783532,39.510620 C 40.927426,39.466556 41.746608,38.414321 41.830567,37.189615 C 42.622354,25.640928 43.489927,15.957666 43.489927,15.957666 C 43.562082,15.710182 43.322016,15.462699 43.009787,15.462699 L 8.6386304,15.462699 C 8.6386304,15.462699 6.7883113,37.329591 6.7883113,37.329591 C 6.6737562,38.311657 6.3223038,39.134309 5.2384755,39.513304 L 39.783532,39.510620 z "
-       id="path233"
-       sodipodi:nodetypes="cscccscc"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-ydpi="74.800003" />
-    <path
-       sodipodi:nodetypes="ccsscsc"
-       id="path304"
-       d="M 9.6202444,16.463921 L 42.411343,16.528735 L 40.837297,36.530714 C 40.752975,37.602225 40.386619,37.958929 38.964641,37.958929 C 37.093139,37.958929 10.286673,37.926522 7.569899,37.926522 C 7.8034973,37.605711 7.9036547,36.937899 7.9049953,36.92191 L 9.6202444,16.463921 z "
-       style="opacity:0.46590909;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient322);stroke-width:0.99999970px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path323"
-       d="M 9.6202481,16.223182 L 8.4536014,31.866453 C 8.4536014,31.866453 16.749756,27.718375 27.119949,27.718375 C 37.490142,27.718375 42.675239,16.223182 42.675239,16.223182 L 9.6202481,16.223182 z "
-       style="fill:#ffffff;fill-opacity:0.089285679;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="pattern" />
-</svg>
Binary file libgui/src/icons/go-down.png has changed
--- a/libgui/src/icons/go-down.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="go-down.svg"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg11300"
-   height="48px"
-   width="48px"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective24" />
-    <linearGradient
-       id="linearGradient1442">
-      <stop
-         id="stop1444"
-         offset="0"
-         style="stop-color:#73d216" />
-      <stop
-         id="stop1446"
-         offset="1.0000000"
-         style="stop-color:#4e9a06" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662"
-       inkscape:collect="always">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8650"
-       inkscape:collect="always">
-      <stop
-         id="stop8652"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop8654"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient1444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,1.614716e-15,16.87306)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1442"
-       id="radialGradient1469"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.871885e-16,-0.843022,1.020168,2.265228e-16,0.606436,42.58614)"
-       cx="35.292667"
-       cy="20.494493"
-       fx="35.292667"
-       fy="20.494493"
-       r="16.956199" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8650"
-       id="radialGradient1471"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.749427e-16,-2.046729,-1.557610,-2.853404e-16,44.11559,66.93275)"
-       cx="15.987216"
-       cy="1.5350308"
-       fx="15.987216"
-       fy="1.5350308"
-       r="17.171415" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="1280"
-     inkscape:showpageshadow="false"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer1"
-     inkscape:cy="23.239067"
-     inkscape:cx="15.972815"
-     inkscape:zoom="11.313708"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     fill="#4e9a06"
-     stroke="#4e9a06" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Go Down</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>go</rdf:li>
-            <rdf:li>lower</rdf:li>
-            <rdf:li>down</rdf:li>
-            <rdf:li>arrow</rdf:li>
-            <rdf:li>pointer</rdf:li>
-            <rdf:li>&gt;</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1"
-     id="layer1">
-    <path
-       transform="matrix(1.214466,0.000000,0.000000,0.595458,-6.163846,16.31275)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.20454545;color:#000000;fill:url(#radialGradient1444);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <g
-       id="g1464"
-       transform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.02856,43.99921)">
-      <path
-         style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1469);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 14.519136,38.500000 L 32.524165,38.496094 L 32.524165,25.504468 L 40.519531,25.496656 L 23.374809,5.4992135 L 6.5285585,25.497284 L 14.524440,25.501074 L 14.519136,38.500000 z "
-         id="path8643"
-         sodipodi:nodetypes="cccccccc" />
-      <path
-         style="opacity:0.50802141;color:#000000;fill:url(#radialGradient1471);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-         d="M 39.429889,24.993467 L 32.023498,25.005186 L 32.026179,37.998023 L 16.647623,37.98887 C 17.417545,19.64788 27.370272,26.995797 32.029282,16.341991 L 39.429889,24.993467 z "
-         id="path8645"
-         sodipodi:nodetypes="cccccc" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         id="path8658"
-         d="M 15.520704,37.496094 L 31.522109,37.500000 L 31.522109,24.507050 L 38.338920,24.491425 L 23.384644,7.0388396 L 8.6781173,24.495782 L 15.518018,24.501029 L 15.520704,37.496094 z "
-         style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/go-first.png has changed
--- a/libgui/src/icons/go-first.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="go-first.svg"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg11300"
-   height="48px"
-   width="48px"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective24" />
-    <linearGradient
-       id="linearGradient2301">
-      <stop
-         id="stop2303"
-         offset="0"
-         style="stop-color:#73d216" />
-      <stop
-         id="stop2305"
-         offset="1.0000000"
-         style="stop-color:#4e9a06" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2301"
-       id="radialGradient1441"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.150574,1.757515e-16,3.460315e-16,1.223465,54.74191,-2.461415)"
-       cx="22.752287"
-       cy="29.900566"
-       fx="22.752287"
-       fy="29.900566"
-       r="16.956199" />
-    <linearGradient
-       id="linearGradient8662"
-       inkscape:collect="always">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8650"
-       inkscape:collect="always">
-      <stop
-         id="stop8652"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop8654"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,4.441327e-15,16.87306)"
-       r="15.644737"
-       fy="36.421127"
-       fx="24.837126"
-       cy="36.421127"
-       cx="24.837126"
-       id="radialGradient8668"
-       xlink:href="#linearGradient8662"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8650"
-       id="radialGradient6058"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.046729,-3.749427e-16,2.853404e-16,1.557610,-19.71021,3.166594)"
-       cx="17.474981"
-       cy="1.4732735"
-       fx="17.474981"
-       fy="1.4732735"
-       r="17.171415" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="1280"
-     inkscape:showpageshadow="false"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer1"
-     inkscape:cy="25.355927"
-     inkscape:cx="12.917407"
-     inkscape:zoom="11.313708"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     fill="#4e9a06"
-     stroke="#4e9a06" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Go Previous</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>go</rdf:li>
-            <rdf:li>previous</rdf:li>
-            <rdf:li>left</rdf:li>
-            <rdf:li>arrow</rdf:li>
-            <rdf:li>pointer</rdf:li>
-            <rdf:li>&lt;</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1"
-     id="layer1">
-    <path
-       transform="matrix(-1.271186,0.000000,0.000000,1.271186,56.54869,-13.15725)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.29946522;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1441);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 2.5000002,6.4999998 L 8.4962092,6.4999998 L 8.4962092,21.625000 L 26.500000,6.5312498 L 26.562500,14.500000 L 39.500000,14.500000 L 39.500000,32.531250 L 26.562500,32.531250 L 26.562500,40.500000 L 8.4962092,25.125000 L 8.4962092,40.498104 L 2.5000002,40.498104 L 2.5000002,6.4999998 z "
-       id="path18242"
-       sodipodi:nodetypes="ccccccccccccc" />
-    <rect
-       style="opacity:0.48099998;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="rect2163"
-       width="32.011883"
-       height="4.0094671"
-       x="7.4881172"
-       y="3.4905324"
-       transform="matrix(0.000000,1.000000,1.000000,0.000000,0.000000,0.000000)" />
-    <path
-       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 38.519933,15.448055 L 38.519933,31.504148 L 25.526984,31.504148 L 25.526984,38.156896 L 8.5312502,23.936088 L 8.5319662,22.764585 L 25.570404,8.5000002 L 25.548307,15.507869 L 38.519933,15.448055 z "
-       id="path8658"
-       sodipodi:nodetypes="ccccccccc" />
-    <path
-       sodipodi:nodetypes="ccccccccc"
-       id="path8645"
-       d="M 26.066367,7.5151738 L 26.035117,15.040398 L 38.946037,14.946648 L 39.008537,23.924861 C 22.258537,17.674861 18.250000,29.344573 3.0000000,23.094573 L 3.0165920,6.9965978 L 7.8456840,6.9611228 L 7.8622750,22.613148 L 26.066367,7.5151738 z "
-       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient6058);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-  </g>
-</svg>
Binary file libgui/src/icons/go-home.png has changed
--- a/libgui/src/icons/go-home.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,445 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48"
-   height="48"
-   overflow="visible"
-   enable-background="new 0 0 128 129.396"
-   xml:space="preserve"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docname="go-home.svg"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   version="1.0"
-   inkscape:export-filename="/home/tigert/My Downloads/go-home.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
-   id="metadata367"><rdf:RDF><cc:Work
-       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
-         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><cc:license
-         rdf:resource="http://creativecommons.org/licenses/publicdomain/" /><dc:title>Go Home</dc:title><dc:creator><cc:Agent><dc:title>Jakub Steiner</dc:title></cc:Agent></dc:creator><dc:source>http://jimmac.musichall.cz</dc:source><dc:subject><rdf:Bag><rdf:li>home</rdf:li><rdf:li>return</rdf:li><rdf:li>go</rdf:li><rdf:li>default</rdf:li><rdf:li>user</rdf:li><rdf:li>directory</rdf:li></rdf:Bag></dc:subject><dc:contributor><cc:Agent><dc:title>Tuomas Kuosmanen</dc:title></cc:Agent></dc:contributor></cc:Work><cc:License
-       rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits
-         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
-         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
-         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><defs
-   id="defs365"><inkscape:perspective
-     sodipodi:type="inkscape:persp3d"
-     inkscape:vp_x="0 : 24 : 1"
-     inkscape:vp_y="0 : 1000 : 0"
-     inkscape:vp_z="48 : 24 : 1"
-     inkscape:persp3d-origin="24 : 16 : 1"
-     id="perspective92" /><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient5060"
-     id="radialGradient5031"
-     gradientUnits="userSpaceOnUse"
-     gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-     cx="605.71429"
-     cy="486.64789"
-     fx="605.71429"
-     fy="486.64789"
-     r="117.14286" /><linearGradient
-     inkscape:collect="always"
-     id="linearGradient5060"><stop
-       style="stop-color:black;stop-opacity:1;"
-       offset="0"
-       id="stop5062" /><stop
-       style="stop-color:black;stop-opacity:0;"
-       offset="1"
-       id="stop5064" /></linearGradient><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient5060"
-     id="radialGradient5029"
-     gradientUnits="userSpaceOnUse"
-     gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-     cx="605.71429"
-     cy="486.64789"
-     fx="605.71429"
-     fy="486.64789"
-     r="117.14286" /><linearGradient
-     id="linearGradient5048"><stop
-       style="stop-color:black;stop-opacity:0;"
-       offset="0"
-       id="stop5050" /><stop
-       id="stop5056"
-       offset="0.5"
-       style="stop-color:black;stop-opacity:1;" /><stop
-       style="stop-color:black;stop-opacity:0;"
-       offset="1"
-       id="stop5052" /></linearGradient><linearGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient5048"
-     id="linearGradient5027"
-     gradientUnits="userSpaceOnUse"
-     gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-     x1="302.85715"
-     y1="366.64789"
-     x2="302.85715"
-     y2="609.50507" /><linearGradient
-     id="linearGradient2406"><stop
-       style="stop-color:#7c7e79;stop-opacity:1;"
-       offset="0"
-       id="stop2408" /><stop
-       id="stop2414"
-       offset="0.1724138"
-       style="stop-color:#848681;stop-opacity:1;" /><stop
-       style="stop-color:#898c86;stop-opacity:1;"
-       offset="1"
-       id="stop2410" /></linearGradient><linearGradient
-     inkscape:collect="always"
-     id="linearGradient2390"><stop
-       style="stop-color:#919191;stop-opacity:1;"
-       offset="0"
-       id="stop2392" /><stop
-       style="stop-color:#919191;stop-opacity:0;"
-       offset="1"
-       id="stop2394" /></linearGradient><linearGradient
-     inkscape:collect="always"
-     id="linearGradient2378"><stop
-       style="stop-color:#575757;stop-opacity:1;"
-       offset="0"
-       id="stop2380" /><stop
-       style="stop-color:#575757;stop-opacity:0;"
-       offset="1"
-       id="stop2382" /></linearGradient><linearGradient
-     inkscape:collect="always"
-     id="linearGradient2368"><stop
-       style="stop-color:#ffffff;stop-opacity:1;"
-       offset="0"
-       id="stop2370" /><stop
-       style="stop-color:#ffffff;stop-opacity:0;"
-       offset="1"
-       id="stop2372" /></linearGradient><linearGradient
-     inkscape:collect="always"
-     id="linearGradient2349"><stop
-       style="stop-color:#000000;stop-opacity:1;"
-       offset="0"
-       id="stop2351" /><stop
-       style="stop-color:#000000;stop-opacity:0;"
-       offset="1"
-       id="stop2353" /></linearGradient><linearGradient
-     id="linearGradient2341"><stop
-       id="stop2343"
-       offset="0"
-       style="stop-color:#000000;stop-opacity:1;" /><stop
-       id="stop2345"
-       offset="1"
-       style="stop-color:#000000;stop-opacity:0;" /></linearGradient><linearGradient
-     id="linearGradient2329"><stop
-       style="stop-color:#000000;stop-opacity:0.18556701;"
-       offset="0"
-       id="stop2331" /><stop
-       style="stop-color:#ffffff;stop-opacity:1;"
-       offset="1"
-       id="stop2333" /></linearGradient><linearGradient
-     inkscape:collect="always"
-     id="linearGradient2319"><stop
-       style="stop-color:#000000;stop-opacity:1;"
-       offset="0"
-       id="stop2321" /><stop
-       style="stop-color:#000000;stop-opacity:0;"
-       offset="1"
-       id="stop2323" /></linearGradient><linearGradient
-     id="linearGradient2307"><stop
-       style="stop-color:#edd400;stop-opacity:1;"
-       offset="0"
-       id="stop2309" /><stop
-       style="stop-color:#998800;stop-opacity:1;"
-       offset="1"
-       id="stop2311" /></linearGradient><linearGradient
-     inkscape:collect="always"
-     id="linearGradient2299"><stop
-       style="stop-color:#ffffff;stop-opacity:1;"
-       offset="0"
-       id="stop2301" /><stop
-       style="stop-color:#ffffff;stop-opacity:0;"
-       offset="1"
-       id="stop2303" /></linearGradient><linearGradient
-     id="XMLID_2_"
-     gradientUnits="userSpaceOnUse"
-     x1="80.223602"
-     y1="117.5205"
-     x2="48.046001"
-     y2="59.7995"
-     gradientTransform="matrix(0.314683,0.000000,0.000000,0.314683,4.128264,3.742874)">
-				<stop
-   offset="0"
-   style="stop-color:#CCCCCC"
-   id="stop17" />
-				<stop
-   offset="0.9831"
-   style="stop-color:#FFFFFF"
-   id="stop19" />
-				<midPointStop
-   offset="0"
-   style="stop-color:#CCCCCC"
-   id="midPointStop48" />
-				<midPointStop
-   offset="0.5"
-   style="stop-color:#CCCCCC"
-   id="midPointStop50" />
-				<midPointStop
-   offset="0.9831"
-   style="stop-color:#FFFFFF"
-   id="midPointStop52" />
-			</linearGradient><linearGradient
-     inkscape:collect="always"
-     xlink:href="#XMLID_2_"
-     id="linearGradient1514"
-     gradientUnits="userSpaceOnUse"
-     gradientTransform="matrix(0.336922,0.000000,0.000000,0.166888,17.98288,15.46151)"
-     x1="52.006104"
-     y1="166.1331"
-     x2="14.049017"
-     y2="-42.218513" /><linearGradient
-     id="XMLID_39_"
-     gradientUnits="userSpaceOnUse"
-     x1="64.387703"
-     y1="65.124001"
-     x2="64.387703"
-     y2="35.569"
-     gradientTransform="matrix(0.354101,0.000000,0.000000,0.354101,1.638679,-8.364921e-2)">
-						<stop
-   offset="0"
-   style="stop-color:#FFFFFF"
-   id="stop336" />
-						<stop
-   offset="0.8539"
-   style="stop-color:#FF6200"
-   id="stop338" />
-						<stop
-   offset="1"
-   style="stop-color:#F25D00"
-   id="stop340" />
-						<midPointStop
-   offset="0"
-   style="stop-color:#FFFFFF"
-   id="midPointStop335" />
-						<midPointStop
-   offset="0.5"
-   style="stop-color:#FFFFFF"
-   id="midPointStop337" />
-						<midPointStop
-   offset="0.8539"
-   style="stop-color:#FF6200"
-   id="midPointStop339" />
-						<midPointStop
-   offset="0.5"
-   style="stop-color:#FF6200"
-   id="midPointStop341" />
-						<midPointStop
-   offset="1"
-   style="stop-color:#F25D00"
-   id="midPointStop343" />
-					</linearGradient><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2299"
-     id="radialGradient2305"
-     cx="7.5326638"
-     cy="24.202574"
-     fx="7.5326638"
-     fy="24.202574"
-     r="8.2452128"
-     gradientTransform="matrix(4.100086,-1.627292e-17,2.125447e-14,4.201322,-25.41506,-78.53967)"
-     gradientUnits="userSpaceOnUse" /><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2307"
-     id="radialGradient2313"
-     cx="19.985598"
-     cy="36.77816"
-     fx="19.985598"
-     fy="36.77816"
-     r="1.0821035"
-     gradientTransform="matrix(1.125263,0.000000,0.000000,0.982744,-3.428678,0.565787)"
-     gradientUnits="userSpaceOnUse" /><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2319"
-     id="radialGradient2325"
-     cx="20.443665"
-     cy="37.425829"
-     fx="20.443665"
-     fy="37.425829"
-     r="1.0821035"
-     gradientTransform="matrix(1.125263,0.000000,0.000000,0.982744,-3.428678,0.731106)"
-     gradientUnits="userSpaceOnUse" /><linearGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2329"
-     id="linearGradient2335"
-     x1="17.602522"
-     y1="26.057423"
-     x2="17.682528"
-     y2="32.654099"
-     gradientUnits="userSpaceOnUse"
-     gradientTransform="matrix(0.898789,0,0,1.071914,0.478025,-2.080838)" /><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2341"
-     id="radialGradient2339"
-     gradientUnits="userSpaceOnUse"
-     gradientTransform="matrix(4.100086,1.627292e-17,2.125447e-14,-4.201322,-5.198109,105.3535)"
-     cx="11.68129"
-     cy="19.554111"
-     fx="11.68129"
-     fy="19.554111"
-     r="8.2452126" /><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2349"
-     id="radialGradient2355"
-     cx="24.023088"
-     cy="40.56913"
-     fx="24.023088"
-     fy="40.56913"
-     r="16.28684"
-     gradientTransform="matrix(1.000000,0.000000,0.000000,0.431250,1.157278e-15,23.07369)"
-     gradientUnits="userSpaceOnUse" /><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2368"
-     id="radialGradient2374"
-     cx="29.913452"
-     cy="30.442923"
-     fx="29.913452"
-     fy="30.442923"
-     r="4.0018832"
-     gradientTransform="matrix(3.751495,-2.191984e-22,1.723265e-22,3.147818,-82.00907,-65.70704)"
-     gradientUnits="userSpaceOnUse" /><radialGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2378"
-     id="radialGradient2384"
-     cx="24.195112"
-     cy="10.577631"
-     fx="24.195112"
-     fy="10.577631"
-     r="15.242914"
-     gradientTransform="matrix(1.125263,-3.585417e-8,4.269819e-8,1.340059,-3.006704,1.355395)"
-     gradientUnits="userSpaceOnUse" /><linearGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2390"
-     id="linearGradient2396"
-     x1="30.603519"
-     y1="37.337803"
-     x2="30.603519"
-     y2="36.112415"
-     gradientUnits="userSpaceOnUse"
-     gradientTransform="matrix(1.263867,0,0,0.859794,-6.499556,8.390924)" /><linearGradient
-     inkscape:collect="always"
-     xlink:href="#linearGradient2406"
-     id="linearGradient2412"
-     x1="17.850183"
-     y1="28.939463"
-     x2="19.040216"
-     y2="41.03223"
-     gradientUnits="userSpaceOnUse"
-     gradientTransform="matrix(0.888785,0,0,1.08932,2.41099,-1.524336)" /></defs><sodipodi:namedview
-   inkscape:cy="-2.3755359"
-   inkscape:cx="25.234802"
-   inkscape:zoom="1"
-   inkscape:window-height="691"
-   inkscape:window-width="872"
-   inkscape:pageshadow="2"
-   inkscape:pageopacity="0.0"
-   borderopacity="0.21568627"
-   bordercolor="#666666"
-   pagecolor="#ffffff"
-   id="base"
-   inkscape:showpageshadow="false"
-   inkscape:window-x="466"
-   inkscape:window-y="157"
-   inkscape:current-layer="svg2"
-   fill="#555753"
-   showgrid="false"
-   stroke="#a40000"
-   showguides="true"
-   inkscape:guide-bbox="true" />
-	<g
-   style="display:inline"
-   id="g5022"
-   transform="matrix(2.158196e-2,0,0,1.859457e-2,43.12251,41.63767)"><rect
-     y="-150.69685"
-     x="-1559.2523"
-     height="478.35718"
-     width="1339.6335"
-     id="rect4173"
-     style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
-     sodipodi:nodetypes="cccc"
-     id="path5058"
-     d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-     style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
-     style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-     d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-     id="path5018"
-     sodipodi:nodetypes="cccc" /></g><path
-   style="color:#000000;fill:url(#linearGradient1514);fill-opacity:1;fill-rule:nonzero;stroke:#757575;stroke-width:1.0000006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-   d="M 21.619576,8.1833733 L 27.577035,8.1833733 C 28.416767,8.1833733 41.46351,23.618701 41.46351,24.524032 L 41.019989,43.020777 C 41.019989,43.92611 40.343959,44.654954 39.504227,44.654954 L 8.0469496,44.654954 C 7.2072167,44.654954 6.5311871,43.92611 6.5311871,43.020777 L 6.5876651,24.524032 C 6.5876651,23.618701 20.779844,8.1833733 21.619576,8.1833733 z "
-   id="rect1512"
-   sodipodi:nodetypes="ccccccccc" /><path
-   style="fill:none"
-   id="path5"
-   d="M 46.963575,45.735573 L 1.6386762,45.735573 L 1.6386762,0.41067554 L 46.963575,0.41067554 L 46.963575,45.735573 z " /><path
-   style="fill:url(#linearGradient2335);fill-opacity:1;fill-rule:evenodd"
-   id="path2327"
-   d="M 23,29 L 22.954256,44.090942 L 11.111465,44.090942 L 11,29 L 23,29 z "
-   clip-rule="evenodd"
-   sodipodi:nodetypes="ccccc" /><path
-   sodipodi:nodetypes="ccccccccc"
-   id="path2357"
-   d="M 21.780459,9.405584 L 27.339556,9.405584 C 28.123138,9.405584 40.340425,23.805172 40.340425,24.649756 L 39.993267,42.862067 C 39.993267,43.321326 39.84953,43.515532 39.480892,43.515532 L 8.0936894,43.529812 C 7.7250517,43.529812 7.5097258,43.449894 7.5097258,43.076262 L 7.7250676,24.649756 C 7.7250676,23.805172 20.99688,9.405584 21.780459,9.405584 z "
-   style="opacity:0.3125;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
-   clip-rule="evenodd"
-   d="M 7.2075295,27.943053 L 7.1532728,30.538247 L 25.521437,17.358993 L 40.807832,28.513421 L 40.879142,28.201707 L 24.508686,12.297576 L 7.2075295,27.943053 z "
-   id="path23"
-   style="opacity:0.2;fill:url(#radialGradient2384);fill-opacity:1;fill-rule:evenodd"
-   sodipodi:nodetypes="ccccccc" /><path
-   clip-rule="evenodd"
-   d="M 22,30 L 22,44.090942 L 12.188971,44.090942 L 12,30 L 22,30 z "
-   id="path188"
-   style="fill:url(#linearGradient2412);fill-opacity:1;fill-rule:evenodd"
-   sodipodi:nodetypes="ccccc" /><path
-   style="opacity:0.40909089;fill:url(#radialGradient2325);fill-opacity:1;fill-rule:evenodd"
-   id="path2315"
-   d="M 19.576856,36.44767 C 20.249646,36.44767 20.793472,36.922275 20.793472,37.506177 C 20.793472,38.095988 20.249646,38.574532 19.576856,38.574532 C 18.904584,38.574532 18.35817,38.095988 18.35817,37.506177 C 18.358685,36.922275 18.904584,36.44767 19.576856,36.44767 z "
-   clip-rule="evenodd" /><path
-   clip-rule="evenodd"
-   d="M 19.462314,35.932229 C 20.135103,35.932229 20.678929,36.406834 20.678929,36.990736 C 20.678929,37.580545 20.135103,38.059089 19.462314,38.059089 C 18.790041,38.059089 18.243627,37.580545 18.243627,36.990736 C 18.244142,36.406834 18.790041,35.932229 19.462314,35.932229 z "
-   id="path217"
-   style="fill:url(#radialGradient2313);fill-opacity:1;fill-rule:evenodd" /><path
-   d="M 24.447748,11.559337 L 43.374808,28.729205 L 43.869487,29.121196 L 44.273163,28.949811 L 43.900293,28.188138 L 43.622679,27.964702 L 24.447748,12.392396 L 5.0582327,28.135731 L 4.8206309,28.279851 L 4.603921,28.986637 L 5.0373408,29.115885 L 5.4218948,28.807462 L 24.447748,11.559337 z "
-   id="path342"
-   style="fill:url(#XMLID_39_)"
-   sodipodi:nodetypes="ccccccccccccc" /><path
-   style="fill:#ef2929;stroke:#a40000"
-   id="path362"
-   d="M 24.330168,2.2713382 L 2.4484294,20.372675 L 1.8237005,27.538603 L 3.8236367,29.602926 C 3.8236367,29.602926 24.231018,12.445641 24.44773,12.274963 L 44.08027,29.818223 L 45.978694,27.494226 L 44.362903,20.382852 L 24.44773,2.1668788 L 24.330168,2.2713382 z "
-   sodipodi:nodetypes="cccccccccc" />
-<path
-   style="opacity:0.40909089;color:#000000;fill:url(#radialGradient2305);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-   d="M 2.8413446,20.613129 L 2.5497894,27.236494 L 24.369219,8.980075 L 24.298891,3.0867443 L 2.8413446,20.613129 z "
-   id="path1536"
-   sodipodi:nodetypes="ccccc" /><path
-   sodipodi:nodetypes="ccccc"
-   id="path2337"
-   d="M 24.483763,8.7509884 L 24.583223,2.9098867 L 43.912186,20.56184 L 45.403998,27.062652 L 24.483763,8.7509884 z "
-   style="opacity:0.13636367;color:#000000;fill:url(#radialGradient2339);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
-   style="opacity:0.31818183;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999934;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-   d="M 27.102228,27.719824 L 36.142223,27.719824 C 36.912818,27.719824 37.53319,28.340194 37.53319,29.110791 L 37.525229,38.190012 C 37.525229,38.960608 36.928907,39.455981 36.158311,39.455981 L 27.102228,39.455981 C 26.331631,39.455981 25.711261,38.835608 25.711261,38.065012 L 25.711261,29.110791 C 25.711261,28.340194 26.331631,27.719824 27.102228,27.719824 z "
-   id="rect2361"
-   sodipodi:nodetypes="ccccccccc" /><rect
-   style="opacity:1;color:#000000;fill:#3465a4;fill-opacity:1;fill-rule:nonzero;stroke:#757575;stroke-width:0.9999994;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-   id="rect3263"
-   width="10.001333"
-   height="9.9624557"
-   x="26.507767"
-   y="28.514256"
-   rx="0.38128215"
-   ry="0.38128215" /><path
-   style="opacity:0.39772728;color:#000000;fill:url(#radialGradient2374);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-   d="M 27.107118,34.408261 C 30.725101,34.739438 32.634842,32.962557 35.97527,32.855521 L 36,29.00603 L 27.088388,29 L 27.107118,34.408261 z "
-   id="rect2363"
-   sodipodi:nodetypes="ccccc" /></svg>
Binary file libgui/src/icons/go-last.png has changed
--- a/libgui/src/icons/go-last.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="go-last.svg"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg11300"
-   height="48px"
-   width="48px"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective24" />
-    <linearGradient
-       id="linearGradient1428">
-      <stop
-         id="stop1430"
-         offset="0"
-         style="stop-color:#73d216" />
-      <stop
-         id="stop1432"
-         offset="1.0000000"
-         style="stop-color:#4e9a06" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1428"
-       id="radialGradient1441"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.843022,1.871885e-16,-2.265228e-16,1.020168,4.413860,0.606440)"
-       cx="22.588188"
-       cy="34.462799"
-       fx="22.588188"
-       fy="34.462799"
-       r="16.956199" />
-    <linearGradient
-       id="linearGradient8662"
-       inkscape:collect="always">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8650"
-       inkscape:collect="always">
-      <stop
-         id="stop8652"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop8654"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.046729,-3.749427e-16,2.853404e-16,1.557610,-19.66321,2.389970)"
-       r="17.171415"
-       fy="3.0045178"
-       fx="18.968266"
-       cy="3.0045178"
-       cx="18.968266"
-       id="radialGradient8656"
-       xlink:href="#linearGradient8650"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,1.246400e-15,16.87306)"
-       r="15.644737"
-       fy="36.421127"
-       fx="24.837126"
-       cy="36.421127"
-       cx="24.837126"
-       id="radialGradient8668"
-       xlink:href="#linearGradient8662"
-       inkscape:collect="always" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="1280"
-     inkscape:showpageshadow="false"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer1"
-     inkscape:cy="21.636957"
-     inkscape:cx="37.866635"
-     inkscape:zoom="11.313708"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     fill="#4e9a06"
-     stroke="#4e9a06" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Go Next</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>go</rdf:li>
-            <rdf:li>next</rdf:li>
-            <rdf:li>right</rdf:li>
-            <rdf:li>arrow</rdf:li>
-            <rdf:li>pointer</rdf:li>
-            <rdf:li>&gt;</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1"
-     id="layer1">
-    <path
-       transform="matrix(1.271186,0.000000,0.000000,1.271186,-9.619376,-12.27857)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.29946522;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1441);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 45.500000,6.5000002 L 39.503791,6.5000002 L 39.503791,21.625000 L 21.500000,6.5312502 L 21.437500,14.500000 L 8.4999996,14.500000 L 8.4999996,32.468750 L 21.437500,32.468750 L 21.437500,40.500000 L 39.503791,25.125000 L 39.503791,40.498104 L 45.500000,40.498104 L 45.500000,6.5000002 z "
-       id="path18242"
-       sodipodi:nodetypes="ccccccccccccc" />
-    <path
-       sodipodi:nodetypes="ccccccccc"
-       id="path8645"
-       d="M 21.81717,7.1863873 L 21.81717,15.149112 L 9,15.149112 L 9,24.033575 C 23.75,28.283575 28.133537,18.203287 44.883537,23.203287 L 44.866945,7.105312 L 40.037853,7.069837 L 40.021262,22.721862 L 21.81717,7.1863873 z "
-       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient8656);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 9.5000002,15.448055 L 9.5000002,31.347898 L 22.492950,31.347898 L 22.492950,38.156896 L 39.519934,23.654838 L 39.487968,22.764585 L 22.449530,8.5000002 L 22.471627,15.320369 L 9.5000002,15.448055 z "
-       id="path8658"
-       sodipodi:nodetypes="ccccccccc" />
-    <rect
-       style="opacity:0.48099998;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="rect2163"
-       width="32.011883"
-       height="4.0094671"
-       x="7.5000000"
-       y="-44.509468"
-       transform="matrix(0.000000,1.000000,-1.000000,0.000000,0.000000,0.000000)" />
-  </g>
-</svg>
Binary file libgui/src/icons/go-next.png has changed
--- a/libgui/src/icons/go-next.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="go-next.svg"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg11300"
-   height="48"
-   width="48"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   version="1.0"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective23" />
-    <linearGradient
-       id="linearGradient2591">
-      <stop
-         style="stop-color:#73d216"
-         offset="0"
-         id="stop2593" />
-      <stop
-         style="stop-color:#4e9a06"
-         offset="1.0000000"
-         id="stop2595" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662"
-       inkscape:collect="always">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8650"
-       inkscape:collect="always">
-      <stop
-         id="stop8652"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop8654"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.046729,-3.749427e-16,2.853404e-16,1.557610,-19.51799,3.452086)"
-       r="17.171415"
-       fy="2.8969381"
-       fx="19.701141"
-       cy="2.8969381"
-       cx="19.701141"
-       id="radialGradient8656"
-       xlink:href="#linearGradient8650"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,2.511012e-15,16.87306)"
-       r="15.644737"
-       fy="36.421127"
-       fx="24.837126"
-       cy="36.421127"
-       cx="24.837126"
-       id="radialGradient8668"
-       xlink:href="#linearGradient8662"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2591"
-       id="radialGradient2597"
-       cx="22.291636"
-       cy="32.797512"
-       fx="22.291636"
-       fy="32.797512"
-       r="16.9562"
-       gradientTransform="matrix(0.843022,1.871885e-16,-2.265228e-16,1.020168,4.499298,1.381992)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="1280"
-     inkscape:showpageshadow="false"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer1"
-     inkscape:cy="27.398876"
-     inkscape:cx="20.508639"
-     inkscape:zoom="11.313708"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     fill="#4e9a06"
-     stroke="#4e9a06" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Go Next</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>go</rdf:li>
-            <rdf:li>next</rdf:li>
-            <rdf:li>right</rdf:li>
-            <rdf:li>arrow</rdf:li>
-            <rdf:li>pointer</rdf:li>
-            <rdf:li>&gt;</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1"
-     id="layer1">
-    <path
-       transform="matrix(1.271186,0.000000,0.000000,1.271186,-8.119376,-15.10179)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.29946522;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="cccccccc"
-       id="path8643"
-       d="M 8.5541875,15.517348 L 8.5541875,32.511768 L 21.538,32.511768 L 21.538,41.056806 L 41.497835,24.150365 L 21.41919,7.1251168 L 21.41919,15.522652 L 8.5541875,15.517348 z "
-       style="opacity:1;color:#000000;fill:url(#radialGradient2597);fill-opacity:1;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cccccc"
-       id="path8645"
-       d="M 21.962385,8.2485033 L 21.962385,16.054978 L 9.1452151,16.054978 L 9.1452151,25.095691 C 26.895215,27.095691 25.778752,17.640403 40.528752,24.140403 L 21.962385,8.2485033 z "
-       style="opacity:0.5080214;color:#000000;fill:url(#radialGradient8656);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.48128339;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 9.537702,16.561892 L 9.537702,31.546332 L 22.523069,31.546332 L 22.523069,38.941498 L 40.001083,24.145807 L 22.507108,9.3654066 L 22.507108,16.566789 L 9.537702,16.561892 z "
-       id="path8658"
-       sodipodi:nodetypes="cccccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/go-previous.png has changed
--- a/libgui/src/icons/go-previous.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,854 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="go-previous.svg"
-   sodipodi:docbase="/home/andreas/projekt/tango/scalable"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg11300"
-   height="48px"
-   width="48px"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective128" />
-    <linearGradient
-       id="linearGradient2591">
-      <stop
-         style="stop-color:#73d216"
-         offset="0"
-         id="stop2593" />
-      <stop
-         style="stop-color:#4e9a06"
-         offset="1.0000000"
-         id="stop2595" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient10314">
-      <stop
-         style="stop-color:#7ea5d6;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop10316" />
-      <stop
-         style="stop-color:#467ec5;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop10318" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8938">
-      <stop
-         id="stop8940"
-         offset="0.0000000"
-         style="stop-color:#fdc674;stop-opacity:1.0000000;" />
-      <stop
-         id="stop8942"
-         offset="1.0000000"
-         style="stop-color:#d88103;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662"
-       inkscape:collect="always">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8650"
-       inkscape:collect="always">
-      <stop
-         id="stop8652"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop8654"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7636"
-       inkscape:collect="always">
-      <stop
-         id="stop7638"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop7640"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7614">
-      <stop
-         id="stop7616"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.21590909"
-         id="stop7649" />
-      <stop
-         style="stop-color:#838383;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop7632" />
-      <stop
-         id="stop7618"
-         offset="1"
-         style="stop-color:#838383;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7608">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop7610" />
-      <stop
-         id="stop7622"
-         offset="0.46022728"
-         style="stop-color:#e3e3e3;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#dadada;stop-opacity:0.67058824;"
-         offset="0.61970556"
-         id="stop7624" />
-      <stop
-         style="stop-color:#d1d1d1;stop-opacity:0.34285715;"
-         offset="1.0000000"
-         id="stop7612" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7602">
-      <stop
-         id="stop7604"
-         offset="0.0000000"
-         style="stop-color:#f6f6f6;stop-opacity:1.0000000;" />
-      <stop
-         id="stop7606"
-         offset="1.0000000"
-         style="stop-color:#e0e0e0;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7586">
-      <stop
-         id="stop7588"
-         offset="0.0000000"
-         style="stop-color:#525252;stop-opacity:1.0000000;" />
-      <stop
-         id="stop7590"
-         offset="1.0000000"
-         style="stop-color:#000000;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient12836">
-      <stop
-         style="stop-color:#515152;stop-opacity:1;"
-         offset="0"
-         id="stop12838" />
-      <stop
-         style="stop-color:#515152;stop-opacity:0;"
-         offset="1"
-         id="stop12840" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient12828">
-      <stop
-         style="stop-color:#cccccd;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop12830" />
-      <stop
-         id="stop12862"
-         offset="0.0000000"
-         style="stop-color:#adadae;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#8f8f90;stop-opacity:0.0000000;"
-         offset="1.0000000"
-         id="stop12832" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient12810">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop12812" />
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop12814" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient11625">
-      <stop
-         style="stop-color:#fce94f;stop-opacity:1;"
-         offset="0"
-         id="stop11627" />
-      <stop
-         style="stop-color:#fce94f;stop-opacity:0;"
-         offset="1"
-         id="stop11629" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11615">
-      <stop
-         style="stop-color:#636363;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop11617" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop11619" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11602">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop11604" />
-      <stop
-         style="stop-color:#c5c5c5;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop11606" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11594">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop11596" />
-      <stop
-         style="stop-color:#d1d1d1;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop11598" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11520">
-      <stop
-         style="stop-color:#fbfbfb;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop11522" />
-      <stop
-         style="stop-color:#dcdcdc;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop11524" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient11508">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop11510" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop11512" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient11494">
-      <stop
-         style="stop-color:#ef2929;stop-opacity:1;"
-         offset="0"
-         id="stop11496" />
-      <stop
-         style="stop-color:#ef2929;stop-opacity:0;"
-         offset="1"
-         id="stop11498" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient11415">
-      <stop
-         style="stop-color:#204a87;stop-opacity:0.0000000;"
-         offset="0.0000000"
-         id="stop11417" />
-      <stop
-         id="stop11423"
-         offset="0.50000000"
-         style="stop-color:#204a87;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#204a87;stop-opacity:0;"
-         offset="1"
-         id="stop11419" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient11399">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop11401" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop11403" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11415"
-       id="linearGradient11425"
-       gradientUnits="userSpaceOnUse"
-       x1="15.828360"
-       y1="3.7744560"
-       x2="43.615788"
-       y2="34.462429"
-       gradientTransform="translate(-60.28571,-0.285714)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11415"
-       id="linearGradient11427"
-       gradientUnits="userSpaceOnUse"
-       x1="9.6957054"
-       y1="9.3458843"
-       x2="35.679932"
-       y2="39.033859"
-       gradientTransform="translate(-60.57143,0.000000)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11415"
-       id="linearGradient11439"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-60.85714,0.428571)"
-       x1="13.267134"
-       y1="19.774456"
-       x2="26.758644"
-       y2="33.462429" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11399"
-       id="radialGradient11441"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.487395,0.000000,20.06483)"
-       cx="12.071428"
-       cy="39.142857"
-       fx="12.071428"
-       fy="39.142857"
-       r="8.5000000" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11494"
-       id="radialGradient11500"
-       cx="27.577173"
-       cy="15.048258"
-       fx="27.577173"
-       fy="15.048258"
-       r="3.8335034"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11494"
-       id="radialGradient11504"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)"
-       cx="27.577173"
-       cy="16.049133"
-       fx="27.577173"
-       fy="16.049133"
-       r="3.8335034" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11508"
-       id="radialGradient11514"
-       cx="30.203562"
-       cy="44.565483"
-       fx="30.203562"
-       fy="44.565483"
-       r="6.5659914"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,2.166583e-14,29.48178)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11520"
-       id="radialGradient11526"
-       cx="24.445690"
-       cy="35.878170"
-       fx="24.445690"
-       fy="35.878170"
-       r="20.530962"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.995058,-1.535926e-32,0.000000,1.855412,24.94925,-30.20430)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11508"
-       id="radialGradient11532"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,-5.348412e-14,29.48178)"
-       cx="30.203562"
-       cy="44.565483"
-       fx="30.203562"
-       fy="44.565483"
-       r="6.5659914" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11594"
-       id="linearGradient11600"
-       x1="20.092352"
-       y1="8.9471626"
-       x2="31.799011"
-       y2="38.947163"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.045319,0.000000,0.000000,0.957884,48.16627,1.415543)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11520"
-       id="linearGradient11608"
-       x1="24.445671"
-       y1="0.49847093"
-       x2="24.445671"
-       y2="39.447163"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.984324,0.000000,0.000000,0.957884,49.65734,1.415543)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11615"
-       id="radialGradient11621"
-       cx="25.000000"
-       cy="27.749998"
-       fx="25.000000"
-       fy="27.749998"
-       r="4.7500000"
-       gradientTransform="matrix(3.570338,3.171097e-15,-4.005596e-15,4.509900,-64.25843,-94.25499)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11631"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11635"
-       gradientUnits="userSpaceOnUse"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000"
-       gradientTransform="translate(2.000000,0.000000)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11639"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.000000,0.000000)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11643"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.000000,0.000000)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11647"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(8.000000,0.000000)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11655"
-       gradientUnits="userSpaceOnUse"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11657"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.000000,0.000000)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11659"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.000000,0.000000)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient11661"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.000000,0.000000)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12810"
-       id="linearGradient12816"
-       x1="65.623963"
-       y1="21.459777"
-       x2="87.528968"
-       y2="21.459777"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12810"
-       id="linearGradient12818"
-       gradientUnits="userSpaceOnUse"
-       x1="84.998962"
-       y1="25.209778"
-       x2="62.591469"
-       y2="12.022278" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12828"
-       id="radialGradient12834"
-       cx="88.593018"
-       cy="33.398670"
-       fx="88.593018"
-       fy="33.398670"
-       r="7.0056136"
-       gradientTransform="matrix(0.969219,0.227988,-0.194668,0.827570,9.443870,-15.99848)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12836"
-       id="linearGradient12842"
-       x1="88.750000"
-       y1="31.656250"
-       x2="92.062500"
-       y2="36.656250"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12810"
-       id="linearGradient12878"
-       gradientUnits="userSpaceOnUse"
-       x1="65.623963"
-       y1="21.459777"
-       x2="87.528968"
-       y2="21.459777" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12836"
-       id="linearGradient12880"
-       gradientUnits="userSpaceOnUse"
-       x1="88.750000"
-       y1="31.656250"
-       x2="92.062500"
-       y2="36.656250" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12828"
-       id="radialGradient12882"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.969219,0.227988,-0.194668,0.827570,9.443870,-15.99848)"
-       cx="88.593018"
-       cy="33.398670"
-       fx="88.593018"
-       fy="33.398670"
-       r="7.0056136" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient12810"
-       id="linearGradient12884"
-       gradientUnits="userSpaceOnUse"
-       x1="84.998962"
-       y1="25.209778"
-       x2="62.591469"
-       y2="12.022278" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11615"
-       id="radialGradient12894"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.570338,3.171097e-15,-4.005596e-15,4.509900,-64.25843,-94.25499)"
-       cx="25.000000"
-       cy="27.749998"
-       fx="25.000000"
-       fy="27.749998"
-       r="4.7500000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient12896"
-       gradientUnits="userSpaceOnUse"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000"
-       gradientTransform="translate(7.267442e-2,-0.181686)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient12898"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.072674,-0.181686)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient12900"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.072674,-0.181686)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient12902"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(6.000000,0.000000)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient12911"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(7.267442e-2,-0.181686)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient12913"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(2.072674,-0.181686)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient11625"
-       id="linearGradient12915"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(4.072674,-0.181686)"
-       x1="21.500000"
-       y1="30.000000"
-       x2="21.500000"
-       y2="27.375000" />
-    <linearGradient
-       y2="21.067410"
-       x2="24.445690"
-       y1="33.447811"
-       x1="31.597168"
-       gradientTransform="matrix(0.476329,0.000000,0.000000,0.627721,62.07560,9.156933)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7584"
-       xlink:href="#linearGradient11594"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.407878,2.776254e-16,-5.900875e-16,1.861050,14.96976,-20.55775)"
-       r="6.0270013"
-       fy="29.099535"
-       fx="24.399090"
-       cy="29.099535"
-       cx="24.399090"
-       id="radialGradient7592"
-       xlink:href="#linearGradient7586"
-       inkscape:collect="always" />
-    <linearGradient
-       y2="11.042997"
-       x2="22.585604"
-       y1="34.149513"
-       x1="22.585604"
-       gradientTransform="matrix(1.059222,0.000000,0.000000,0.808101,48.08657,4.001391)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7596"
-       xlink:href="#linearGradient7608"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientTransform="translate(49.32070,0.000000)"
-       gradientUnits="userSpaceOnUse"
-       y2="38.454056"
-       x2="28.284273"
-       y1="28.554562"
-       x1="25.279068"
-       id="linearGradient7642"
-       xlink:href="#linearGradient7636"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.777122,-8.126449e-2,6.891211e-2,2.223012,4.035118,-33.24798)"
-       r="4.4774761"
-       fy="29.609560"
-       fx="24.483574"
-       cy="29.609560"
-       cx="24.483574"
-       id="radialGradient7647"
-       xlink:href="#linearGradient7614"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.046729,-3.749427e-16,-2.853404e-16,1.557610,67.59375,3.275309)"
-       r="17.171415"
-       fy="5.7859797"
-       fx="25.075571"
-       cy="5.7859797"
-       cx="25.075571"
-       id="radialGradient8656"
-       xlink:href="#linearGradient8650"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,6.772795e-15,16.87306)"
-       r="15.644737"
-       fy="36.421127"
-       fx="24.837126"
-       cy="36.421127"
-       cx="24.837126"
-       id="radialGradient8668"
-       xlink:href="#linearGradient8662"
-       inkscape:collect="always" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2591"
-       id="radialGradient2597"
-       cx="22.291636"
-       cy="32.797512"
-       fx="22.291636"
-       fy="32.797512"
-       r="16.956199"
-       gradientTransform="matrix(-0.843022,1.871885e-16,2.265228e-16,1.020168,43.57646,1.205215)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="1280"
-     inkscape:showpageshadow="false"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer1"
-     inkscape:cy="25.461494"
-     inkscape:cx="15.433072"
-     inkscape:zoom="16"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     fill="#4e9a06"
-     stroke="#4e9a06" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Go Previous</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>go</rdf:li>
-            <rdf:li>previous</rdf:li>
-            <rdf:li>left</rdf:li>
-            <rdf:li>arrow</rdf:li>
-            <rdf:li>pointer</rdf:li>
-            <rdf:li>&lt;</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1"
-     id="layer1">
-    <path
-       transform="matrix(-1.271186,0.000000,0.000000,1.271186,56.19514,-15.27857)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.29946521;color:#000000;fill:url(#radialGradient8668);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="cccccccc"
-       id="path8643"
-       d="M 39.490316,15.496821 L 39.490316,32.491241 L 26.537753,32.491241 L 26.537753,40.973779 L 6.577917,23.973588 L 26.531563,6.7295901 L 26.531563,15.502125 L 39.490316,15.496821 z "
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient2597);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cccccc"
-       id="path8645"
-       d="M 25.988368,7.9779766 L 25.988368,16.034451 L 38.930538,16.034451 L 38.930538,24.918914 C 22.180538,18.668914 22.797001,30.213626 7.547,23.963626 L 25.988368,7.9779766 z "
-       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient8656);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 38.475551,16.541365 L 38.475551,31.463305 L 25.490184,31.463305 L 25.490184,38.764721 L 8.168419,23.96903 L 25.506145,9.0636299 L 25.506145,16.546262 L 38.475551,16.541365 z "
-       id="path8658"
-       sodipodi:nodetypes="cccccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/go-up.png has changed
--- a/libgui/src/icons/go-up.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   sodipodi:docname="go-up.svg"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg11300"
-   height="48px"
-   width="48px"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective23" />
-    <linearGradient
-       id="linearGradient2304">
-      <stop
-         id="stop2306"
-         offset="0"
-         style="stop-color:#73d216" />
-      <stop
-         id="stop2308"
-         offset="1.0000000"
-         style="stop-color:#4e9a06" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662"
-       inkscape:collect="always">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8650"
-       inkscape:collect="always">
-      <stop
-         id="stop8652"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop8654"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8650"
-       id="radialGradient1438"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-3.749427e-16,-2.046729,1.557610,-2.853404e-16,2.767009,66.93275)"
-       cx="24.53788"
-       cy="0.40010813"
-       fx="24.53788"
-       fy="0.40010813"
-       r="17.171415" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2304"
-       id="radialGradient1441"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.871885e-16,-0.843022,1.020168,2.265228e-16,0.606436,42.58614)"
-       cx="11.319205"
-       cy="22.454971"
-       fx="11.319205"
-       fy="22.454971"
-       r="16.956199" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient1444"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,1.614716e-15,16.87306)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="30"
-     inkscape:window-x="0"
-     inkscape:window-height="818"
-     inkscape:window-width="1280"
-     inkscape:showpageshadow="false"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     showgrid="false"
-     inkscape:current-layer="layer1"
-     inkscape:cy="25.620377"
-     inkscape:cx="9.6380363"
-     inkscape:zoom="13.059378"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="0.25490196"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     fill="#73d216"
-     stroke="#73d216" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Go Up</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>go</rdf:li>
-            <rdf:li>higher</rdf:li>
-            <rdf:li>up</rdf:li>
-            <rdf:li>arrow</rdf:li>
-            <rdf:li>pointer</rdf:li>
-            <rdf:li>&gt;</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     inkscape:label="Layer 1"
-     id="layer1">
-    <path
-       transform="matrix(1.214466,0.000000,0.000000,0.595458,-6.163846,16.31275)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.29946521;color:#000000;fill:url(#radialGradient1444);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="cccccccc"
-       id="path8643"
-       d="M 14.491792,38.500000 L 32.469477,38.500000 L 32.469477,25.547437 L 40.500000,25.547437 L 23.374809,5.4992135 L 6.5285585,25.489471 L 14.497096,25.555762 L 14.491792,38.500000 z "
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1441);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cccscc"
-       id="path8645"
-       d="M 7.5855237,25.03253 L 14.995821,25.03253 L 15.062422,31.594339 C 20.718034,20.593878 31.055517,22.749928 31.656768,15.966674 C 31.656768,15.966674 23.366938,6.4219692 23.366938,6.4219692 L 7.5855237,25.03253 z "
-       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient1438);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 15.602735,37.500000 L 31.502578,37.500000 L 31.502578,24.507050 L 38.311576,24.507050 L 23.361206,7.0700896 L 8.6546798,24.550470 L 15.475049,24.528373 L 15.602735,37.500000 z "
-       id="path8658"
-       sodipodi:nodetypes="cccccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_DocumentationDockWidget.png has changed
--- a/libgui/src/icons/graphic_logo_DocumentationDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,731 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546"
-       xlink:href="#aigrd2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548"
-       xlink:href="#aigrd3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3938">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3940" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3942" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3944" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3946" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3948">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3950" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3952" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3954" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3956" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3958">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3960" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3962" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3964" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3966" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3968">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3970" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3972" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3974" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3976" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3978">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3980" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3982" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3984" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3986" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3988">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3990" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3992" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3994" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3996" />
-    </filter>
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <rect
-       width="4.349854"
-       height="4.349854"
-       rx="0.76958966"
-       ry="0.76958966"
-       x="85.381561"
-       y="99.493881"
-       id="rect5876"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter3988)" />
-    <g
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
-       id="g2679">
-      <rect
-         width="34.875"
-         height="40.920494"
-         rx="1.1449448"
-         ry="1.1468204"
-         x="6.6035528"
-         y="3.6464462"
-         transform="matrix(1.003584,0,0,1.001943,-0.12722,-0.153534)"
-         id="rect15391"
-         style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3978)" />
-      <rect
-         width="32.775887"
-         height="38.946384"
-         rx="0.14851625"
-         ry="0.14875954"
-         x="7.6660538"
-         y="4.5839462"
-         transform="matrix(1.003584,0,0,1.001943,-0.12722,-0.153534)"
-         id="rect15660"
-         style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3968)" />
-      <g
-         transform="translate(0.646447,-0.03798933)"
-         id="g2270"
-         style="display:inline;filter:url(#filter3958)">
-        <g
-           transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)"
-           id="g1440"
-           style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4">
-          <radialGradient
-             cx="20.892099"
-             cy="114.5684"
-             r="5.256"
-             fx="20.892099"
-             fy="114.5684"
-             id="radialGradient1442"
-             gradientUnits="userSpaceOnUse">
-            <stop
-               id="stop1444"
-               style="stop-color:#f0f0f0;stop-opacity:1"
-               offset="0" />
-            <stop
-               id="stop1446"
-               style="stop-color:#474747;stop-opacity:1"
-               offset="1" />
-          </radialGradient>
-          <path
-             d="m 23.428,113.07 c 0,1.973 -1.6,3.572 -3.573,3.572 -1.974,0 -3.573,-1.6 -3.573,-3.572 0,-1.974 1.6,-3.573 3.573,-3.573 1.973,0 3.573,1.6 3.573,3.573 z"
-             id="path1448"
-             style="stroke:none" />
-          <radialGradient
-             cx="20.892099"
-             cy="64.567902"
-             r="5.257"
-             fx="20.892099"
-             fy="64.567902"
-             id="radialGradient1450"
-             gradientUnits="userSpaceOnUse">
-            <stop
-               id="stop1452"
-               style="stop-color:#f0f0f0;stop-opacity:1"
-               offset="0" />
-            <stop
-               id="stop1454"
-               style="stop-color:#474747;stop-opacity:1"
-               offset="1" />
-          </radialGradient>
-          <path
-             d="m 23.428,63.07 c 0,1.973 -1.6,3.573 -3.573,3.573 -1.974,0 -3.573,-1.6 -3.573,-3.573 0,-1.974 1.6,-3.573 3.573,-3.573 1.973,0 3.573,1.6 3.573,3.573 z"
-             id="path1456"
-             style="stroke:none" />
-        </g>
-        <path
-           d="m 9.9950109,29.952326 c 0,0.453204 -0.3675248,0.820499 -0.8207288,0.820499 -0.4534338,0 -0.8207289,-0.367524 -0.8207289,-0.820499 0,-0.453434 0.3675248,-0.820729 0.8207289,-0.820729 0.453204,0 0.8207288,0.367525 0.8207288,0.820729 z"
-           id="path15570"
-           style="fill:url(#radialGradient3546);fill-rule:nonzero;stroke:none" />
-        <path
-           d="m 9.9950109,18.467176 c 0,0.453204 -0.3675248,0.820729 -0.8207288,0.820729 -0.4534338,0 -0.8207289,-0.367525 -0.8207289,-0.820729 0,-0.453434 0.3675248,-0.820729 0.8207289,-0.820729 0.453204,0 0.8207288,0.367525 0.8207288,0.820729 z"
-           id="path15577"
-           style="fill:url(#radialGradient3548);fill-rule:nonzero;stroke:none" />
-      </g>
-      <g
-         transform="matrix(0.909091,0,0,1,2.363628,0)"
-         id="g2253"
-         style="filter:url(#filter3948)">
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="15.000002"
-           y="9"
-           id="rect15686"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="15.000002"
-           y="11"
-           id="rect15688"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="15.000002"
-           y="13"
-           id="rect15690"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="15.000002"
-           y="15"
-           id="rect15692"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="15.000002"
-           y="17"
-           id="rect15694"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="15.000002"
-           y="19"
-           id="rect15696"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="15.000002"
-           y="21"
-           id="rect15698"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="15.000002"
-           y="23"
-           id="rect15700"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="9.9000053"
-           height="1"
-           rx="0.068204239"
-           ry="0.065390877"
-           x="14.999992"
-           y="25"
-           id="rect15732"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="14.999992"
-           y="29"
-           id="rect15736"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="14.999992"
-           y="31"
-           id="rect15738"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="14.999992"
-           y="33"
-           id="rect15740"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="22.000004"
-           height="1"
-           rx="0.15156493"
-           ry="0.065390877"
-           x="14.999992"
-           y="35"
-           id="rect15742"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-        <rect
-           width="15.400014"
-           height="1"
-           rx="0.10609552"
-           ry="0.065390877"
-           x="14.999992"
-           y="37"
-           id="rect15744"
-           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-      </g>
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <path
-       d="m -20.25,5.875 c -1.059019,2.63e-5 -2.147637,0.1232356 -3.28125,0.34375 -1.132925,0.2204283 -2.380162,0.5375125 -3.75,1 a 0.13496364,0.13496364 0 0 0 -0.03125,0 0.13496364,0.13496364 0 0 0 -0.03125,0.03125 0.13496364,0.13496364 0 0 0 -0.03125,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 l 0,5.15625 a 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 c 1.142438,-0.719043 2.233352,-1.267138 3.28125,-1.625 1.048141,-0.368756 2.043116,-0.562479 2.9375,-0.5625 0.949218,2.1e-5 1.644925,0.210545 2.15625,0.625 0.508723,0.40209 0.781238,0.98304 0.78125,1.71875 -10e-6,0.480657 -0.144188,0.95141 -0.4375,1.4375 -0.282991,0.487016 -0.740265,1.030495 -1.375,1.59375 L -20.9375,16.75 c -1.201459,1.08049 -1.989243,1.991022 -2.375,2.71875 -0.383113,0.711446 -0.562505,1.519324 -0.5625,2.4375 l 0,0.8125 a 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 l 6.09375,0 a 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,-0.03125 0.13496364,0.13496364 0 0 0 0.03125,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 l 0,-0.75 c -1.1e-5,-0.468196 0.14837,-0.892849 0.375,-1.28125 0.222295,-0.391284 0.708073,-0.950359 1.46875,-1.625 l 1.0625,-0.9375 c 1.066588,-0.98231 1.830659,-1.884654 2.28125,-2.75 0.449269,-0.874046 0.687482,-1.87342 0.6875,-2.96875 -1.8e-5,-2.126265 -0.743769,-3.7340276 -2.21875,-4.84375 -1.475197,-1.1210252 -3.60624,-1.6874737 -6.375,-1.6875 z m -3.5625,19.15625 a 0.13496364,0.13496364 0 0 0 -0.03125,0.03125 0.13496364,0.13496364 0 0 0 -0.03125,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 l 0,5.84375 a 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 l 6.09375,0 a 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,-0.03125 0.13496364,0.13496364 0 0 0 0.03125,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 l 0,-5.84375 a 0.13496364,0.13496364 0 0 0 0,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 0.13496364,0.13496364 0 0 0 -0.03125,-0.03125 0.13496364,0.13496364 0 0 0 -0.03125,-0.03125 0.13496364,0.13496364 0 0 0 -0.03125,0 0.13496364,0.13496364 0 0 0 -0.03125,0 l -6.09375,0 a 0.13496364,0.13496364 0 0 0 -0.03125,0 0.13496364,0.13496364 0 0 0 -0.03125,0 z"
-       transform="matrix(0.68967077,0,0,0.67775017,97.54001,93.616121)"
-       id="path1554"
-       style="font-size:34.15322876px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#2b1100;fill-opacity:1;stroke:#ffffff;stroke-width:1.09947276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.78612713;filter:url(#filter3938);font-family:Bitstream Vera Sans" />
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_Figure.png has changed
--- a/libgui/src/icons/graphic_logo_Figure.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1226 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28909"
-   height="283.28833"
-   id="svg2872"
-   sodipodi:docname="graphic_logo_Figure.svg"
-   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
-   inkscape:export-filename="/home/lilge/Software/octave/dev-default/libgui/src/icons/graphic_logo_Figure.png"
-   inkscape:export-xdpi="86.752602"
-   inkscape:export-ydpi="86.752602">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="1024"
-     id="namedview218"
-     showgrid="false"
-     inkscape:zoom="2.04"
-     inkscape:cx="142.78284"
-     inkscape:cy="161.252"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2872"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0" />
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.9367132,-2.1046661,6.4603259,7.0205689,-2817.9548,-2144.284)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3556"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3554"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3552"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3550"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548-0"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546-5"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-8"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-6"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-4"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3417"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3415"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3413"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3411"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3409"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3405"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3403"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3401"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3399"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292)" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         id="stop5050-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         id="stop4544-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         id="stop15664-5"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-8"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-9"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-3"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-4"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-8"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-5"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         id="stop270-6"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-9"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         id="stop260-8"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-0"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-4"
-       xlink:href="#linearGradient4542-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         id="stop4442-2"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-4"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-9"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         id="stop4456-3"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-2"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         id="stop4469-9"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-9"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         id="stop2368-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-8"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         id="stop2848-1"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-1"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         id="stop2968-2"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-7"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         id="stop2976-3"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-3"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         id="stop2986"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2988"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         id="stop2996-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-9"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-4"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         id="stop3757-8"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-9"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-0"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       id="filter3683"
-       style="color-interpolation-filters:sRGB">
-      <feColorMatrix
-         values="0"
-         type="saturate"
-         id="feColorMatrix3685" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       id="filter3827"
-       style="color-interpolation-filters:sRGB">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835" />
-    </filter>
-    <radialGradient
-       cx="55"
-       cy="125"
-       r="14.375"
-       fx="55"
-       fy="125"
-       id="radialGradient1758"
-       xlink:href="#linearGradient12512"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       id="linearGradient9772"
-       xlink:href="#linearGradient9766"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="18.112709"
-       y1="31.36775"
-       x2="15.514889"
-       y2="6.1802502"
-       id="linearGradient3104"
-       xlink:href="#linearGradient3096"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="13.035696"
-       y1="32.567184"
-       x2="12.853771"
-       y2="46.689312"
-       id="linearGradient322"
-       xlink:href="#linearGradient319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
-    <linearGradient
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053"
-       id="linearGradient491"
-       xlink:href="#linearGradient3983"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         id="stop3984"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         offset="0" />
-      <stop
-         id="stop3985"
-         style="stop-color:#fffffe;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.706017"
-       cy="37.517986"
-       r="30.905205"
-       fx="20.706017"
-       fy="37.517986"
-       id="radialGradient238"
-       xlink:href="#linearGradient1789"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         id="stop1790"
-         style="stop-color:#202020;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1791"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319">
-      <stop
-         id="stop320"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop321"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         style="stop-color:#424242;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3100"
-         style="stop-color:#777777;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         id="stop9768"
-         style="stop-color:#6194cb;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9770"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient5027"
-       xlink:href="#linearGradient5048-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <linearGradient
-       id="linearGradient5048-8">
-      <stop
-         id="stop5050-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-2"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5029"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <linearGradient
-       id="linearGradient5060">
-      <stop
-         id="stop5062"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5064"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5031"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       id="filter3827-2"
-       style="color-interpolation-filters:sRGB">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829-1" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831-3" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833-2" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835-8" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       id="filter3827-6"
-       style="color-interpolation-filters:sRGB">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829-7" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831-1" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833-9" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835-3" />
-    </filter>
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3979"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <linearGradient
-       id="linearGradient2817">
-      <stop
-         id="stop2819"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2821"
-         style="stop-color:#ffffff;stop-opacity:0.48453608"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="143.31842"
-       cy="108.89388"
-       r="11"
-       fx="143.31842"
-       fy="108.89388"
-       id="radialGradient3938-5"
-       xlink:href="#linearGradient4391"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.09090829,-2.0909091,2.5430488,-0.11063222,-242.64984,363.89573)" />
-    <linearGradient
-       id="linearGradient4391">
-      <stop
-         offset="0"
-         style="stop-color:#b3cce5;stop-opacity:1"
-         id="stop4393" />
-      <stop
-         offset="1"
-         style="stop-color:#f6f7f5;stop-opacity:1"
-         id="stop4395" />
-    </linearGradient>
-    <linearGradient
-       xlink:href="#linearGradient2697"
-       id="linearGradient4387"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849" />
-    <linearGradient
-       id="linearGradient2697">
-      <stop
-         id="stop2699"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2701"
-         style="stop-color:#3d556f;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       xlink:href="#linearGradient319"
-       id="linearGradient4389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
-       x1="24.674307"
-       y1="44.50301"
-       x2="24.674307"
-       y2="98.890182" />
-  </defs>
-  <path
-     inkscape:connector-curvature="0"
-     style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none;stroke-width:8.45197201"
-     id="path5874"
-     d="M 49.676747,29.423848 C 5.7616507,77.147343 16.404628,166.08407 73.435833,228.06103 130.46703,290.03807 212.29311,301.58938 256.20826,253.86591 300.12344,206.14244 289.51072,117.20208 232.47947,55.225124 175.44826,-6.7520309 93.591927,-18.299707 49.676747,29.423848 Z M 89.49813,49.248202 c 34.50568,-37.497936 97.9499,-29.341191 141.71768,18.22214 43.76783,47.563478 51.2736,116.509678 16.76792,154.007608 -34.50565,37.49786 -97.96652,29.35954 -141.73439,-18.20394 C 62.481485,155.71054 54.992446,86.746332 89.49813,49.248202 Z" />
-  <rect
-     width="4.349854"
-     height="4.349854"
-     rx="0.76958966"
-     ry="0.76958966"
-     x="85.381561"
-     y="99.493881"
-     transform="matrix(8.4519724,0,0,8.4519724,-511.80557,-794.54775)"
-     id="rect5876"
-     style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter3827)" />
-  <rect
-     width="34.875"
-     height="40.920494"
-     rx="1.1449448"
-     ry="1.1468204"
-     x="6.6035528"
-     y="3.6464462"
-     transform="matrix(5.1226198,0,0,5.1142435,66.188968,-14.496546)"
-     id="rect15391"
-     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter3827)" />
-  <rect
-     width="32.775887"
-     height="38.946384"
-     rx="0.14851625"
-     ry="0.14875954"
-     x="7.6660538"
-     y="4.5839462"
-     transform="matrix(5.1226198,0,0,5.1142435,66.188968,-14.496546)"
-     id="rect15660"
-     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter3827)" />
-  <text
-     x="148.18649"
-     y="64.117371"
-     id="text3260"
-     xml:space="preserve"
-     style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:24px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter3827)"><tspan
-       x="148.18649"
-       y="64.117371"
-       id="tspan3262"
-       style="font-weight:bold;font-size:32px;-inkscape-font-specification:'Sans Bold'" /></text>
-  <rect
-     style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:6.28858852;stroke-miterlimit:4;stroke-dasharray:none"
-     id="rect5878"
-     y="94.806831"
-     x="3.1442943"
-     ry="15.320505"
-     rx="15.320505"
-     height="86.594139"
-     width="86.594139" />
-  <rect
-     style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:6.28858852;stroke-miterlimit:4;stroke-dasharray:none"
-     id="rect5880"
-     y="208.16928"
-     x="226.93687"
-     ry="9.2558413"
-     rx="9.2558413"
-     height="52.31562"
-     width="52.31562" />
-  <path
-     style="fill:none;stroke:#43b7d6;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294118"
-     d="m 119.10397,28.486379 c 143.65725,-0.51811 143.65725,-0.51811 143.65725,-0.51811"
-     id="path1187"
-     inkscape:connector-curvature="0" />
-  <use
-     x="0"
-     y="0"
-     xlink:href="#path1187"
-     id="use1189"
-     transform="translate(0,42)"
-     width="100%"
-     height="100%" />
-  <use
-     x="0"
-     y="0"
-     xlink:href="#use1189"
-     id="use1191"
-     transform="translate(0,40)"
-     width="100%"
-     height="100%" />
-  <use
-     x="0"
-     y="0"
-     xlink:href="#use1191"
-     id="use1193"
-     transform="translate(0,38)"
-     width="100%"
-     height="100%" />
-  <use
-     x="0"
-     y="0"
-     xlink:href="#use1193"
-     id="use1195"
-     transform="translate(0,42)"
-     width="100%"
-     height="100%" />
-  <path
-     style="fill:none;stroke:#42b6d6;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294118"
-     d="m 119.10397,28.486379 c 0,160.000001 0,162.453661 0,162.453661"
-     id="path1199"
-     inkscape:connector-curvature="0" />
-  <use
-     x="0"
-     y="0"
-     xlink:href="#path1199"
-     id="use1201"
-     transform="translate(48)"
-     width="100%"
-     height="100%" />
-  <use
-     x="0"
-     y="0"
-     xlink:href="#use1201"
-     id="use1203"
-     transform="translate(48)"
-     width="100%"
-     height="100%" />
-  <use
-     x="0"
-     y="0"
-     xlink:href="#use1203"
-     id="use1205"
-     transform="translate(48)"
-     width="100%"
-     height="100%" />
-  <path
-     inkscape:connector-curvature="0"
-     d="m 253.70314,122.99143 c 0,0 -37.8439,33.69118 -61.56862,38.39216 -22.07101,4.37329 -66.56863,-11.17648 -66.56863,-11.17648"
-     id="path4307"
-     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#0690c0;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
-     sodipodi:nodetypes="cac" />
-  <path
-     inkscape:connector-curvature="0"
-     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff7f2a;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
-     id="path1432"
-     d="m 253.68355,43.834571 c 0,0 -26.93417,36.533276 -44.67349,50.217805 -12.18881,9.402734 -26.48873,16.290374 -41.16667,20.931134 -13.57364,4.29161 -20.09338,5.25588 -42.27749,6.04713"
-     sodipodi:nodetypes="caac" />
-</svg>
Binary file libgui/src/icons/graphic_logo_FileEditor.png has changed
--- a/libgui/src/icons/graphic_logo_FileEditor.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1060 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546"
-       xlink:href="#aigrd2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548"
-       xlink:href="#aigrd3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3556"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3554"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3552"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3550"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548-0"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546-5"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-8"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-6"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-4"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3417"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3415"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3413"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3411"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3409"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3405"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3403"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3401"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3399"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         id="stop5050-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         id="stop4544-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         id="stop15664-5"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-8"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-9"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-3"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-4"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-8"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-5"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         id="stop270-6"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-9"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         id="stop260-8"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-0"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-4"
-       xlink:href="#linearGradient4542-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         id="stop4442-2"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-4"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-9"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         id="stop4456-3"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-2"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         id="stop4469-9"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-9"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         id="stop2368-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-8"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         id="stop2848-1"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-1"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         id="stop2968-2"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-7"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         id="stop2976-3"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-3"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         id="stop2986"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2988"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         id="stop2996-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-9"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-4"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         id="stop3757-8"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-9"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-0"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3675"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3677"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3679"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3681"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3683">
-      <feColorMatrix
-         values="0"
-         type="saturate"
-         id="feColorMatrix3685" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835" />
-    </filter>
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <g
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
-       id="g2679">
-      <g
-         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
-         id="g3025-4">
-        <g
-           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
-           id="layer1"
-           style="display:inline">
-          <path
-             d="m 11.505723,5.4942766 0,37.9065924"
-             id="path15672"
-             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
-        </g>
-        <g
-           id="g3786"
-           style="filter:url(#filter3827)">
-          <rect
-             width="4.349854"
-             height="4.349854"
-             rx="0.76958966"
-             ry="0.76958966"
-             x="85.381561"
-             y="99.493881"
-             transform="translate(47.719063,1.6625723)"
-             id="rect5876"
-             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-          <rect
-             width="34.875"
-             height="40.920494"
-             rx="1.1449448"
-             ry="1.1468204"
-             x="6.6035528"
-             y="3.6464462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15391"
-             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="32.775887"
-             height="38.946384"
-             rx="0.14851625"
-             ry="0.14875954"
-             x="7.6660538"
-             y="4.5839462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15660"
-             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <g
-             transform="matrix(0.54901938,0,0,0.60392127,117.6091,94.047504)"
-             id="g2253">
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="9"
-               id="rect15686"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="11"
-               id="rect15688"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="13"
-               id="rect15690"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="15"
-               id="rect15692"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="17"
-               id="rect15694"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="19"
-               id="rect15696"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="21"
-               id="rect15698"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="23"
-               id="rect15700"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="9.9000053"
-               height="1"
-               rx="0.068204239"
-               ry="0.065390877"
-               x="14.999992"
-               y="25"
-               id="rect15732"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="29"
-               id="rect15736"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="31"
-               id="rect15738"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="33"
-               id="rect15740"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="35"
-               id="rect15742"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="15.400014"
-               height="1"
-               rx="0.10609552"
-               ry="0.065390877"
-               x="14.999992"
-               y="37"
-               id="rect15744"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          </g>
-          <g
-             transform="translate(2.5089168,-0.50178336)"
-             id="g3499">
-            <g
-               transform="matrix(0.49605972,-0.13291888,0.13291888,0.49605972,123.52135,84.743061)"
-               id="g1574"
-               style="filter:url(#filter3683)">
-              <path
-                 d="m 17.34116,32.5 5.625,-5.625 20.093749,-9.75 c 3.25,-1.25 5.1875,3.375 2.3125,5 L 25.34116,31.5 l -8,1 z"
-                 transform="translate(-29.75546,19)"
-                 id="path2960"
-                 style="color:#000000;fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:0.93443578;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 38.330708,20 c 0,0 1.4375,0.09375 2,1.34375 0.579493,1.287761 0,2.65625 0,2.65625 l 5.03125,-2.46875 c 0,0 1.452032,-0.881367 0.65625,-2.84375 -0.784912,-1.935577 -2.6875,-1.15625 -2.6875,-1.15625 l -5,2.46875 z"
-                 transform="translate(-29.75546,19)"
-                 id="path2964"
-                 style="color:#000000;fill:url(#linearGradient3675);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 38.330708,20 c 0,0 1.4375,0.09375 2,1.34375 0.579493,1.287761 0,2.65625 0,2.65625 l 2,-1 c 0,0 0.827032,-1.318867 0.21875,-2.6875 C 41.924458,18.90625 40.330708,19 40.330708,19 l -2,1 z"
-                 transform="translate(-29.75546,19)"
-                 id="path2962"
-                 style="color:#000000;fill:url(#linearGradient3677);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 18.768208,31.78125 4.5,-4.5 c 1.5,0.8125 2.28125,2.15625 1.875,3.71875 l -6.375,0.78125 z"
-                 transform="translate(-29.75546,19)"
-                 id="path2982"
-                 style="color:#000000;fill:url(#radialGradient3679);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 20.111958,30.375 -1.625,1.59375 2.34375,-0.3125 c 0.21875,-0.71875 -0.1875,-1.0625 -0.71875,-1.28125 z"
-                 transform="translate(-29.75546,19)"
-                 id="path2992"
-                 style="color:#000000;fill:url(#linearGradient3681);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 23.268208,27.25 1.5625,1.25 15.38734,-7.31867 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 z"
-                 transform="translate(-29.75546,19)"
-                 id="path3002"
-                 style="color:#000000;fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 25.143208,31.0625 0.1875,-0.75 15.23109,-7.1296 c 0,0 -0.11016,0.613627 -0.215879,0.74935 L 25.143208,31.0625 z"
-                 transform="translate(-29.75546,19)"
-                 id="path3004"
-                 style="color:#000000;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-            </g>
-          </g>
-        </g>
-      </g>
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_FilesDockWidget.png has changed
--- a/libgui/src/icons/graphic_logo_FilesDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1308 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3556"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3554"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3552"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3550"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548-0"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546-5"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-8"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-6"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-4"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3417"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3415"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3413"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3411"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3409"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3405"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3403"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3401"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3399"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         id="stop5050-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         id="stop4544-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         id="stop15664-5"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-8"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-9"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-3"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-4"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-8"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-5"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         id="stop270-6"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-9"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         id="stop260-8"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-0"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-4"
-       xlink:href="#linearGradient4542-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         id="stop4442-2"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-4"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-9"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         id="stop4456-3"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-2"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         id="stop4469-9"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-9"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         id="stop2368-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-8"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         id="stop2848-1"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-1"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         id="stop2968-2"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-7"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         id="stop2976-3"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-3"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         id="stop2986"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2988"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         id="stop2996-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-9"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-4"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         id="stop3757-8"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-9"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-0"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3683">
-      <feColorMatrix
-         values="0"
-         type="saturate"
-         id="feColorMatrix3685" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835" />
-    </filter>
-    <radialGradient
-       cx="55"
-       cy="125"
-       r="14.375"
-       fx="55"
-       fy="125"
-       id="radialGradient1758"
-       xlink:href="#linearGradient12512"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       id="linearGradient9772"
-       xlink:href="#linearGradient9766"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="18.112709"
-       y1="31.36775"
-       x2="15.514889"
-       y2="6.1802502"
-       id="linearGradient3104"
-       xlink:href="#linearGradient3096"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="13.035696"
-       y1="32.567184"
-       x2="12.853771"
-       y2="46.689312"
-       id="linearGradient322"
-       xlink:href="#linearGradient319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
-    <linearGradient
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053"
-       id="linearGradient491"
-       xlink:href="#linearGradient3983"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         id="stop3984"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         offset="0" />
-      <stop
-         id="stop3985"
-         style="stop-color:#fffffe;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.706017"
-       cy="37.517986"
-       r="30.905205"
-       fx="20.706017"
-       fy="37.517986"
-       id="radialGradient238"
-       xlink:href="#linearGradient1789"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         id="stop1790"
-         style="stop-color:#202020;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1791"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319">
-      <stop
-         id="stop320"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop321"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         style="stop-color:#424242;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3100"
-         style="stop-color:#777777;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         id="stop9768"
-         style="stop-color:#6194cb;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9770"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient5027"
-       xlink:href="#linearGradient5048-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <linearGradient
-       id="linearGradient5048-8">
-      <stop
-         id="stop5050-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-2"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5029"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <linearGradient
-       id="linearGradient5060">
-      <stop
-         id="stop5062"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5064"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5031"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-    <radialGradient
-       cx="24.35099"
-       cy="41.591846"
-       r="19.136078"
-       fx="24.35099"
-       fy="41.591846"
-       id="radialGradient9812"
-       xlink:href="#linearGradient9806"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.242494,0,31.50606)" />
-    <linearGradient
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       id="linearGradient9772-7"
-       xlink:href="#linearGradient9766-8"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="18.112709"
-       y1="31.36775"
-       x2="15.514889"
-       y2="6.1802502"
-       id="linearGradient3104-8"
-       xlink:href="#linearGradient3096-9"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="13.035696"
-       y1="32.567184"
-       x2="12.853771"
-       y2="46.689312"
-       id="linearGradient322-9"
-       xlink:href="#linearGradient319-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
-    <linearGradient
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053"
-       id="linearGradient491-8"
-       xlink:href="#linearGradient3983-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
-    <linearGradient
-       id="linearGradient3983-3">
-      <stop
-         id="stop3984-9"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         offset="0" />
-      <stop
-         id="stop3985-4"
-         style="stop-color:#fffffe;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.706017"
-       cy="37.517986"
-       r="30.905205"
-       fx="20.706017"
-       fy="37.517986"
-       id="radialGradient238-0"
-       xlink:href="#linearGradient1789-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
-    <linearGradient
-       id="linearGradient1789-9">
-      <stop
-         id="stop1790-3"
-         style="stop-color:#202020;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1791-2"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319-7">
-      <stop
-         id="stop320-2"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop321-9"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096-9">
-      <stop
-         id="stop3098-5"
-         style="stop-color:#424242;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3100-1"
-         style="stop-color:#777777;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766-8">
-      <stop
-         id="stop9768-8"
-         style="stop-color:#6194cb;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9770-2"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9806">
-      <stop
-         id="stop9808"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9810"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient6715"
-       xlink:href="#linearGradient5048-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <linearGradient
-       id="linearGradient5048-5">
-      <stop
-         id="stop5050-0"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-9"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-6"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient6717"
-       xlink:href="#linearGradient5060-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <linearGradient
-       id="linearGradient5060-9">
-      <stop
-         id="stop5062-1"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5064-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient6719"
-       xlink:href="#linearGradient5060-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <g
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
-       id="g2679">
-      <g
-         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
-         id="g3025-4">
-        <g
-           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
-           id="layer1"
-           style="display:inline">
-          <path
-             d="m 11.505723,5.4942766 0,37.9065924"
-             id="path15672"
-             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
-        </g>
-        <g
-           id="g3786"
-           style="filter:url(#filter3827)">
-          <rect
-             width="4.349854"
-             height="4.349854"
-             rx="0.76958966"
-             ry="0.76958966"
-             x="85.381561"
-             y="99.493881"
-             transform="translate(47.719063,1.6625723)"
-             id="rect5876"
-             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-          <rect
-             width="34.875"
-             height="40.920494"
-             rx="1.1449448"
-             ry="1.1468204"
-             x="6.6035528"
-             y="3.6464462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15391"
-             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="32.775887"
-             height="38.946384"
-             rx="0.14851625"
-             ry="0.14875954"
-             x="7.6660538"
-             y="4.5839462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15660"
-             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <g
-             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
-             id="g4142">
-            <g
-               id="layer1-4" />
-            <g
-               id="layer2" />
-          </g>
-          <g
-             transform="matrix(0.45094246,0,0,0.45094246,120.23042,100.66767)"
-             id="g6084">
-            <g
-               id="layer1-3">
-              <g
-                 transform="matrix(0.02262383,0,0,0.02086758,43.38343,36.36962)"
-                 id="g6707"
-                 style="display:inline">
-                <rect
-                   width="1339.6335"
-                   height="478.35718"
-                   x="-1559.2523"
-                   y="-150.69685"
-                   id="rect6709"
-                   style="opacity:0.40206185;color:#000000;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-                <path
-                   d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
-                   id="path6711"
-                   style="opacity:0.40206185;color:#000000;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-                <path
-                   d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
-                   id="path6713"
-                   style="opacity:0.40206185;color:#000000;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-              </g>
-              <path
-                 d="m 4.5217805,38.687417 c 0.021796,0.416304 0.4599049,0.832609 0.8762095,0.832609 l 31.327021,0 c 0.416302,0 0.810812,-0.416305 0.789016,-0.832609 L 36.577584,11.460682 c -0.0218,-0.416303 -0.459897,-0.832616 -0.876201,-0.832616 l -13.270873,0 c -0.485057,0 -1.234473,-0.315589 -1.401644,-1.1066322 L 20.417475,6.6283628 C 20.262006,5.8926895 19.535261,5.5904766 19.118957,5.5904766 l -14.7788595,0 c -0.4163128,0 -0.8108208,0.4163041 -0.7890249,0.8326083 L 4.5217805,38.687417 z"
-                 id="path216"
-                 style="fill:url(#radialGradient238-0);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3104-8);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-              <path
-                 d="m 5.2265927,22.5625 30.2655803,0"
-                 id="path9788"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.0421736,18.5625 30.4469304,0"
-                 id="path9784"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 4.9806965,12.5625 30.5073605,0"
-                 id="path9778"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.3861577,32.5625 30.1087233,0"
-                 id="path9798"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.5091398,34.5625 29.9877532,0"
-                 id="path9800"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.0421736,16.5625 30.4469304,0"
-                 id="path9782"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.0114345,14.5625 30.4771455,0"
-                 id="path9780"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 4.9220969,10.5625 15.2808151,0"
-                 id="path9776"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 4.8737534,8.5624999 14.7837336,0"
-                 id="path9774"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.3246666,28.5625 30.1692094,0"
-                 id="path9794"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.2880638,26.5625 30.2051202,0"
-                 id="path9792"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.2265927,24.5625 30.2655803,0"
-                 id="path9790"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.1958537,20.5625 30.2957953,0"
-                 id="path9786"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.3246666,30.5625 30.1692094,0"
-                 id="path9796"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 5.5091398,36.5625 29.9877532,0"
-                 id="path9802"
-                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
-              <path
-                 d="m 6.068343,38.864023 c 0.016343,0.312228 -0.1809113,0.520379 -0.4985848,0.416303 l 0,0 C 5.2520766,39.176251 5.033027,38.968099 5.0166756,38.65587 L 4.068956,6.5913839 C 4.0526131,6.2791558 4.2341418,6.0906134 4.5463699,6.0906134 L 18.96842,6.0429196 c 0.312228,0 0.931943,0.3004727 1.132936,1.3221818 l 0.573489,2.8155346 C 20.247791,9.715379 20.255652,9.7010175 20.037287,9.0239299 L 19.631192,7.7647478 C 19.412142,7.0371009 18.932991,6.9328477 18.620763,6.9328477 l -12.8877741,0 c -0.3122276,0 -0.5094814,0.2081522 -0.4931306,0.5203887 L 6.1778636,38.968099 6.068343,38.864023 z"
-                 id="path219"
-                 style="opacity:0.45142858;color:#000000;fill:url(#linearGradient491-8);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21380496;marker:none;visibility:visible;display:block;overflow:visible" />
-              <g
-                 transform="matrix(1.040764,0,0.05449252,1.040764,-8.670199,2.670594)"
-                 id="g220"
-                 style="fill:#ffffff;fill-opacity:0.75706213;fill-rule:nonzero;stroke:none">
-                <path
-                   d="m 42.417183,8.5151772 c 0.0051,-0.097113 -0.128161,-0.2469882 -0.235117,-0.2470056 l -13.031401,-0.00212 c 0,0 0.911714,0.5879545 2.201812,0.5962436 l 11.053497,0.07102 c 0.01109,-0.2117278 0.0027,-0.2560322 0.01121,-0.4181395 z"
-                   id="path221"
-                   style="fill:#ffffff;fill-opacity:0.50847461" />
-              </g>
-              <path
-                 d="m 39.783532,39.51062 c 1.143894,-0.04406 1.963076,-1.096299 2.047035,-2.321005 0.791787,-11.548687 1.65936,-21.231949 1.65936,-21.231949 0.07215,-0.247484 -0.167911,-0.494967 -0.48014,-0.494967 l -34.3711566,0 c 0,0 -1.8503191,21.866892 -1.8503191,21.866892 -0.1145551,0.982066 -0.4660075,1.804718 -1.5498358,2.183713 l 34.5450565,-0.0027 z"
-                 id="path233"
-                 style="color:#000000;fill:url(#linearGradient9772-7);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
-              <path
-                 d="m 9.6202444,16.463921 32.7910986,0.06481 -1.574046,20.001979 c -0.08432,1.071511 -0.450678,1.428215 -1.872656,1.428215 -1.871502,0 -28.677968,-0.03241 -31.394742,-0.03241 0.2335983,-0.320811 0.3337557,-0.988623 0.3350963,-1.004612 L 9.6202444,16.463921 z"
-                 id="path304"
-                 style="opacity:0.46590911;fill:none;stroke:url(#linearGradient322-9);stroke-width:0.9999997px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
-              <path
-                 d="M 9.6202481,16.223182 8.4536014,31.866453 c 0,0 8.2961546,-4.148078 18.6663476,-4.148078 10.370193,0 15.55529,-11.495193 15.55529,-11.495193 l -33.0549909,0 z"
-                 id="path323"
-                 style="fill:#ffffff;fill-opacity:0.0892857;fill-rule:evenodd;stroke:none" />
-            </g>
-            <g
-               id="layer2-2" />
-          </g>
-        </g>
-      </g>
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_HistoryDockWidget.png has changed
--- a/libgui/src/icons/graphic_logo_HistoryDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1328 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3556"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3554"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3552"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3550"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548-0"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546-5"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-8"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-6"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-4"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3417"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3415"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3413"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3411"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3409"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3405"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3403"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3401"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3399"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         id="stop5050-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         id="stop4544-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         id="stop15664-5"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-8"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-9"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-3"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-4"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-8"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-5"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         id="stop270-6"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-9"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         id="stop260-8"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-0"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-4"
-       xlink:href="#linearGradient4542-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         id="stop4442-2"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-4"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-9"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         id="stop4456-3"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-2"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         id="stop4469-9"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-9"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         id="stop2368-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-8"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         id="stop2848-1"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-1"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         id="stop2968-2"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-7"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         id="stop2976-3"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-3"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         id="stop2986"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2988"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         id="stop2996-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-9"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-4"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         id="stop3757-8"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-9"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-0"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3683">
-      <feColorMatrix
-         values="0"
-         type="saturate"
-         id="feColorMatrix3685" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835" />
-    </filter>
-    <radialGradient
-       cx="55"
-       cy="125"
-       r="14.375"
-       fx="55"
-       fy="125"
-       id="radialGradient1758"
-       xlink:href="#linearGradient12512"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         id="stop3984"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         offset="0" />
-      <stop
-         id="stop3985"
-         style="stop-color:#fffffe;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         id="stop1790"
-         style="stop-color:#202020;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1791"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         style="stop-color:#424242;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3100"
-         style="stop-color:#777777;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         id="stop9768"
-         style="stop-color:#6194cb;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9770"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048-8">
-      <stop
-         id="stop5050-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-2"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="8.7468252"
-       cy="6.8283234"
-       r="29.889715"
-       fx="8.7468252"
-       fy="6.8283234"
-       id="radialGradient5212"
-       xlink:href="#linearGradient37935"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="19.667364"
-       y1="4.2570662"
-       x2="20.329933"
-       y2="5.2845874"
-       id="linearGradient5210"
-       xlink:href="#linearGradient5204"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="23.375"
-       cy="10.972863"
-       r="3.3478093"
-       fx="23.375"
-       fy="10.972863"
-       id="radialGradient5202"
-       xlink:href="#linearGradient5196"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.63042,0,0,3.742066,-61.48607,-29.18618)" />
-    <linearGradient
-       x1="6.342216"
-       y1="7.7893324"
-       x2="22.218424"
-       y2="25.884274"
-       id="linearGradient4313"
-       xlink:href="#linearGradient42174"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="11.901996"
-       cy="10.045444"
-       r="29.292715"
-       fx="11.901996"
-       fy="10.045444"
-       id="radialGradient4311"
-       xlink:href="#linearGradient2145"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="11.3292"
-       cy="10.58397"
-       r="15.532059"
-       fx="11.3292"
-       fy="10.58397"
-       id="radialGradient4309"
-       xlink:href="#linearGradient10653"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="8.9156475"
-       y1="37.197018"
-       x2="9.8855038"
-       y2="52.090679"
-       id="linearGradient4307"
-       xlink:href="#linearGradient2152"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(8.205187,0,0,2.5470234,-86.295197,-129.20334)" />
-    <radialGradient
-       cx="31.112698"
-       cy="19.008621"
-       r="8.6620579"
-       fx="31.112698"
-       fy="19.008621"
-       id="radialGradient3822"
-       xlink:href="#linearGradient3816"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient3816">
-      <stop
-         id="stop3818"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3820"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2152">
-      <stop
-         id="stop2154"
-         style="stop-color:#9aa29a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2156"
-         style="stop-color:#b5beb5;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient37935">
-      <stop
-         id="stop37937"
-         style="stop-color:#9497b3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop37939"
-         style="stop-color:#4c4059;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2145">
-      <stop
-         id="stop2147"
-         style="stop-color:#fffffd;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2149"
-         style="stop-color:#cbcbc9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient42174">
-      <stop
-         id="stop42176"
-         style="stop-color:#a0a0a0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop42178"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient10653">
-      <stop
-         id="stop10655"
-         style="stop-color:#f3f4ff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop10657"
-         style="stop-color:#9193af;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="55"
-       cy="125"
-       r="14.375"
-       fx="55"
-       fy="125"
-       id="radialGradient278"
-       xlink:href="#linearGradient12512-2"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512-2">
-      <stop
-         id="stop12513-8"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517-1"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514-2"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5196">
-      <stop
-         id="stop5198"
-         style="stop-color:#c4a000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5200"
-         style="stop-color:#c4a000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5204">
-      <stop
-         id="stop5206"
-         style="stop-color:#c4a000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5208"
-         style="stop-color:#c4a000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="8.9156475"
-       y1="37.197018"
-       x2="9.8855038"
-       y2="52.090679"
-       id="linearGradient5285"
-       xlink:href="#linearGradient2152"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(8.205187,0,0,2.5470234,-86.295197,-129.20334)" />
-    <radialGradient
-       cx="8.7468252"
-       cy="6.8283234"
-       r="29.889715"
-       fx="8.7468252"
-       fy="6.8283234"
-       id="radialGradient5287"
-       xlink:href="#linearGradient37935"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="11.901996"
-       cy="10.045444"
-       r="29.292715"
-       fx="11.901996"
-       fy="10.045444"
-       id="radialGradient5289"
-       xlink:href="#linearGradient2145"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="6.342216"
-       y1="7.7893324"
-       x2="22.218424"
-       y2="25.884274"
-       id="linearGradient5291"
-       xlink:href="#linearGradient42174"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <g
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
-       id="g2679">
-      <g
-         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
-         id="g3025-4">
-        <g
-           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
-           id="layer1"
-           style="display:inline">
-          <path
-             d="m 11.505723,5.4942766 0,37.9065924"
-             id="path15672"
-             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
-        </g>
-        <g
-           id="g3786"
-           style="filter:url(#filter3827)">
-          <rect
-             width="4.349854"
-             height="4.349854"
-             rx="0.76958966"
-             ry="0.76958966"
-             x="85.381561"
-             y="99.493881"
-             transform="translate(47.719063,1.6625723)"
-             id="rect5876"
-             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-          <rect
-             width="34.875"
-             height="40.920494"
-             rx="1.1449448"
-             ry="1.1468204"
-             x="6.6035528"
-             y="3.6464462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15391"
-             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="32.775887"
-             height="38.946384"
-             rx="0.14851625"
-             ry="0.14875954"
-             x="7.6660538"
-             y="4.5839462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15660"
-             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <g
-             transform="matrix(0.54901938,0,0,0.60392127,117.6091,94.047504)"
-             id="g2253">
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="9"
-               id="rect15686"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="11"
-               id="rect15688"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="13"
-               id="rect15690"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="15"
-               id="rect15692"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="17"
-               id="rect15694"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="19"
-               id="rect15696"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="21"
-               id="rect15698"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="23"
-               id="rect15700"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="9.9000053"
-               height="1"
-               rx="0.068204239"
-               ry="0.065390877"
-               x="14.999992"
-               y="25"
-               id="rect15732"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="29"
-               id="rect15736"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="31"
-               id="rect15738"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="33"
-               id="rect15740"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="35"
-               id="rect15742"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="15.400014"
-               height="1"
-               rx="0.10609552"
-               ry="0.065390877"
-               x="14.999992"
-               y="37"
-               id="rect15744"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          </g>
-          <g
-             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
-             id="g4142">
-            <g
-               id="layer1-4">
-              <g
-                 transform="translate(-12.542961,39.482886)"
-                 id="layer1-9">
-                <g
-                   transform="translate(460.98964,-11.238972)"
-                   id="g5272">
-                  <path
-                     d="M 46.284604,-74.04757 8.5639439,-30.201337 11.870132,-26.935961 46.284604,-74.04757 z"
-                     id="path14341"
-                     style="color:#000000;fill:url(#linearGradient5285);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
-                  <path
-                     d="m 45.968318,-74.283772 -33.638263,46.645891 4.805498,4.242804 28.832765,-50.888695 z"
-                     id="path18921"
-                     style="fill:#fefefe;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-                  <path
-                     d="m 31.160714,16.910715 a 14.910714,14.910714 0 1 1 -29.8214281,0 14.910714,14.910714 0 1 1 29.8214281,0 z"
-                     transform="matrix(3.7601028,0,0,3.7601028,-1.0424342,-82.080729)"
-                     id="path27786"
-                     style="fill:url(#radialGradient5287);fill-opacity:1;fill-rule:evenodd;stroke:#605773;stroke-width:0.69855404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
-                  <path
-                     d="m 31.160714,16.910715 a 14.910714,14.910714 0 1 1 -29.8214281,0 14.910714,14.910714 0 1 1 29.8214281,0 z"
-                     transform="matrix(3.0569765,0,0,3.0569765,10.134792,-70.43903)"
-                     id="path35549"
-                     style="fill:url(#radialGradient5289);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5291);stroke-width:0.71139598;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
-                  <path
-                     d="m 16.40625,17.28125 a 1.21875,1.21875 0 1 1 -2.4375,0 1.21875,1.21875 0 1 1 2.4375,0 z"
-                     transform="matrix(5.4457872,0,0,5.4457872,-21.739478,-112.24027)"
-                     id="path34778"
-                     style="fill:#f3f3f3;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.48232403;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
-                  <path
-                     d="M 55.711654,-23.316012 32.01702,-43.219941"
-                     id="path35559"
-                     style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-                  <path
-                     d="M 48.441131,0.47733081 56.216076,-11.324866"
-                     id="path35561"
-                     style="fill:none;stroke:#000000;stroke-width:5.25326824;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-                  <path
-                     d="m 17.324117,7.6932044 a 0.61871845,0.61871845 0 1 1 -1.237437,0 0.61871845,0.61871845 0 1 1 1.237437,0 z"
-                     transform="matrix(7.2219118,0,0,7.2219118,-61.114051,-110.32958)"
-                     id="path35563"
-                     style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-                  <path
-                     d="m 17.324117,7.6932044 a 0.61871845,0.61871845 0 1 1 -1.237437,0 0.61871845,0.61871845 0 1 1 1.237437,0 z"
-                     transform="matrix(7.2219118,0,0,7.2219118,-61.114051,-38.836252)"
-                     id="path35565"
-                     style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-                  <path
-                     d="m 17.324117,7.6932044 a 0.61871845,0.61871845 0 1 1 -1.237437,0 0.61871845,0.61871845 0 1 1 1.237437,0 z"
-                     transform="matrix(7.2219118,0,0,7.2219118,-96.860727,-74.582981)"
-                     id="path35567"
-                     style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-                  <path
-                     d="m 17.324117,7.6932044 a 0.61871845,0.61871845 0 1 1 -1.237437,0 0.61871845,0.61871845 0 1 1 1.237437,0 z"
-                     transform="matrix(7.2219118,0,0,7.2219118,-25.367448,-74.582981)"
-                     id="path35569"
-                     style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-                </g>
-              </g>
-            </g>
-            <g
-               id="layer2" />
-          </g>
-        </g>
-      </g>
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_NewsDockWidget.png has changed
--- a/libgui/src/icons/graphic_logo_NewsDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1156 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3556"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3554"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3552"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3550"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548-0"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546-5"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-8"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-6"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-4"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3417"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3415"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3413"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3411"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3409"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3405"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3403"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3401"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3399"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         id="stop5050-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         id="stop4544-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         id="stop15664-5"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-8"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-9"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-3"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-4"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-8"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-5"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         id="stop270-6"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-9"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         id="stop260-8"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-0"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-4"
-       xlink:href="#linearGradient4542-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         id="stop4442-2"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-4"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-9"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         id="stop4456-3"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-2"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         id="stop4469-9"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-9"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         id="stop2368-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-8"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         id="stop2848-1"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-1"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         id="stop2968-2"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-7"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         id="stop2976-3"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-3"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         id="stop2986"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2988"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         id="stop2996-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-9"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-4"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         id="stop3757-8"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-9"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-0"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3683">
-      <feColorMatrix
-         values="0"
-         type="saturate"
-         id="feColorMatrix3685" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835" />
-    </filter>
-    <radialGradient
-       cx="55"
-       cy="125"
-       r="14.375"
-       fx="55"
-       fy="125"
-       id="radialGradient1758"
-       xlink:href="#linearGradient12512"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       id="linearGradient9772"
-       xlink:href="#linearGradient9766"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="18.112709"
-       y1="31.36775"
-       x2="15.514889"
-       y2="6.1802502"
-       id="linearGradient3104"
-       xlink:href="#linearGradient3096"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="13.035696"
-       y1="32.567184"
-       x2="12.853771"
-       y2="46.689312"
-       id="linearGradient322"
-       xlink:href="#linearGradient319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
-    <linearGradient
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053"
-       id="linearGradient491"
-       xlink:href="#linearGradient3983"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         id="stop3984"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         offset="0" />
-      <stop
-         id="stop3985"
-         style="stop-color:#fffffe;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.706017"
-       cy="37.517986"
-       r="30.905205"
-       fx="20.706017"
-       fy="37.517986"
-       id="radialGradient238"
-       xlink:href="#linearGradient1789"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         id="stop1790"
-         style="stop-color:#202020;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1791"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319">
-      <stop
-         id="stop320"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop321"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         style="stop-color:#424242;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3100"
-         style="stop-color:#777777;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         id="stop9768"
-         style="stop-color:#6194cb;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9770"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient5027"
-       xlink:href="#linearGradient5048-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <linearGradient
-       id="linearGradient5048-8">
-      <stop
-         id="stop5050-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-2"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5029"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <linearGradient
-       id="linearGradient5060">
-      <stop
-         id="stop5062"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5064"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5031"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <g
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
-       id="g2679">
-      <g
-         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
-         id="g3025-4">
-        <g
-           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
-           id="layer1"
-           style="display:inline">
-          <path
-             d="m 11.505723,5.4942766 0,37.9065924"
-             id="path15672"
-             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
-        </g>
-        <g
-           id="g3786"
-           style="filter:url(#filter3827)">
-          <rect
-             width="4.349854"
-             height="4.349854"
-             rx="0.76958966"
-             ry="0.76958966"
-             x="85.381561"
-             y="99.493881"
-             transform="translate(47.719063,1.6625723)"
-             id="rect5876"
-             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-          <rect
-             width="34.875"
-             height="40.920494"
-             rx="1.1449448"
-             ry="1.1468204"
-             x="6.6035528"
-             y="3.6464462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15391"
-             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="32.775887"
-             height="38.946384"
-             rx="0.14851625"
-             ry="0.14875954"
-             x="7.6660538"
-             y="4.5839462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15660"
-             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <g
-             transform="matrix(0.54901938,0,0,0.60392127,117.6091,94.047504)"
-             id="g2253">
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="9"
-               id="rect15686"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="11"
-               id="rect15688"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="13"
-               id="rect15690"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="15"
-               id="rect15692"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="17"
-               id="rect15694"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="19"
-               id="rect15696"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="21"
-               id="rect15698"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="23"
-               id="rect15700"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="9.9000053"
-               height="1"
-               rx="0.068204239"
-               ry="0.065390877"
-               x="14.999992"
-               y="25"
-               id="rect15732"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="29"
-               id="rect15736"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="31"
-               id="rect15738"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="33"
-               id="rect15740"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="35"
-               id="rect15742"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="15.400014"
-               height="1"
-               rx="0.10609552"
-               ry="0.065390877"
-               x="14.999992"
-               y="37"
-               id="rect15744"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          </g>
-          <g
-             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
-             id="g4142">
-            <g
-               id="layer1-4">
-              <g
-                 transform="matrix(3.6418565,0,0,3.6418565,399.69542,-56.246045)"
-                 id="layer4"
-                 style="display:inline">
-                <path
-                   d="m 69.375,125 a 14.375,14.375 0 1 1 -28.75,0 14.375,14.375 0 1 1 28.75,0 z"
-                   transform="matrix(0.783292,0,0,0.783292,-6.340883,-86.65168)"
-                   id="path12511"
-                   style="color:#000000;fill:url(#radialGradient1758);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;marker:none;visibility:visible;display:block" />
-              </g>
-            </g>
-            <g
-               id="layer2" />
-          </g>
-        </g>
-      </g>
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_ReleaseWidget.png has changed
--- a/libgui/src/icons/graphic_logo_ReleaseWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1156 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3556"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3554"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3552"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3550"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548-0"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546-5"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-8"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-6"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-4"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3417"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3415"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3413"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3411"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3409"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3405"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3403"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3401"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3399"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         id="stop5050-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         id="stop4544-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         id="stop15664-5"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-8"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-9"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-3"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-4"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-8"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-5"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         id="stop270-6"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-9"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         id="stop260-8"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-0"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-4"
-       xlink:href="#linearGradient4542-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         id="stop4442-2"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-4"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-9"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         id="stop4456-3"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-2"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         id="stop4469-9"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-9"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         id="stop2368-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-8"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         id="stop2848-1"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-1"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         id="stop2968-2"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-7"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         id="stop2976-3"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-3"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         id="stop2986"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2988"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         id="stop2996-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-9"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-4"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         id="stop3757-8"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-9"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-0"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3683">
-      <feColorMatrix
-         values="0"
-         type="saturate"
-         id="feColorMatrix3685" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835" />
-    </filter>
-    <radialGradient
-       cx="55"
-       cy="125"
-       r="14.375"
-       fx="55"
-       fy="125"
-       id="radialGradient1758"
-       xlink:href="#linearGradient12512"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       id="linearGradient9772"
-       xlink:href="#linearGradient9766"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="18.112709"
-       y1="31.36775"
-       x2="15.514889"
-       y2="6.1802502"
-       id="linearGradient3104"
-       xlink:href="#linearGradient3096"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="13.035696"
-       y1="32.567184"
-       x2="12.853771"
-       y2="46.689312"
-       id="linearGradient322"
-       xlink:href="#linearGradient319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
-    <linearGradient
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053"
-       id="linearGradient491"
-       xlink:href="#linearGradient3983"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         id="stop3984"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         offset="0" />
-      <stop
-         id="stop3985"
-         style="stop-color:#fffffe;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.706017"
-       cy="37.517986"
-       r="30.905205"
-       fx="20.706017"
-       fy="37.517986"
-       id="radialGradient238"
-       xlink:href="#linearGradient1789"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         id="stop1790"
-         style="stop-color:#202020;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1791"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319">
-      <stop
-         id="stop320"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop321"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         style="stop-color:#424242;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3100"
-         style="stop-color:#777777;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         id="stop9768"
-         style="stop-color:#6194cb;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9770"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient5027"
-       xlink:href="#linearGradient5048-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <linearGradient
-       id="linearGradient5048-8">
-      <stop
-         id="stop5050-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-2"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5029"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <linearGradient
-       id="linearGradient5060">
-      <stop
-         id="stop5062"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5064"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5031"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <g
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
-       id="g2679">
-      <g
-         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
-         id="g3025-4">
-        <g
-           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
-           id="layer1"
-           style="display:inline">
-          <path
-             d="m 11.505723,5.4942766 0,37.9065924"
-             id="path15672"
-             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
-        </g>
-        <g
-           id="g3786"
-           style="filter:url(#filter3827)">
-          <rect
-             width="4.349854"
-             height="4.349854"
-             rx="0.76958966"
-             ry="0.76958966"
-             x="85.381561"
-             y="99.493881"
-             transform="translate(47.719063,1.6625723)"
-             id="rect5876"
-             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-          <rect
-             width="34.875"
-             height="40.920494"
-             rx="1.1449448"
-             ry="1.1468204"
-             x="6.6035528"
-             y="3.6464462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15391"
-             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="32.775887"
-             height="38.946384"
-             rx="0.14851625"
-             ry="0.14875954"
-             x="7.6660538"
-             y="4.5839462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15660"
-             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <g
-             transform="matrix(0.54901938,0,0,0.60392127,117.6091,94.047504)"
-             id="g2253">
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="9"
-               id="rect15686"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="11"
-               id="rect15688"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="13"
-               id="rect15690"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="15"
-               id="rect15692"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="17"
-               id="rect15694"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="19"
-               id="rect15696"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="21"
-               id="rect15698"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="15.000002"
-               y="23"
-               id="rect15700"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="9.9000053"
-               height="1"
-               rx="0.068204239"
-               ry="0.065390877"
-               x="14.999992"
-               y="25"
-               id="rect15732"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="29"
-               id="rect15736"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="31"
-               id="rect15738"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="33"
-               id="rect15740"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="22.000004"
-               height="1"
-               rx="0.15156493"
-               ry="0.065390877"
-               x="14.999992"
-               y="35"
-               id="rect15742"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-            <rect
-               width="15.400014"
-               height="1"
-               rx="0.10609552"
-               ry="0.065390877"
-               x="14.999992"
-               y="37"
-               id="rect15744"
-               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          </g>
-          <g
-             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
-             id="g4142">
-            <g
-               id="layer1-4">
-              <g
-                 transform="matrix(3.6418565,0,0,3.6418565,399.69542,-56.246045)"
-                 id="layer4"
-                 style="display:inline">
-                <path
-                   d="m 69.375,125 a 14.375,14.375 0 1 1 -28.75,0 14.375,14.375 0 1 1 28.75,0 z"
-                   transform="matrix(0.783292,0,0,0.783292,-6.340883,-86.65168)"
-                   id="path12511"
-                   style="color:#000000;fill:url(#radialGradient1758);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;marker:none;visibility:visible;display:block" />
-              </g>
-            </g>
-            <g
-               id="layer2" />
-          </g>
-        </g>
-      </g>
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_TerminalDockWidget.png has changed
--- a/libgui/src/icons/graphic_logo_TerminalDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1744 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3556"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3554"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3552"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3550"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548-0"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546-5"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-8"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-6"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-4"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3417"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3415"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3413"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3411"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3409"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3405"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3403"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3401"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3399"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         id="stop5050-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         id="stop4544-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         id="stop15664-5"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-8"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-9"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-3"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-4"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-8"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-5"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         id="stop270-6"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-9"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         id="stop260-8"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-0"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-4"
-       xlink:href="#linearGradient4542-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         id="stop4442-2"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-4"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-9"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         id="stop4456-3"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-2"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         id="stop4469-9"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-9"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         id="stop2368-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-8"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         id="stop2848-1"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-1"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         id="stop2968-2"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-7"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         id="stop2976-3"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-3"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         id="stop2986"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2988"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         id="stop2996-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-9"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-4"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         id="stop3757-8"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-9"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-0"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3683">
-      <feColorMatrix
-         values="0"
-         type="saturate"
-         id="feColorMatrix3685" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835" />
-    </filter>
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         id="stop3984"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         offset="0" />
-      <stop
-         id="stop3985"
-         style="stop-color:#fffffe;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         id="stop1790"
-         style="stop-color:#202020;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1791"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         style="stop-color:#424242;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3100"
-         style="stop-color:#777777;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         id="stop9768"
-         style="stop-color:#6194cb;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9770"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048-8">
-      <stop
-         id="stop5050-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-2"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2152">
-      <stop
-         id="stop2154"
-         style="stop-color:#9aa29a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2156"
-         style="stop-color:#b5beb5;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient37935">
-      <stop
-         id="stop37937"
-         style="stop-color:#9497b3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop37939"
-         style="stop-color:#4c4059;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2145">
-      <stop
-         id="stop2147"
-         style="stop-color:#fffffd;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2149"
-         style="stop-color:#cbcbc9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient42174">
-      <stop
-         id="stop42176"
-         style="stop-color:#a0a0a0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop42178"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient10653">
-      <stop
-         id="stop10655"
-         style="stop-color:#f3f4ff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop10657"
-         style="stop-color:#9193af;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient12512-2">
-      <stop
-         id="stop12513-8"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517-1"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514-2"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="8.9156475"
-       y1="37.197018"
-       x2="9.8855038"
-       y2="52.090679"
-       id="linearGradient5285"
-       xlink:href="#linearGradient2152"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(8.205187,0,0,2.5470234,-86.295197,-129.20334)" />
-    <radialGradient
-       cx="8.7468252"
-       cy="6.8283234"
-       r="29.889715"
-       fx="8.7468252"
-       fy="6.8283234"
-       id="radialGradient5287"
-       xlink:href="#linearGradient37935"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="11.901996"
-       cy="10.045444"
-       r="29.292715"
-       fx="11.901996"
-       fy="10.045444"
-       id="radialGradient5289"
-       xlink:href="#linearGradient2145"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="6.342216"
-       y1="7.7893324"
-       x2="22.218424"
-       y2="25.884274"
-       id="linearGradient5291"
-       xlink:href="#linearGradient42174"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5031"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-    <linearGradient
-       id="linearGradient5060">
-      <stop
-         id="stop5062"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5064"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5029"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <linearGradient
-       id="linearGradient5048-9">
-      <stop
-         id="stop5050-7"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-2"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-0"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient5027"
-       xlink:href="#linearGradient5048-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <linearGradient
-       id="linearGradient4254">
-      <stop
-         id="stop4256"
-         style="stop-color:#616161;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4258"
-         style="stop-color:#a0a0a0;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5176">
-      <stop
-         id="stop5178"
-         style="stop-color:#a2a59c;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5180"
-         style="stop-color:#535750;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2667">
-      <stop
-         id="stop2669"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2671"
-         style="stop-color:#fcfcff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2238">
-      <stop
-         id="stop2240"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2242"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2224">
-      <stop
-         id="stop2226"
-         style="stop-color:#32342f;stop-opacity:0.54639173"
-         offset="0" />
-      <stop
-         id="stop2228"
-         style="stop-color:#32342f;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2214">
-      <stop
-         id="stop2216"
-         style="stop-color:#a9aaa7;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2218"
-         style="stop-color:#676964;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2206">
-      <stop
-         id="stop2208"
-         style="stop-color:#777973;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2210"
-         style="stop-color:#cbccca;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2198">
-      <stop
-         id="stop2200"
-         style="stop-color:#fde2bf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2202"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="29.870447"
-       y1="32.28574"
-       x2="24.841814"
-       y2="14.157946"
-       id="linearGradient2212"
-       xlink:href="#linearGradient2206"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
-    <linearGradient
-       x1="8.6529236"
-       y1="9.5865316"
-       x2="21.305075"
-       y2="32.497993"
-       id="linearGradient2220"
-       xlink:href="#linearGradient5176"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
-    <radialGradient
-       cx="24.04163"
-       cy="42.24213"
-       r="17.576654"
-       fx="24.04163"
-       fy="42.24213"
-       id="radialGradient2230"
-       xlink:href="#linearGradient2224"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.304598,0,29.37527)" />
-    <linearGradient
-       x1="20.338758"
-       y1="19.636894"
-       x2="48.845253"
-       y2="49.730762"
-       id="linearGradient2244"
-       xlink:href="#linearGradient2238"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.953506,0,0,0.947873,1.141528,1.205591)" />
-    <linearGradient
-       x1="11.048059"
-       y1="9.146349"
-       x2="26.178129"
-       y2="30.343304"
-       id="linearGradient4260"
-       xlink:href="#linearGradient4254"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.997583,0,0,0.989941,0.104141,0.07028871)" />
-    <radialGradient
-       cx="11.3292"
-       cy="10.58397"
-       r="15.532059"
-       fx="11.3292"
-       fy="10.58397"
-       id="radialGradient3835"
-       xlink:href="#linearGradient10653-6"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512-8">
-      <stop
-         id="stop12513-1"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517-0"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514-8"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient10653-6">
-      <stop
-         id="stop10655-5"
-         style="stop-color:#ff7f2a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop10657-1"
-         style="stop-color:#732e00;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient42174-6">
-      <stop
-         id="stop42176-8"
-         style="stop-color:#ff7f2a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop42178-3"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2145-0">
-      <stop
-         id="stop2147-4"
-         style="stop-color:#ffd7bc;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2149-8"
-         style="stop-color:#cbcbc9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient37935-8">
-      <stop
-         id="stop37937-6"
-         style="stop-color:#9497b3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop37939-8"
-         style="stop-color:#4c4059;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2152-1">
-      <stop
-         id="stop2154-4"
-         style="stop-color:#9aa29a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2156-2"
-         style="stop-color:#b5beb5;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548"
-       xlink:href="#aigrd3-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546"
-       xlink:href="#aigrd2-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-4"
-       xlink:href="#linearGradient15662-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-0"
-       xlink:href="#linearGradient269-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-49"
-       xlink:href="#linearGradient259-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       id="linearGradient5048-5">
-      <stop
-         id="stop5050-6"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-0"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-9">
-      <stop
-         id="stop4544-9"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-4">
-      <stop
-         id="stop15664-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-9"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-7"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-8"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-2"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-5"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-8"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-2">
-      <stop
-         id="stop270-67"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-3"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-7">
-      <stop
-         id="stop260-1"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-6"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-7"
-       xlink:href="#linearGradient4542-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-5">
-      <stop
-         id="stop4442-0"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-2"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-2"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-7">
-      <stop
-         id="stop4456-1"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-1"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-4">
-      <stop
-         id="stop4469-4"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-8"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-3">
-      <stop
-         id="stop2368-2"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-5"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-4"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-27">
-      <stop
-         id="stop2848-8"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-7"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-5">
-      <stop
-         id="stop2968-5"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-2"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-13"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-5">
-      <stop
-         id="stop2976-9"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-1"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-7">
-      <stop
-         id="stop2996-9"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-3"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-3"
-       xlink:href="#linearGradient3755-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-9">
-      <stop
-         id="stop3757-86"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-5"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-8"
-       xlink:href="#linearGradient3755-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient5610"
-       xlink:href="#linearGradient3755-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.9367132,-2.1046661,6.4603259,7.0205689,-2911.0812,-2312.9607)" />
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient5612"
-       xlink:href="#linearGradient5048-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5614"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5616"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-    <linearGradient
-       x1="29.870447"
-       y1="32.28574"
-       x2="24.841814"
-       y2="14.157946"
-       id="linearGradient5618"
-       xlink:href="#linearGradient2206"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
-    <linearGradient
-       x1="8.6529236"
-       y1="9.5865316"
-       x2="21.305075"
-       y2="32.497993"
-       id="linearGradient5620"
-       xlink:href="#linearGradient5176"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
-    <linearGradient
-       x1="11.048059"
-       y1="9.146349"
-       x2="26.178129"
-       y2="30.343304"
-       id="linearGradient5622"
-       xlink:href="#linearGradient4254"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.997583,0,0,0.989941,0.104141,0.07028871)" />
-    <linearGradient
-       x1="20.338758"
-       y1="19.636894"
-       x2="48.845253"
-       y2="49.730762"
-       id="linearGradient5624"
-       xlink:href="#linearGradient2238"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.953506,0,0,0.947873,1.141528,1.205591)" />
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient5636"
-       xlink:href="#linearGradient5048-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5638"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5640"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-    <linearGradient
-       x1="29.870447"
-       y1="32.28574"
-       x2="24.841814"
-       y2="14.157946"
-       id="linearGradient5642"
-       xlink:href="#linearGradient2206"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
-    <linearGradient
-       x1="8.6529236"
-       y1="9.5865316"
-       x2="21.305075"
-       y2="32.497993"
-       id="linearGradient5644"
-       xlink:href="#linearGradient5176"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
-    <linearGradient
-       x1="11.048059"
-       y1="9.146349"
-       x2="26.178129"
-       y2="30.343304"
-       id="linearGradient5646"
-       xlink:href="#linearGradient4254"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.997583,0,0,0.989941,0.104141,0.07028871)" />
-    <linearGradient
-       x1="20.338758"
-       y1="19.636894"
-       x2="48.845253"
-       y2="49.730762"
-       id="linearGradient5648"
-       xlink:href="#linearGradient2238"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.953506,0,0,0.947873,1.141528,1.205591)" />
-    <linearGradient
-       x1="20.338758"
-       y1="19.636894"
-       x2="48.845253"
-       y2="49.730762"
-       id="linearGradient5652"
-       xlink:href="#linearGradient2238"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.5297667,0,0,4.0221948,11.414836,-167.93991)" />
-    <linearGradient
-       x1="11.048059"
-       y1="9.146349"
-       x2="26.178129"
-       y2="30.343304"
-       id="linearGradient5655"
-       xlink:href="#linearGradient4254"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.6929346,0,0,4.2007057,7.5745513,-172.75744)" />
-    <linearGradient
-       x1="29.870447"
-       y1="32.28574"
-       x2="24.841814"
-       y2="14.157946"
-       id="linearGradient5658"
-       xlink:href="#linearGradient2206"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.5442262,0,0,4.0411118,10.975193,-172.49003)" />
-    <linearGradient
-       x1="8.6529236"
-       y1="9.5865316"
-       x2="21.305075"
-       y2="32.497993"
-       id="linearGradient5660"
-       xlink:href="#linearGradient5176"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.5442262,0,0,4.0411118,10.975193,-172.49003)" />
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <g
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
-       id="g2679">
-      <g
-         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
-         id="g3025-4">
-        <g
-           id="g3786"
-           style="filter:url(#filter3827)">
-          <rect
-             width="4.349854"
-             height="4.349854"
-             rx="0.76958966"
-             ry="0.76958966"
-             x="85.381561"
-             y="99.493881"
-             transform="translate(47.719063,1.6625723)"
-             id="rect5876"
-             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-          <rect
-             width="34.875"
-             height="40.920494"
-             rx="1.1449448"
-             ry="1.1468204"
-             x="6.6035528"
-             y="3.6464462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15391"
-             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="32.775887"
-             height="38.946384"
-             rx="0.14851625"
-             ry="0.14875954"
-             x="7.6660538"
-             y="4.5839462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15660"
-             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <g
-             transform="matrix(0.14986221,0,0,0.14986221,59.127971,99.768918)"
-             id="g4142">
-            <g
-               id="layer1-4">
-              <g
-                 transform="translate(-12.542961,39.482886)"
-                 id="layer1-9">
-                <path
-                   d="m 437.56521,28.619078 0,-12.960977 33.26078,17.231533 0,7.875388 -33.26078,17.344576 0,-12.922472 25.78135,-7.866642 -25.78135,-8.701406 z m 69.93828,42.545755 0,8.377284 -40.3631,0 0,-8.377284 40.3631,0"
-                   id="text1340"
-                   style="font-size:18.58501053px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.96339874pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.27868856;font-family:Bitstream Vera Sans Mono" />
-              </g>
-            </g>
-            <g
-               id="layer2" />
-          </g>
-        </g>
-      </g>
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_VariableEditor.png has changed
--- a/libgui/src/icons/graphic_logo_VariableEditor.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1240 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   id="svg2872"
-   height="283.28833"
-   width="283.28912"
-   version="1.1">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3755"
-       id="radialGradient3033"
-       fy="395.04871"
-       fx="182.9837"
-       r="148.95309"
-       cy="395.04871"
-       cx="182.9837" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         offset="0"
-         style="stop-color:#008cbe;stop-opacity:1"
-         id="stop3757" />
-      <stop
-         offset="1"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         id="stop3759" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       fy="395.04871"
-       fx="182.9837"
-       r="148.95309"
-       cy="395.04871"
-       cx="182.9837" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop2996" />
-      <stop
-         offset="1"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         offset="0"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         id="stop2976" />
-      <stop
-         offset="1"
-         style="stop-color:#acacac;stop-opacity:1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         offset="0"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         id="stop2968" />
-      <stop
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         id="stop3006" />
-      <stop
-         offset="1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         offset="0"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         id="stop2848" />
-      <stop
-         offset="1"
-         style="stop-color:#484848;stop-opacity:1"
-         id="stop2850" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop2368" />
-      <stop
-         offset="0.5"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         id="stop2374" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop2370" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop4469" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         offset="0"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         id="stop4456" />
-      <stop
-         offset="1"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         offset="0"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         id="stop4442" />
-      <stop
-         offset="0.5"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         id="stop4448" />
-      <stop
-         offset="1"
-         style="stop-color:#686868;stop-opacity:1"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4542"
-       id="radialGradient4548"
-       fy="42.07798"
-       fx="24.306795"
-       r="15.821514"
-       cy="42.07798"
-       cx="24.306795" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         offset="0"
-         style="stop-color:#fafafa;stop-opacity:1"
-         id="stop260" />
-      <stop
-         offset="1"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         offset="0"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         id="stop270" />
-      <stop
-         offset="1"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       id="aigrd2"
-       fy="114.5684"
-       fx="20.892099"
-       r="5.256"
-       cy="114.5684"
-       cx="20.892099">
-      <stop
-         offset="0"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         id="stop15566" />
-      <stop
-         offset="1"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         id="stop15568" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       id="aigrd3"
-       fy="64.567902"
-       fx="20.892099"
-       r="5.257"
-       cy="64.567902"
-       cx="20.892099">
-      <stop
-         offset="0"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         id="stop15573" />
-      <stop
-         offset="1"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         id="stop15575" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop15664" />
-      <stop
-         offset="1"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop4544" />
-      <stop
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop4546" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop5050" />
-      <stop
-         offset="0.5"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop5056" />
-      <stop
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop5052" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="scale(0.960493,1.041132)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient259"
-       id="radialGradient3540"
-       fy="35.736916"
-       fx="33.966679"
-       r="86.70845"
-       cy="35.736916"
-       cx="33.966679" />
-    <radialGradient
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient269"
-       id="radialGradient3542"
-       fy="3.7561285"
-       fx="8.824419"
-       r="37.751713"
-       cy="3.7561285"
-       cx="8.824419" />
-    <radialGradient
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient15662"
-       id="radialGradient3544"
-       fy="7.2678967"
-       fx="8.1435566"
-       r="38.158695"
-       cy="7.2678967"
-       cx="8.1435566" />
-    <linearGradient
-       gradientTransform="translate(-5.825542,0.125)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2994-0"
-       id="linearGradient3556"
-       y2="30.703125"
-       x2="25.514589"
-       y1="31.046875"
-       x1="25.71875" />
-    <radialGradient
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2984"
-       id="radialGradient3554"
-       fy="27.640751"
-       fx="29.053354"
-       r="3.2408545"
-       cy="27.640751"
-       cx="29.053354" />
-    <linearGradient
-       gradientTransform="translate(-5.669292,0)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2974-0"
-       id="linearGradient3552"
-       y2="22.625"
-       x2="47.6875"
-       y1="19.8125"
-       x1="46" />
-    <linearGradient
-       gradientTransform="translate(-5.669292,0)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2966-9"
-       id="linearGradient3550"
-       y2="22.250591"
-       x2="50.988335"
-       y1="17.376184"
-       x1="48.90625" />
-    <radialGradient
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#aigrd3-9"
-       id="radialGradient3548-0"
-       fy="64.567902"
-       fx="20.892099"
-       r="5.257"
-       cy="64.567902"
-       cx="20.892099" />
-    <radialGradient
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#aigrd2-8"
-       id="radialGradient3546-5"
-       fy="114.5684"
-       fx="20.892099"
-       r="5.256"
-       cy="114.5684"
-       cx="20.892099" />
-    <radialGradient
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient15662-2"
-       id="radialGradient3544-8"
-       fy="7.2678967"
-       fx="8.1435566"
-       r="38.158695"
-       cy="7.2678967"
-       cx="8.1435566" />
-    <radialGradient
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient269-7"
-       id="radialGradient3542-6"
-       fy="3.7561285"
-       fx="8.824419"
-       r="37.751713"
-       cy="3.7561285"
-       cx="8.824419" />
-    <radialGradient
-       gradientTransform="scale(0.960493,1.041132)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient259-5"
-       id="radialGradient3540-4"
-       fy="35.736916"
-       fx="33.966679"
-       r="86.70845"
-       cy="35.736916"
-       cx="33.966679" />
-    <radialGradient
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#aigrd3-9"
-       id="radialGradient3417"
-       fy="64.567902"
-       fx="20.892099"
-       r="5.257"
-       cy="64.567902"
-       cx="20.892099" />
-    <radialGradient
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#aigrd2-8"
-       id="radialGradient3415"
-       fy="114.5684"
-       fx="20.892099"
-       r="5.256"
-       cy="114.5684"
-       cx="20.892099" />
-    <radialGradient
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient15662-2"
-       id="radialGradient3413"
-       fy="7.2678967"
-       fx="8.1435566"
-       r="38.158695"
-       cy="7.2678967"
-       cx="8.1435566" />
-    <radialGradient
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient269-7"
-       id="radialGradient3411"
-       fy="3.7561285"
-       fx="8.824419"
-       r="37.751713"
-       cy="3.7561285"
-       cx="8.824419" />
-    <radialGradient
-       gradientTransform="scale(0.960493,1.041132)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient259-5"
-       id="radialGradient3409"
-       fy="35.736916"
-       fx="33.966679"
-       r="86.70845"
-       cy="35.736916"
-       cx="33.966679" />
-    <linearGradient
-       gradientTransform="translate(-5.825542,0.125)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2994-0"
-       id="linearGradient3405"
-       y2="30.703125"
-       x2="25.514589"
-       y1="31.046875"
-       x1="25.71875" />
-    <radialGradient
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2984"
-       id="radialGradient3403"
-       fy="27.640751"
-       fx="29.053354"
-       r="3.2408545"
-       cy="27.640751"
-       cx="29.053354" />
-    <linearGradient
-       gradientTransform="translate(-5.669292,0)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2974-0"
-       id="linearGradient3401"
-       y2="22.625"
-       x2="47.6875"
-       y1="19.8125"
-       x1="46" />
-    <linearGradient
-       gradientTransform="translate(-5.669292,0)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2966-9"
-       id="linearGradient3399"
-       y2="22.250591"
-       x2="50.988335"
-       y1="17.376184"
-       x1="48.90625" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop5050-4" />
-      <stop
-         offset="0.5"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop5056-7" />
-      <stop
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop5052-1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop4544-5" />
-      <stop
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop4546-5" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop15664-5" />
-      <stop
-         offset="1"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         id="stop15666-8" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       id="aigrd3-9"
-       fy="64.567902"
-       fx="20.892099"
-       r="5.257"
-       cy="64.567902"
-       cx="20.892099">
-      <stop
-         offset="0"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         id="stop15573-3" />
-      <stop
-         offset="1"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         id="stop15575-4" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       id="aigrd2-8"
-       fy="114.5684"
-       fx="20.892099"
-       r="5.256"
-       cy="114.5684"
-       cx="20.892099">
-      <stop
-         offset="0"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         id="stop15566-1" />
-      <stop
-         offset="1"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         id="stop15568-5" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         offset="0"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         id="stop270-6" />
-      <stop
-         offset="1"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         id="stop271-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         offset="0"
-         style="stop-color:#fafafa;stop-opacity:1"
-         id="stop260-8" />
-      <stop
-         offset="1"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         id="stop261-0" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient4542-3"
-       id="radialGradient4548-4"
-       fy="42.07798"
-       fx="24.306795"
-       r="15.821514"
-       cy="42.07798"
-       cx="24.306795" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         offset="0"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         id="stop4442-2" />
-      <stop
-         offset="0.5"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         id="stop4448-4" />
-      <stop
-         offset="1"
-         style="stop-color:#686868;stop-opacity:1"
-         id="stop4444-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         offset="0"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         id="stop4456-3" />
-      <stop
-         offset="1"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         id="stop4458-2" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop4469-9" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         id="stop4471-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop2368-7" />
-      <stop
-         offset="0.5"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         id="stop2374-8" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop2370-7" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         offset="0"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         id="stop2848-1" />
-      <stop
-         offset="1"
-         style="stop-color:#484848;stop-opacity:1"
-         id="stop2850-1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         offset="0"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         id="stop2968-2" />
-      <stop
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         id="stop3006-7" />
-      <stop
-         offset="1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         id="stop2970-1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         offset="0"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         id="stop2976-3" />
-      <stop
-         offset="1"
-         style="stop-color:#acacac;stop-opacity:1"
-         id="stop2978-3" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         offset="0"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         id="stop2986" />
-      <stop
-         offset="1"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         id="stop2988" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop2996-5" />
-      <stop
-         offset="1"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         id="stop2998-9" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3755-2"
-       id="radialGradient2996-4"
-       fy="395.04871"
-       fx="182.9837"
-       r="148.95309"
-       cy="395.04871"
-       cx="182.9837" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         offset="0"
-         style="stop-color:#008cbe;stop-opacity:1"
-         id="stop3757-8" />
-      <stop
-         offset="1"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         id="stop3759-9" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3755-2"
-       id="radialGradient3033-0"
-       fy="395.04871"
-       fx="182.9837"
-       r="148.95309"
-       cy="395.04871"
-       cx="182.9837" />
-    <filter
-       id="filter3683"
-       color-interpolation-filters="sRGB"
-       height="1"
-       width="1"
-       y="0"
-       x="0">
-      <feColorMatrix
-         id="feColorMatrix3685"
-         type="saturate"
-         values="0" />
-    </filter>
-    <filter
-       id="filter3827"
-       color-interpolation-filters="sRGB"
-       height="1"
-       width="1"
-       y="0"
-       x="0">
-      <feColorMatrix
-         id="feColorMatrix3829"
-         type="saturate"
-         values="0"
-         result="result1" />
-      <feFlood
-         id="feFlood3831"
-         flood-color="rgb(9,111,152)"
-         result="result2" />
-      <feBlend
-         id="feBlend3833"
-         result="result2"
-         mode="screen"
-         in2="result1" />
-      <feComposite
-         id="feComposite3835"
-         in="result2"
-         operator="in"
-         in2="SourceGraphic" />
-    </filter>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient12512"
-       id="radialGradient1758"
-       fy="125"
-       fx="55"
-       r="14.375"
-       cy="125"
-       cx="55" />
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop12513" />
-      <stop
-         offset="0.5"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         id="stop12517" />
-      <stop
-         offset="1"
-         style="stop-color:#fff300;stop-opacity:0"
-         id="stop12514" />
-    </linearGradient>
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient9766"
-       id="linearGradient9772"
-       y2="32.050499"
-       x2="22.065331"
-       y1="36.987999"
-       x1="22.175976" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3096"
-       id="linearGradient3104"
-       y2="6.1802502"
-       x2="15.514889"
-       y1="31.36775"
-       x1="18.112709" />
-    <linearGradient
-       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient319"
-       id="linearGradient322"
-       y2="46.689312"
-       x2="12.853771"
-       y1="32.567184"
-       x1="13.035696" />
-    <linearGradient
-       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3983"
-       id="linearGradient491"
-       y2="66.834053"
-       x2="9.8980894"
-       y1="13.773066"
-       x1="6.2297964" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         id="stop3984" />
-      <stop
-         offset="1"
-         style="stop-color:#fffffe;stop-opacity:0"
-         id="stop3985" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient1789"
-       id="radialGradient238"
-       fy="37.517986"
-       fx="20.706017"
-       r="30.905205"
-       cy="37.517986"
-       cx="20.706017" />
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         offset="0"
-         style="stop-color:#202020;stop-opacity:1"
-         id="stop1790" />
-      <stop
-         offset="1"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         id="stop1791" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319">
-      <stop
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1"
-         id="stop320" />
-      <stop
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0"
-         id="stop321" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         offset="0"
-         style="stop-color:#424242;stop-opacity:1"
-         id="stop3098" />
-      <stop
-         offset="1"
-         style="stop-color:#777777;stop-opacity:1"
-         id="stop3100" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         offset="0"
-         style="stop-color:#6194cb;stop-opacity:1"
-         id="stop9768" />
-      <stop
-         offset="1"
-         style="stop-color:#729fcf;stop-opacity:1"
-         id="stop9770" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5048-8"
-       id="linearGradient5027"
-       y2="609.50507"
-       x2="302.85715"
-       y1="366.64789"
-       x1="302.85715" />
-    <linearGradient
-       id="linearGradient5048-8">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop5050-5" />
-      <stop
-         offset="0.5"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop5056-5" />
-      <stop
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop5052-2" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5029"
-       fy="486.64789"
-       fx="605.71429"
-       r="117.14286"
-       cy="486.64789"
-       cx="605.71429" />
-    <linearGradient
-       id="linearGradient5060">
-      <stop
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1"
-         id="stop5062" />
-      <stop
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient5060"
-       id="radialGradient5031"
-       fy="486.64789"
-       fx="605.71429"
-       r="117.14286"
-       cy="486.64789"
-       cx="605.71429" />
-    <filter
-       id="filter3827-2"
-       color-interpolation-filters="sRGB"
-       height="1"
-       width="1"
-       y="0"
-       x="0">
-      <feColorMatrix
-         id="feColorMatrix3829-1"
-         type="saturate"
-         values="0"
-         result="result1" />
-      <feFlood
-         id="feFlood3831-3"
-         flood-color="rgb(9,111,152)"
-         result="result2" />
-      <feBlend
-         id="feBlend3833-2"
-         result="result2"
-         mode="screen"
-         in2="result1" />
-      <feComposite
-         id="feComposite3835-8"
-         in="result2"
-         operator="in"
-         in2="SourceGraphic" />
-    </filter>
-    <filter
-       id="filter3827-6"
-       color-interpolation-filters="sRGB"
-       height="1"
-       width="1"
-       y="0"
-       x="0">
-      <feColorMatrix
-         id="feColorMatrix3829-7"
-         type="saturate"
-         values="0"
-         result="result1" />
-      <feFlood
-         id="feFlood3831-1"
-         flood-color="rgb(9,111,152)"
-         result="result2" />
-      <feBlend
-         id="feBlend3833-9"
-         result="result2"
-         mode="screen"
-         in2="result1" />
-      <feComposite
-         id="feComposite3835-3"
-         in="result2"
-         operator="in"
-         in2="SourceGraphic" />
-    </filter>
-    <filter
-       id="filter3683-3"
-       height="1"
-       width="1"
-       y="0"
-       x="0"
-       style="color-interpolation-filters:sRGB">
-      <feColorMatrix
-         id="feColorMatrix3685-6"
-         type="saturate"
-         values="0" />
-    </filter>
-    <radialGradient
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient2984"
-       id="radialGradient3679"
-       fy="27.640751"
-       fx="29.053354"
-       r="3.2408545"
-       cy="27.640751"
-       cx="29.053354" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <g
-       id="g2679"
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)">
-      <g
-         id="g3025-4"
-         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)">
-        <g
-           style="display:inline"
-           id="layer1"
-           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)">
-          <path
-             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
-             id="path15672"
-             d="m 11.505723,5.4942766 0,37.9065924" />
-        </g>
-        <g
-           style="filter:url(#filter3827)"
-           id="g3786">
-          <rect
-             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-             id="rect5876"
-             transform="translate(47.719063,1.6625723)"
-             y="99.493881"
-             x="85.381561"
-             ry="0.76958966"
-             rx="0.76958966"
-             height="4.349854"
-             width="4.349854" />
-          <rect
-             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
-             id="rect15391"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             y="3.6464462"
-             x="6.6035528"
-             ry="1.1468204"
-             rx="1.1449448"
-             height="40.920494"
-             width="34.875" />
-          <rect
-             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
-             id="rect15660"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             y="4.5839462"
-             x="7.6660538"
-             ry="0.14875954"
-             rx="0.14851625"
-             height="38.946384"
-             width="32.775887" />
-          <rect
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
-             id="rect15688"
-             y="98.939804"
-             x="122.39634"
-             ry="0.050595302"
-             rx="0.11721393"
-             height="0.77373642"
-             width="17.013876" />
-          <rect
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
-             id="rect15694"
-             y="103.58221"
-             x="122.39634"
-             ry="0.050595302"
-             rx="0.11721393"
-             height="0.77373642"
-             width="17.013876" />
-          <rect
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
-             id="rect15700"
-             y="108.22463"
-             x="122.39634"
-             ry="0.050595302"
-             rx="0.11721393"
-             height="0.77373642"
-             width="17.013876" />
-          <rect
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
-             id="rect15736"
-             y="112.86707"
-             x="122.39633"
-             ry="0.050595302"
-             rx="0.11721393"
-             height="0.77373642"
-             width="17.013876" />
-          <rect
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
-             id="rect15742"
-             y="117.50946"
-             x="122.39633"
-             ry="0.050595302"
-             rx="0.11721393"
-             height="0.77373642"
-             width="17.013876" />
-          <g
-             id="g4142"
-             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)">
-            <g
-               id="layer1-4" />
-            <g
-               id="layer2" />
-          </g>
-          <rect
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827)"
-             id="rect15688-8"
-             transform="matrix(0,-0.13366266,0.13366266,0,122.36549,118.26113)"
-             y="0"
-             x="0"
-             ry="0.4276301"
-             rx="0.99068886"
-             height="6.5395989"
-             width="143.80081" />
-          <rect
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827-2)"
-             id="rect15688-8-0"
-             transform="matrix(0,-0.13366266,0.13366266,0,129.23148,118.19983)"
-             y="0"
-             x="0"
-             ry="0.4276301"
-             rx="0.99068886"
-             height="6.5395989"
-             width="143.80081" />
-          <rect
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827-6)"
-             id="rect15688-8-3"
-             transform="matrix(0,-0.13366266,0.13366266,0,138.48828,118.19983)"
-             y="0"
-             x="0"
-             ry="0.4276301"
-             rx="0.99068886"
-             height="6.5395989"
-             width="143.80081" />
-          <text
-             style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-             xml:space="preserve"
-             id="text3260"
-             transform="matrix(0.11831558,0,0,0.11831558,108.27363,95.669952)"
-             y="64.117348"
-             x="148.18652"><tspan
-               style="font-size:32px;font-weight:bold;-inkscape-font-specification:Sans Bold"
-               id="tspan3262"
-               y="64.117348"
-               x="148.18652" /></text>
-          <rect
-             style="color:#000000;fill:#a9cddb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-             id="rect3264"
-             transform="matrix(0.11831558,0,0,0.11831558,108.27363,95.669952)"
-             y="38.728745"
-             x="131.08809"
-             ry="0.057158176"
-             rx="0.13241811"
-             height="23.316063"
-             width="41.968906" />
-          <rect
-             style="color:#000000;fill:#a9cddb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3827);enable-background:accumulate"
-             id="rect3264-3"
-             transform="matrix(0.11831558,0,0,0.11831558,123.81405,104.88057)"
-             y="9.9475983e-14"
-             x="0"
-             ry="0.057158176"
-             rx="0.13241811"
-             height="23.316063"
-             width="41.968906" />
-        </g>
-      </g>
-    </g>
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-  </g>
-  <g
-     id="g3499"
-     transform="matrix(8.4519723,0,0,8.4519723,-910.10149,-805.77385)"
-     style="filter:url(#filter3827)">
-    <g
-       style="filter:url(#filter3683-3)"
-       id="g1574"
-       transform="matrix(0.49605972,-0.13291888,0.13291888,0.49605972,123.52135,84.743061)">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:0.93443578;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
-         id="path2960"
-         transform="translate(-29.75546,19)"
-         d="m 17.34116,32.5 5.625,-5.625 20.093749,-9.75 c 3.25,-1.25 5.1875,3.375 2.3125,5 L 25.34116,31.5 l -8,1 z" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3550);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
-         id="path2964"
-         transform="translate(-29.75546,19)"
-         d="m 38.330708,20 c 0,0 1.4375,0.09375 2,1.34375 0.579493,1.287761 0,2.65625 0,2.65625 l 5.03125,-2.46875 c 0,0 1.452032,-0.881367 0.65625,-2.84375 -0.784912,-1.935577 -2.6875,-1.15625 -2.6875,-1.15625 l -5,2.46875 z" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3552);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
-         id="path2962"
-         transform="translate(-29.75546,19)"
-         d="m 38.330708,20 c 0,0 1.4375,0.09375 2,1.34375 0.579493,1.287761 0,2.65625 0,2.65625 l 2,-1 c 0,0 0.827032,-1.318867 0.21875,-2.6875 C 41.924458,18.90625 40.330708,19 40.330708,19 l -2,1 z" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3679);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
-         id="path2982"
-         transform="translate(-29.75546,19)"
-         d="m 18.768208,31.78125 4.5,-4.5 c 1.5,0.8125 2.28125,2.15625 1.875,3.71875 l -6.375,0.78125 z" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3556);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
-         id="path2992"
-         transform="translate(-29.75546,19)"
-         d="m 20.111958,30.375 -1.625,1.59375 2.34375,-0.3125 c 0.21875,-0.71875 -0.1875,-1.0625 -0.71875,-1.28125 z" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
-         id="path3002"
-         transform="translate(-29.75546,19)"
-         d="m 23.268208,27.25 1.5625,1.25 15.38734,-7.31867 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 Z" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
-         id="path3004"
-         transform="translate(-29.75546,19)"
-         d="m 25.143208,31.0625 0.1875,-0.75 15.23109,-7.1296 c 0,0 -0.11016,0.613627 -0.215879,0.74935 L 25.143208,31.0625 Z" />
-    </g>
-  </g>
-</svg>
Binary file libgui/src/icons/graphic_logo_WorkspaceView.png has changed
--- a/libgui/src/icons/graphic_logo_WorkspaceView.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1175 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         id="stop4544"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540"
-       xlink:href="#linearGradient259"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542"
-       xlink:href="#linearGradient269"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544"
-       xlink:href="#linearGradient15662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3556"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3554"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3552"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3550"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3548-0"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3546-5"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3544-8"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3542-6"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3540-4"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="radialGradient3417"
-       xlink:href="#aigrd3-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="radialGradient3415"
-       xlink:href="#aigrd2-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
-    <radialGradient
-       cx="8.1435566"
-       cy="7.2678967"
-       r="38.158695"
-       fx="8.1435566"
-       fy="7.2678967"
-       id="radialGradient3413"
-       xlink:href="#linearGradient15662-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="8.824419"
-       cy="3.7561285"
-       r="37.751713"
-       fx="8.824419"
-       fy="3.7561285"
-       id="radialGradient3411"
-       xlink:href="#linearGradient269-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
-    <radialGradient
-       cx="33.966679"
-       cy="35.736916"
-       r="86.70845"
-       fx="33.966679"
-       fy="35.736916"
-       id="radialGradient3409"
-       xlink:href="#linearGradient259-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(0.960493,1.041132)" />
-    <linearGradient
-       x1="25.71875"
-       y1="31.046875"
-       x2="25.514589"
-       y2="30.703125"
-       id="linearGradient3405"
-       xlink:href="#linearGradient2994-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.825542,0.125)" />
-    <radialGradient
-       cx="29.053354"
-       cy="27.640751"
-       r="3.2408545"
-       fx="29.053354"
-       fy="27.640751"
-       id="radialGradient3403"
-       xlink:href="#linearGradient2984"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
-    <linearGradient
-       x1="46"
-       y1="19.8125"
-       x2="47.6875"
-       y2="22.625"
-       id="linearGradient3401"
-       xlink:href="#linearGradient2974-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       x1="48.90625"
-       y1="17.376184"
-       x2="50.988335"
-       y2="22.250591"
-       id="linearGradient3399"
-       xlink:href="#linearGradient2966-9"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-5.669292,0)" />
-    <linearGradient
-       id="linearGradient5048-2">
-      <stop
-         id="stop5050-4"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-1"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542-3">
-      <stop
-         id="stop4544-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4546-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15662-2">
-      <stop
-         id="stop15664-5"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15666-8"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="64.567902"
-       r="5.257"
-       fx="20.892099"
-       fy="64.567902"
-       id="aigrd3-9"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15573-3"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15575-4"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="20.892099"
-       cy="114.5684"
-       r="5.256"
-       fx="20.892099"
-       fy="114.5684"
-       id="aigrd2-8"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop15566-1"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop15568-5"
-         style="stop-color:#9a9a9a;stop-opacity:1"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient269-7">
-      <stop
-         id="stop270-6"
-         style="stop-color:#a3a3a3;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop271-9"
-         style="stop-color:#4c4c4c;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient259-5">
-      <stop
-         id="stop260-8"
-         style="stop-color:#fafafa;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop261-0"
-         style="stop-color:#bbbbbb;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.306795"
-       cy="42.07798"
-       r="15.821514"
-       fx="24.306795"
-       fy="42.07798"
-       id="radialGradient4548-4"
-       xlink:href="#linearGradient4542-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
-    <linearGradient
-       id="linearGradient4440-9">
-      <stop
-         id="stop4442-2"
-         style="stop-color:#7d7d7d;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4448-4"
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop4444-9"
-         style="stop-color:#686868;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454-6">
-      <stop
-         id="stop4456-3"
-         style="stop-color:#729fcf;stop-opacity:0.20784314"
-         offset="0" />
-      <stop
-         id="stop4458-2"
-         style="stop-color:#729fcf;stop-opacity:0.6761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467-0">
-      <stop
-         id="stop4469-9"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4471-9"
-         style="stop-color:#ffffff;stop-opacity:0.24761905"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366-7">
-      <stop
-         id="stop2368-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2374-8"
-         style="stop-color:#ffffff;stop-opacity:0.21904762"
-         offset="0.5" />
-      <stop
-         id="stop2370-7"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846-2">
-      <stop
-         id="stop2848-1"
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2850-1"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966-9">
-      <stop
-         id="stop2968-2"
-         style="stop-color:#ffd1d1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3006-7"
-         style="stop-color:#ff1d1d;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop2970-1"
-         style="stop-color:#6f0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974-0">
-      <stop
-         id="stop2976-3"
-         style="stop-color:#c1c1c1;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2978-3"
-         style="stop-color:#acacac;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2984">
-      <stop
-         id="stop2986"
-         style="stop-color:#e7e2b8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2988"
-         style="stop-color:#e7e2b8;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2994-0">
-      <stop
-         id="stop2996-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2998-9"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient2996-4"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755-2">
-      <stop
-         id="stop3757-8"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759-9"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033-0"
-       xlink:href="#linearGradient3755-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3683">
-      <feColorMatrix
-         values="0"
-         type="saturate"
-         id="feColorMatrix3685" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835" />
-    </filter>
-    <radialGradient
-       cx="55"
-       cy="125"
-       r="14.375"
-       fx="55"
-       fy="125"
-       id="radialGradient1758"
-       xlink:href="#linearGradient12512"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient12512">
-      <stop
-         id="stop12513"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop12517"
-         style="stop-color:#fff520;stop-opacity:0.89108908"
-         offset="0.5" />
-      <stop
-         id="stop12514"
-         style="stop-color:#fff300;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       id="linearGradient9772"
-       xlink:href="#linearGradient9766"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="18.112709"
-       y1="31.36775"
-       x2="15.514889"
-       y2="6.1802502"
-       id="linearGradient3104"
-       xlink:href="#linearGradient3096"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="13.035696"
-       y1="32.567184"
-       x2="12.853771"
-       y2="46.689312"
-       id="linearGradient322"
-       xlink:href="#linearGradient319"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
-    <linearGradient
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053"
-       id="linearGradient491"
-       xlink:href="#linearGradient3983"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         id="stop3984"
-         style="stop-color:#ffffff;stop-opacity:0.87628865"
-         offset="0" />
-      <stop
-         id="stop3985"
-         style="stop-color:#fffffe;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="20.706017"
-       cy="37.517986"
-       r="30.905205"
-       fx="20.706017"
-       fy="37.517986"
-       id="radialGradient238"
-       xlink:href="#linearGradient1789"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         id="stop1790"
-         style="stop-color:#202020;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1791"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319">
-      <stop
-         id="stop320"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop321"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         style="stop-color:#424242;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3100"
-         style="stop-color:#777777;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         id="stop9768"
-         style="stop-color:#6194cb;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop9770"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507"
-       id="linearGradient5027"
-       xlink:href="#linearGradient5048-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
-    <linearGradient
-       id="linearGradient5048-8">
-      <stop
-         id="stop5050-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop5056-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop5052-2"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5029"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
-    <linearGradient
-       id="linearGradient5060">
-      <stop
-         id="stop5062"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5064"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="605.71429"
-       cy="486.64789"
-       r="117.14286"
-       fx="605.71429"
-       fy="486.64789"
-       id="radialGradient5031"
-       xlink:href="#linearGradient5060"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827-2">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829-1" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831-3" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833-2" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835-8" />
-    </filter>
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3827-6">
-      <feColorMatrix
-         result="result1"
-         values="0"
-         type="saturate"
-         id="feColorMatrix3829-7" />
-      <feFlood
-         result="result2"
-         flood-color="rgb(9,111,152)"
-         id="feFlood3831-1" />
-      <feBlend
-         in2="result1"
-         mode="screen"
-         result="result2"
-         id="feBlend3833-9" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         in="result2"
-         id="feComposite3835-3" />
-    </filter>
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <g
-       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
-       id="g2679">
-      <g
-         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
-         id="g3025-4">
-        <g
-           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
-           id="layer1"
-           style="display:inline">
-          <path
-             d="m 11.505723,5.4942766 0,37.9065924"
-             id="path15672"
-             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
-        </g>
-        <g
-           id="g3786"
-           style="filter:url(#filter3827)">
-          <rect
-             width="4.349854"
-             height="4.349854"
-             rx="0.76958966"
-             ry="0.76958966"
-             x="85.381561"
-             y="99.493881"
-             transform="translate(47.719063,1.6625723)"
-             id="rect5876"
-             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-          <rect
-             width="34.875"
-             height="40.920494"
-             rx="1.1449448"
-             ry="1.1468204"
-             x="6.6035528"
-             y="3.6464462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15391"
-             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="32.775887"
-             height="38.946384"
-             rx="0.14851625"
-             ry="0.14875954"
-             x="7.6660538"
-             y="4.5839462"
-             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
-             id="rect15660"
-             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="17.013876"
-             height="0.77373642"
-             rx="0.11721393"
-             ry="0.050595302"
-             x="122.39634"
-             y="98.939804"
-             id="rect15688"
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="17.013876"
-             height="0.77373642"
-             rx="0.11721393"
-             ry="0.050595302"
-             x="122.39634"
-             y="103.58221"
-             id="rect15694"
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="17.013876"
-             height="0.77373642"
-             rx="0.11721393"
-             ry="0.050595302"
-             x="122.39634"
-             y="108.22463"
-             id="rect15700"
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="17.013876"
-             height="0.77373642"
-             rx="0.11721393"
-             ry="0.050595302"
-             x="122.39633"
-             y="112.86707"
-             id="rect15736"
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          <rect
-             width="17.013876"
-             height="0.77373642"
-             rx="0.11721393"
-             ry="0.050595302"
-             x="122.39633"
-             y="117.50946"
-             id="rect15742"
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
-          <g
-             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
-             id="g4142">
-            <g
-               id="layer1-4" />
-            <g
-               id="layer2" />
-          </g>
-          <rect
-             width="143.80081"
-             height="6.5395989"
-             rx="0.99068886"
-             ry="0.4276301"
-             x="0"
-             y="0"
-             transform="matrix(0,-0.13366266,0.13366266,0,122.36549,118.26113)"
-             id="rect15688-8"
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827)" />
-          <rect
-             width="143.80081"
-             height="6.5395989"
-             rx="0.99068886"
-             ry="0.4276301"
-             x="0"
-             y="0"
-             transform="matrix(0,-0.13366266,0.13366266,0,129.23148,118.19983)"
-             id="rect15688-8-0"
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827-2)" />
-          <rect
-             width="143.80081"
-             height="6.5395989"
-             rx="0.99068886"
-             ry="0.4276301"
-             x="0"
-             y="0"
-             transform="matrix(0,-0.13366266,0.13366266,0,138.48828,118.19983)"
-             id="rect15688-8-3"
-             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827-6)" />
-          <text
-             x="148.18652"
-             y="64.117348"
-             transform="matrix(0.11831558,0,0,0.11831558,108.27363,95.669952)"
-             id="text3260"
-             xml:space="preserve"
-             style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"><tspan
-               x="148.18652"
-               y="64.117348"
-               id="tspan3262"
-               style="font-size:32px;font-weight:bold;-inkscape-font-specification:Sans Bold" /></text>
-          <rect
-             width="41.968906"
-             height="23.316063"
-             rx="0.13241811"
-             ry="0.057158176"
-             x="131.08809"
-             y="38.728745"
-             transform="matrix(0.11831558,0,0,0.11831558,108.27363,95.669952)"
-             id="rect3264"
-             style="color:#000000;fill:#a9cddb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <rect
-             width="41.968906"
-             height="23.316063"
-             rx="0.13241811"
-             ry="0.057158176"
-             x="0"
-             y="9.9475983e-14"
-             transform="matrix(0.11831558,0,0,0.11831558,123.81405,104.88057)"
-             id="rect3264-3"
-             style="color:#000000;fill:#a9cddb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3827);enable-background:accumulate" />
-        </g>
-      </g>
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-  </g>
-</svg>
Binary file libgui/src/icons/hand2.png has changed
--- a/libgui/src/icons/icons_license	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-===========================================
-Icons based on the Tango-Desktop-Project
-===========================================
-
-Tango-Desktop-Project:
-http://tango.freedesktop.org/Tango_Desktop_Project
-
-Archive with base icon set available at:
-http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz
-
-License
-===========================================
-
-The Tango base icon theme is released to the Public Domain.
-
-Icons used for Octave
-===========================================
-
-applications-system.svg
-bookmark-new.svg
-dialog-error.svg
-dialog-information.svg
-dialog-warning.svg
-document-new.svg
-document-open.svg
-document-print.svg
-document-save.svg
-document-save-as.svg
-edit-copy.svg
-edit-cut.svg
-edit-delete.svg
-edit-find.svg
-edit-find-replace.svg
-edit-paste.svg
-edit-redo.svg
-edit-undo.svg
-figure-rotate.svg           (original file view-refresh.svg)
-figure-text.svg             (original file font-x-generic.svg)
-figure-zoom-in.svg          (original file view-zoom-in.svg)
-figure-zoom-original.svg    (original file view-zoom-original.svg)
-figure-zoom-out.svg         (original file view-zoom-out.svg)
-folder.svg
-folder-new.svg
-go-down.svg
-go-first.svg
-go-home.svg
-go-last.svg
-go-next.svg
-go-previous.svg
-go-up.svg
-preferences-system.svg
-user-home.svg
-view-refresh.svg
-view-refresh.svg
-
-===========================================
-Icons created by the Octave developers
-===========================================
-
-figure-axes.svg
-figure-grid.svg
-logo.png
-widget-close.svg
-widget-dock.svg
-widget-undock.svg
-
-Icons with elements from the Tango theme
-===========================================
-
-figure-pan.svg
-graphic_logo_DocumentationDockWidget.svg
-graphic_logo_Figure.svg
-graphic_logo_FileEditor.svg
-graphic_logo_FilesDockWidget.svg
-graphic_logo_HistoryDockWidget.svg
-graphic_logo_NewsDockWidget.svg
-graphic_logo_ReleaseWidget.svg
-graphic_logo_TerminalDockWidget.svg
-graphic_logo_WorkspaceView.svg
-letter_logo_DocumentationDockWidget.svg
-letter_logo_FileEditor.svg
-letter_logo_FilesDockWidget.svg
-letter_logo_HistoryDockWidget.svg
-letter_logo_NewsDockWidget.svg
-letter_logo_ReleaseWidget.svg
-letter_logo_TerminalDockWidget.svg
-letter_logo_WorkspaceView.svg
-
-bp-next.svg
-bp-prev.svg
-bp-rm_all.svg
-bp-toggle.svg
-db-cont.svg
-db-step-in.svg
-db-step-out.svg
-db-step.svg
-db-stop.svg
-plot-xy-curve.svg
-system-run.svg
-
-Cursors from the standard DMZ theme
-===================================
-
-https://github.com/GalliumOS/dmz-cursor-theme/tree/master/DMZ-White
-
-bottom_left_corner.png
-bottom_right_corner.png
-bottom_side.png
-cross.png
-fleur.png
-hand2.png
-left_side.png
-right_side.png
-top_left_corner.png
-top_right_corner.png
-top_side.png
-
-Cursor created by the Octave developers
-with elements from the DMZ theme:
-
-circle.png
-circle.svg
Binary file libgui/src/icons/left_side.png has changed
Binary file libgui/src/icons/letter_logo_DocumentationDockWidget.png has changed
--- a/libgui/src/icons/letter_logo_DocumentationDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,363 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="letter_logo_DocumentationDockWidget.svg">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1196"
-     inkscape:window-height="608"
-     id="namedview2940"
-     showgrid="false"
-     inkscape:zoom="2.603563"
-     inkscape:cx="83.87534"
-     inkscape:cy="177.60974"
-     inkscape:window-x="84"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3025" />
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:0;"
-         offset="0"
-         id="stop3872" />
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:1;"
-         offset="1"
-         id="stop3874" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       cx="182.9837"
-       cy="395.04871"
-       fx="182.9837"
-       fy="395.04871"
-       r="148.95309" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2996" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#c1c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#acacac;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         style="stop-color:#ffd1d1;stop-opacity:1;"
-         offset="0"
-         id="stop2968" />
-      <stop
-         id="stop3006"
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6f0000;stop-opacity:1;"
-         offset="1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       r="15.821514"
-       fy="42.07798"
-       fx="24.306795"
-       cy="42.07798"
-       cx="24.306795"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542"
-       inkscape:collect="always">
-      <stop
-         id="stop4544"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4546"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         offset="0"
-         style="stop-color:black;stop-opacity:0;" />
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0.5"
-         id="stop5056" />
-      <stop
-         id="stop5052"
-         offset="1"
-         style="stop-color:black;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective144"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       id="path3081"
-       inkscape:connector-curvature="0"
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5876"
-       y="99.493881"
-       x="85.381561"
-       ry="0.76958966"
-       rx="0.76958966"
-       height="4.349854"
-       width="4.349854" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-    <text
-       xml:space="preserve"
-       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-       x="73.396858"
-       y="116.86329"
-       id="text3882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3884"
-         x="73.396858"
-         y="116.86329"
-         style="font-size:17.03744315999999870px;font-style:normal;font-weight:bold;fill:#d45500;fill-opacity:1;stroke:none;-inkscape-font-specification:DejaVu Sans Bold;font-family:DejaVu Sans;font-stretch:normal;font-variant:normal">D</tspan></text>
-  </g>
-</svg>
Binary file libgui/src/icons/letter_logo_FileEditor.png has changed
--- a/libgui/src/icons/letter_logo_FileEditor.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,375 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="letter_logo_FileDockWidget.svg">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1196"
-     inkscape:window-height="608"
-     id="namedview2940"
-     showgrid="false"
-     inkscape:zoom="1.4648618"
-     inkscape:cx="138.6918"
-     inkscape:cy="177.60974"
-     inkscape:window-x="84"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3025" />
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:0;"
-         offset="0"
-         id="stop3872" />
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:1;"
-         offset="1"
-         id="stop3874" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       cx="182.9837"
-       cy="395.04871"
-       fx="182.9837"
-       fy="395.04871"
-       r="148.95309" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2996" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#c1c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#acacac;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         style="stop-color:#ffd1d1;stop-opacity:1;"
-         offset="0"
-         id="stop2968" />
-      <stop
-         id="stop3006"
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6f0000;stop-opacity:1;"
-         offset="1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       r="15.821514"
-       fy="42.07798"
-       fx="24.306795"
-       cy="42.07798"
-       cx="24.306795"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542"
-       inkscape:collect="always">
-      <stop
-         id="stop4544"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4546"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         offset="0"
-         style="stop-color:black;stop-opacity:0;" />
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0.5"
-         id="stop5056" />
-      <stop
-         id="stop5052"
-         offset="1"
-         style="stop-color:black;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective144"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       id="path3081"
-       inkscape:connector-curvature="0"
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5876"
-       y="99.493881"
-       x="85.381561"
-       ry="0.76958966"
-       rx="0.76958966"
-       height="4.349854"
-       width="4.349854" />
-    <g
-       style="display:inline"
-       inkscape:label="Base"
-       id="layer1"
-       transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)">
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
-         d="m 11.505723,5.4942766 0,37.9065924"
-         id="path15672"
-         sodipodi:nodetypes="cc" />
-    </g>
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-    <text
-       xml:space="preserve"
-       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-       x="73.396858"
-       y="116.86329"
-       id="text3882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3884"
-         x="73.396858"
-         y="116.86329"
-         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">E</tspan></text>
-  </g>
-</svg>
Binary file libgui/src/icons/letter_logo_FilesDockWidget.png has changed
--- a/libgui/src/icons/letter_logo_FilesDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,375 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="letter_logo_WorkspaceDockWidget.svg">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1196"
-     inkscape:window-height="608"
-     id="namedview2940"
-     showgrid="false"
-     inkscape:zoom="1.4648618"
-     inkscape:cx="138.6918"
-     inkscape:cy="177.60974"
-     inkscape:window-x="84"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3025" />
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:0;"
-         offset="0"
-         id="stop3872" />
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:1;"
-         offset="1"
-         id="stop3874" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       cx="182.9837"
-       cy="395.04871"
-       fx="182.9837"
-       fy="395.04871"
-       r="148.95309" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2996" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#c1c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#acacac;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         style="stop-color:#ffd1d1;stop-opacity:1;"
-         offset="0"
-         id="stop2968" />
-      <stop
-         id="stop3006"
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6f0000;stop-opacity:1;"
-         offset="1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       r="15.821514"
-       fy="42.07798"
-       fx="24.306795"
-       cy="42.07798"
-       cx="24.306795"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542"
-       inkscape:collect="always">
-      <stop
-         id="stop4544"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4546"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         offset="0"
-         style="stop-color:black;stop-opacity:0;" />
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0.5"
-         id="stop5056" />
-      <stop
-         id="stop5052"
-         offset="1"
-         style="stop-color:black;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective144"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       id="path3081"
-       inkscape:connector-curvature="0"
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5876"
-       y="99.493881"
-       x="85.381561"
-       ry="0.76958966"
-       rx="0.76958966"
-       height="4.349854"
-       width="4.349854" />
-    <g
-       style="display:inline"
-       inkscape:label="Base"
-       id="layer1"
-       transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)">
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
-         d="m 11.505723,5.4942766 0,37.9065924"
-         id="path15672"
-         sodipodi:nodetypes="cc" />
-    </g>
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-    <text
-       xml:space="preserve"
-       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-       x="73.396858"
-       y="116.86329"
-       id="text3882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3884"
-         x="73.396858"
-         y="116.86329"
-         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">F</tspan></text>
-  </g>
-</svg>
Binary file libgui/src/icons/letter_logo_HistoryDockWidget.png has changed
--- a/libgui/src/icons/letter_logo_HistoryDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,363 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="letter_logo_HistoryDockWidget.svg">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1196"
-     inkscape:window-height="608"
-     id="namedview2940"
-     showgrid="false"
-     inkscape:zoom="2.603563"
-     inkscape:cx="-14.065134"
-     inkscape:cy="177.60974"
-     inkscape:window-x="84"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3025" />
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:0;"
-         offset="0"
-         id="stop3872" />
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:1;"
-         offset="1"
-         id="stop3874" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       cx="182.9837"
-       cy="395.04871"
-       fx="182.9837"
-       fy="395.04871"
-       r="148.95309" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2996" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#c1c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#acacac;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         style="stop-color:#ffd1d1;stop-opacity:1;"
-         offset="0"
-         id="stop2968" />
-      <stop
-         id="stop3006"
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6f0000;stop-opacity:1;"
-         offset="1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       r="15.821514"
-       fy="42.07798"
-       fx="24.306795"
-       cy="42.07798"
-       cx="24.306795"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542"
-       inkscape:collect="always">
-      <stop
-         id="stop4544"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4546"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         offset="0"
-         style="stop-color:black;stop-opacity:0;" />
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0.5"
-         id="stop5056" />
-      <stop
-         id="stop5052"
-         offset="1"
-         style="stop-color:black;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective144"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       id="path3081"
-       inkscape:connector-curvature="0"
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5876"
-       y="99.493881"
-       x="85.381561"
-       ry="0.76958966"
-       rx="0.76958966"
-       height="4.349854"
-       width="4.349854" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-    <text
-       xml:space="preserve"
-       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-       x="73.396858"
-       y="116.86329"
-       id="text3882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3884"
-         x="73.396858"
-         y="116.86329"
-         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">H</tspan></text>
-  </g>
-</svg>
Binary file libgui/src/icons/letter_logo_NewsDockWidget.png has changed
--- a/libgui/src/icons/letter_logo_NewsDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,363 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="letter_logo_NewsDockWidget.svg">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1196"
-     inkscape:window-height="608"
-     id="namedview2940"
-     showgrid="false"
-     inkscape:zoom="1.5021831"
-     inkscape:cx="138.6918"
-     inkscape:cy="177.60974"
-     inkscape:window-x="84"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3025" />
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:0;"
-         offset="0"
-         id="stop3872" />
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:1;"
-         offset="1"
-         id="stop3874" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       cx="182.9837"
-       cy="395.04871"
-       fx="182.9837"
-       fy="395.04871"
-       r="148.95309" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2996" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#c1c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#acacac;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         style="stop-color:#ffd1d1;stop-opacity:1;"
-         offset="0"
-         id="stop2968" />
-      <stop
-         id="stop3006"
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6f0000;stop-opacity:1;"
-         offset="1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       r="15.821514"
-       fy="42.07798"
-       fx="24.306795"
-       cy="42.07798"
-       cx="24.306795"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542"
-       inkscape:collect="always">
-      <stop
-         id="stop4544"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4546"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         offset="0"
-         style="stop-color:black;stop-opacity:0;" />
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0.5"
-         id="stop5056" />
-      <stop
-         id="stop5052"
-         offset="1"
-         style="stop-color:black;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective144"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       id="path3081"
-       inkscape:connector-curvature="0"
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5876"
-       y="99.493881"
-       x="85.381561"
-       ry="0.76958966"
-       rx="0.76958966"
-       height="4.349854"
-       width="4.349854" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-    <text
-       xml:space="preserve"
-       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-       x="73.396858"
-       y="116.86329"
-       id="text3882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3884"
-         x="73.396858"
-         y="116.86329"
-         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">N</tspan></text>
-  </g>
-</svg>
Binary file libgui/src/icons/letter_logo_ReleaseWidget.png has changed
--- a/libgui/src/icons/letter_logo_ReleaseWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,363 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="letter_logo_ReleaseWidget.svg">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1196"
-     inkscape:window-height="608"
-     id="namedview2940"
-     showgrid="false"
-     inkscape:zoom="1.4648618"
-     inkscape:cx="138.6918"
-     inkscape:cy="177.60974"
-     inkscape:window-x="84"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3025" />
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:0;"
-         offset="0"
-         id="stop3872" />
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:1;"
-         offset="1"
-         id="stop3874" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       cx="182.9837"
-       cy="395.04871"
-       fx="182.9837"
-       fy="395.04871"
-       r="148.95309" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2996" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#c1c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#acacac;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         style="stop-color:#ffd1d1;stop-opacity:1;"
-         offset="0"
-         id="stop2968" />
-      <stop
-         id="stop3006"
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6f0000;stop-opacity:1;"
-         offset="1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       r="15.821514"
-       fy="42.07798"
-       fx="24.306795"
-       cy="42.07798"
-       cx="24.306795"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542"
-       inkscape:collect="always">
-      <stop
-         id="stop4544"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4546"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         offset="0"
-         style="stop-color:black;stop-opacity:0;" />
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0.5"
-         id="stop5056" />
-      <stop
-         id="stop5052"
-         offset="1"
-         style="stop-color:black;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective144"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       id="path3081"
-       inkscape:connector-curvature="0"
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5876"
-       y="99.493881"
-       x="85.381561"
-       ry="0.76958966"
-       rx="0.76958966"
-       height="4.349854"
-       width="4.349854" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-    <text
-       xml:space="preserve"
-       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-       x="73.396858"
-       y="116.86329"
-       id="text3882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3884"
-         x="73.396858"
-         y="116.86329"
-         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">R</tspan></text>
-  </g>
-</svg>
Binary file libgui/src/icons/letter_logo_TerminalDockWidget.png has changed
--- a/libgui/src/icons/letter_logo_TerminalDockWidget.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,363 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="letter_logo_TerminalDockWidget.svg">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1196"
-     inkscape:window-height="608"
-     id="namedview2940"
-     showgrid="false"
-     inkscape:zoom="2.603563"
-     inkscape:cx="85.535348"
-     inkscape:cy="177.60974"
-     inkscape:window-x="84"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3025" />
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:0;"
-         offset="0"
-         id="stop3872" />
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:1;"
-         offset="1"
-         id="stop3874" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       cx="182.9837"
-       cy="395.04871"
-       fx="182.9837"
-       fy="395.04871"
-       r="148.95309" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2996" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#c1c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#acacac;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         style="stop-color:#ffd1d1;stop-opacity:1;"
-         offset="0"
-         id="stop2968" />
-      <stop
-         id="stop3006"
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6f0000;stop-opacity:1;"
-         offset="1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       r="15.821514"
-       fy="42.07798"
-       fx="24.306795"
-       cy="42.07798"
-       cx="24.306795"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542"
-       inkscape:collect="always">
-      <stop
-         id="stop4544"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4546"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         offset="0"
-         style="stop-color:black;stop-opacity:0;" />
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0.5"
-         id="stop5056" />
-      <stop
-         id="stop5052"
-         offset="1"
-         style="stop-color:black;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective144"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       id="path3081"
-       inkscape:connector-curvature="0"
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5876"
-       y="99.493881"
-       x="85.381561"
-       ry="0.76958966"
-       rx="0.76958966"
-       height="4.349854"
-       width="4.349854" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-    <text
-       xml:space="preserve"
-       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-       x="73.396858"
-       y="116.86329"
-       id="text3882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3884"
-         x="73.396858"
-         y="116.86329"
-         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">C</tspan></text>
-  </g>
-</svg>
Binary file libgui/src/icons/letter_logo_VariableEditor.png has changed
--- a/libgui/src/icons/letter_logo_VariableEditor.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,332 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   id="svg2872"
-   height="283.28833"
-   width="283.28912"
-   version="1.1">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         id="stop3872"
-         offset="0"
-         style="stop-color:#ebebeb;stop-opacity:0;" />
-      <stop
-         id="stop3874"
-         offset="1"
-         style="stop-color:#ebebeb;stop-opacity:1;" />
-    </linearGradient>
-    <radialGradient
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)"
-       gradientUnits="userSpaceOnUse"
-       xlink:href="#linearGradient3755"
-       id="radialGradient3033"
-       fy="395.04871"
-       fx="182.9837"
-       r="148.95309"
-       cy="395.04871"
-       cx="182.9837" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         offset="0"
-         style="stop-color:#008cbe;stop-opacity:1"
-         id="stop3757" />
-      <stop
-         offset="1"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         id="stop3759" />
-    </linearGradient>
-    <radialGradient
-       r="148.95309"
-       fy="395.04871"
-       fx="182.9837"
-       cy="395.04871"
-       cx="182.9837"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient2996"
-       xlink:href="#linearGradient3755" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         id="stop2996"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2998"
-         offset="1"
-         style="stop-color:#c9c9c9;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         id="stop2976"
-         offset="0"
-         style="stop-color:#c1c1c1;stop-opacity:1;" />
-      <stop
-         id="stop2978"
-         offset="1"
-         style="stop-color:#acacac;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         id="stop2968"
-         offset="0"
-         style="stop-color:#ffd1d1;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ff1d1d;stop-opacity:1;"
-         offset="0.5"
-         id="stop3006" />
-      <stop
-         id="stop2970"
-         offset="1"
-         style="stop-color:#6f0000;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop2848" />
-      <stop
-         style="stop-color:#484848;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2850" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2368" />
-      <stop
-         id="stop2374"
-         offset="0.50000000"
-         style="stop-color:#ffffff;stop-opacity:0.21904762;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop2370" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         id="stop4469"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop4471"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.24761905;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         id="stop4456"
-         offset="0.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.20784314;" />
-      <stop
-         id="stop4458"
-         offset="1.0000000"
-         style="stop-color:#729fcf;stop-opacity:0.67619050;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         id="stop4442"
-         offset="0"
-         style="stop-color:#7d7d7d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
-         offset="0.50000000"
-         id="stop4448" />
-      <stop
-         id="stop4444"
-         offset="1.0000000"
-         style="stop-color:#686868;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <radialGradient
-       xlink:href="#linearGradient4542"
-       id="radialGradient4548"
-       cx="24.306795"
-       cy="42.07798"
-       fx="24.306795"
-       fy="42.07798"
-       r="15.821514"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         id="stop260"
-         offset="0.0000000"
-         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
-      <stop
-         id="stop261"
-         offset="1.0000000"
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         id="stop270"
-         offset="0.0000000"
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
-      <stop
-         id="stop271"
-         offset="1.0000000"
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <radialGradient
-       id="aigrd2"
-       cx="20.8921"
-       cy="114.5684"
-       r="5.256"
-       fx="20.8921"
-       fy="114.5684"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         offset="0"
-         style="stop-color:#F0F0F0"
-         id="stop15566" />
-      <stop
-         offset="1.0000000"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         id="stop15568" />
-    </radialGradient>
-    <radialGradient
-       id="aigrd3"
-       cx="20.8921"
-       cy="64.5679"
-       r="5.257"
-       fx="20.8921"
-       fy="64.5679"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         offset="0"
-         style="stop-color:#F0F0F0"
-         id="stop15573" />
-      <stop
-         offset="1.0000000"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         id="stop15575" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         id="stop15664"
-         offset="0.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-      <stop
-         id="stop15666"
-         offset="1.0000000"
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4544" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4546" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-  </defs>
-  <g
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
-     id="g3025">
-    <path
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)"
-       id="path3081"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-    <path
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
-       id="path5874"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
-    <rect
-       width="4.349854"
-       height="4.349854"
-       rx="0.76958966"
-       ry="0.76958966"
-       x="85.381561"
-       y="99.493881"
-       id="rect5876"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <g
-       transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
-       id="layer1"
-       style="display:inline">
-      <path
-         id="path15672"
-         d="m 11.505723,5.4942766 0,37.9065924"
-         style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
-    </g>
-    <rect
-       width="10.245436"
-       height="10.245436"
-       rx="1.8126545"
-       ry="1.8126545"
-       x="60.92659"
-       y="105.2245"
-       id="rect5878"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <rect
-       width="6.1897531"
-       height="6.1897531"
-       rx="1.0951102"
-       ry="1.0951102"
-       x="87.404739"
-       y="118.63705"
-       id="rect5880"
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
-    <text
-       id="text3882"
-       y="116.86329"
-       x="72.797432"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.83957386px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none"
-       xml:space="preserve"><tspan
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.03744316px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans Bold';fill:#d45500;fill-opacity:1;stroke:none"
-         y="116.86329"
-         x="72.797432"
-         id="tspan3884">V</tspan></text>
-  </g>
-</svg>
Binary file libgui/src/icons/letter_logo_WorkspaceView.png has changed
--- a/libgui/src/icons/letter_logo_WorkspaceView.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,375 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="283.28912"
-   height="283.28833"
-   id="svg2872"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="letter_logo_HistoryDockWidget.svg">
-  <metadata
-     id="metadata2942">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1196"
-     inkscape:window-height="608"
-     id="namedview2940"
-     showgrid="false"
-     inkscape:zoom="1.4648618"
-     inkscape:cx="138.6918"
-     inkscape:cy="177.60974"
-     inkscape:window-x="84"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3025" />
-  <defs
-     id="defs2874">
-    <linearGradient
-       id="linearGradient3870">
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:0;"
-         offset="0"
-         id="stop3872" />
-      <stop
-         style="stop-color:#ebebeb;stop-opacity:1;"
-         offset="1"
-         id="stop3874" />
-    </linearGradient>
-    <radialGradient
-       cx="182.9837"
-       cy="395.04871"
-       r="148.95309"
-       fx="182.9837"
-       fy="395.04871"
-       id="radialGradient3033"
-       xlink:href="#linearGradient3755"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
-    <linearGradient
-       id="linearGradient3755">
-      <stop
-         id="stop3757"
-         style="stop-color:#008cbe;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3759"
-         style="stop-color:#b2ffff;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3755"
-       id="radialGradient2996"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
-       cx="182.9837"
-       cy="395.04871"
-       fx="182.9837"
-       fy="395.04871"
-       r="148.95309" />
-    <linearGradient
-       id="linearGradient2994">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2996" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1;"
-         offset="1"
-         id="stop2998" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#c1c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#acacac;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2966">
-      <stop
-         style="stop-color:#ffd1d1;stop-opacity:1;"
-         offset="0"
-         id="stop2968" />
-      <stop
-         id="stop3006"
-         offset="0.5"
-         style="stop-color:#ff1d1d;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6f0000;stop-opacity:1;"
-         offset="1"
-         id="stop2970" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2846">
-      <stop
-         id="stop2848"
-         offset="0.0000000"
-         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
-      <stop
-         id="stop2850"
-         offset="1.0000000"
-         style="stop-color:#484848;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2366">
-      <stop
-         id="stop2368"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.21904762;"
-         offset="0.50000000"
-         id="stop2374" />
-      <stop
-         id="stop2370"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4467">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop4469" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.24761905;"
-         offset="1.0000000"
-         id="stop4471" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4454">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.20784314;"
-         offset="0.0000000"
-         id="stop4456" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:0.67619050;"
-         offset="1.0000000"
-         id="stop4458" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4440">
-      <stop
-         style="stop-color:#7d7d7d;stop-opacity:1;"
-         offset="0"
-         id="stop4442" />
-      <stop
-         id="stop4448"
-         offset="0.50000000"
-         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
-      <stop
-         style="stop-color:#686868;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4444" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
-       r="15.821514"
-       fy="42.07798"
-       fx="24.306795"
-       cy="42.07798"
-       cx="24.306795"
-       id="radialGradient4548"
-       xlink:href="#linearGradient4542"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient259">
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop260" />
-      <stop
-         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient269">
-      <stop
-         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop270" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop271" />
-    </linearGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="114.5684"
-       fx="20.8921"
-       r="5.256"
-       cy="114.5684"
-       cx="20.8921"
-       id="aigrd2">
-      <stop
-         id="stop15566"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15568"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       fy="64.5679"
-       fx="20.8921"
-       r="5.257"
-       cy="64.5679"
-       cx="20.8921"
-       id="aigrd3">
-      <stop
-         id="stop15573"
-         style="stop-color:#F0F0F0"
-         offset="0" />
-      <stop
-         id="stop15575"
-         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
-         offset="1.0000000" />
-    </radialGradient>
-    <linearGradient
-       id="linearGradient15662">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop15664" />
-      <stop
-         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop15666" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4542"
-       inkscape:collect="always">
-      <stop
-         id="stop4544"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop4546"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         id="stop5050"
-         offset="0"
-         style="stop-color:black;stop-opacity:0;" />
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0.5"
-         id="stop5056" />
-      <stop
-         id="stop5052"
-         offset="1"
-         style="stop-color:black;stop-opacity:0;" />
-    </linearGradient>
-    <inkscape:perspective
-       id="perspective144"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 24 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <g
-     id="g3025"
-     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
-    <path
-       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
-       id="path3081"
-       inkscape:connector-curvature="0"
-       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
-       id="path5874"
-       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5876"
-       y="99.493881"
-       x="85.381561"
-       ry="0.76958966"
-       rx="0.76958966"
-       height="4.349854"
-       width="4.349854" />
-    <g
-       style="display:inline"
-       inkscape:label="Base"
-       id="layer1"
-       transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)">
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
-         d="m 11.505723,5.4942766 0,37.9065924"
-         id="path15672"
-         sodipodi:nodetypes="cc" />
-    </g>
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5878"
-       y="105.2245"
-       x="60.92659"
-       ry="1.8126545"
-       rx="1.8126545"
-       height="10.245436"
-       width="10.245436" />
-    <rect
-       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5880"
-       y="118.63705"
-       x="87.404739"
-       ry="1.0951102"
-       rx="1.0951102"
-       height="6.1897531"
-       width="6.1897531" />
-    <text
-       xml:space="preserve"
-       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
-       x="71.377632"
-       y="116.86329"
-       id="text3882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3884"
-         x="71.377632"
-         y="116.86329"
-         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">W</tspan></text>
-  </g>
-</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/license.md	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,137 @@
+# Icons for Octave
+
+## Icons based on the Tango-Desktop-Project
+
+The icons in the directory **tango** are taken from the Tango-Desktop-Projekt
+
+- [Tango-Desktop-Project](http://tango.freedesktop.org/Tango_Desktop_Project)
+- [Archive with base icon set](http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz)
+
+The Tango base icon theme is released to the Public Domain.
+
+The following icons excusively used by octave are created by the
+Octave developers using elements of the tango icon theme:
+
+- bp-next
+- bp-prev
+- bp-rm_all
+- bp-toggle
+- db-cont
+- db-step-in
+- db-step-out
+- db-step
+- db-stop
+- system-run
+
+
+## Icons by Octave developers
+
+The icons in the directory **octave** are created by the Octave developers.
+
+### Icons by Luís Eduardo Ribeiro Guerra
+
+The icons are maintained in this
+[repository on github](https://github.com/luisrguerra/cc0-fluent-icons)
+under the CC0 1.0 Universal license.
+
+- applications-system
+- bookmark-new
+- bp-next
+- bp-prev
+- bp-rm-all
+- bp-toggle
+- db-cont
+- db-step-in
+- db-step-out
+- db-step
+- db-stop
+- dialog-error
+- dialog-information
+- document-new
+- document-open
+- document-print
+- document-save-as
+- document-save
+- edit-copy
+- edit-cut
+- edit-find-replace
+- edit-find
+- edit-paste
+- edit-redo
+- edit-undo
+- folder-new
+- figure-axes
+- figure-grid
+- figure-pan
+- figure-rotate
+- figure-text
+- figure-zoom-in
+- figure-zoom-original
+- figure-zoom-out
+- folder-settings
+- folder-up
+- folder
+- go-down
+- go-first
+- go-home
+- go-last
+- go-next
+- go-previous
+- go-up
+- system-run
+- user-home
+- view-zoom-in
+- view-zoom-out
+- view-zoom-original
+
+### Icons containing elements from the Tango theme
+
+- graphic_logo_DocumentationDockWidget
+- graphic_logo_Figure
+- graphic_logo_FileEditor
+- graphic_logo_FilesDockWidget
+- graphic_logo_HistoryDockWidget
+- graphic_logo_NewsDockWidget
+- graphic_logo_ReleaseWidget
+- graphic_logo_TerminalDockWidget
+- graphic_logo_WorkspaceView
+- letter_logo_DocumentationDockWidget
+- letter_logo_FileEditor
+- letter_logo_FilesDockWidget
+- letter_logo_HistoryDockWidget
+- letter_logo_NewsDockWidget
+- letter_logo_ReleaseWidget
+- letter_logo_TerminalDockWidget
+- letter_logo_WorkspaceView
+- plot-xy-curve
+
+### Icons created independently
+
+- logo
+- widget-close
+- widget-dock
+- widget-undock
+
+
+## Cursor icons
+
+The directory **cursors** contains cursor icons required by Octave.
+The following cursors are taken from the [standrad DMZ theme](https://github.com/GalliumOS/dmz-cursor-theme/tree/master/DMZ-White):
+
+- bottom_left_corner
+- bottom_right_corner
+- bottom_side
+- cross
+- fleur
+- hand2
+- left_side
+- right_side
+- top_left_corner
+- top_right_corner
+- top_side
+
+## Cursor created by the Octave developers
+
+The following cursors are created by the Octave developers with elements from the DMZ theme:
+
+- circle
Binary file libgui/src/icons/logo.png has changed
Binary file libgui/src/icons/octave/128x128/applications-system.png has changed
Binary file libgui/src/icons/octave/128x128/bookmark-new.png has changed
Binary file libgui/src/icons/octave/128x128/bp-next.png has changed
Binary file libgui/src/icons/octave/128x128/bp-prev.png has changed
Binary file libgui/src/icons/octave/128x128/bp-rm-all.png has changed
Binary file libgui/src/icons/octave/128x128/bp-toggle.png has changed
Binary file libgui/src/icons/octave/128x128/db-cont.png has changed
Binary file libgui/src/icons/octave/128x128/db-step-in.png has changed
Binary file libgui/src/icons/octave/128x128/db-step-out.png has changed
Binary file libgui/src/icons/octave/128x128/db-step.png has changed
Binary file libgui/src/icons/octave/128x128/db-stop.png has changed
Binary file libgui/src/icons/octave/128x128/dialog-error.png has changed
Binary file libgui/src/icons/octave/128x128/dialog-information.png has changed
Binary file libgui/src/icons/octave/128x128/document-new.png has changed
Binary file libgui/src/icons/octave/128x128/document-open.png has changed
Binary file libgui/src/icons/octave/128x128/document-print.png has changed
Binary file libgui/src/icons/octave/128x128/document-save-as.png has changed
Binary file libgui/src/icons/octave/128x128/document-save.png has changed
Binary file libgui/src/icons/octave/128x128/edit-copy.png has changed
Binary file libgui/src/icons/octave/128x128/edit-cut.png has changed
Binary file libgui/src/icons/octave/128x128/edit-find-replace.png has changed
Binary file libgui/src/icons/octave/128x128/edit-find.png has changed
Binary file libgui/src/icons/octave/128x128/edit-paste.png has changed
Binary file libgui/src/icons/octave/128x128/edit-redo.png has changed
Binary file libgui/src/icons/octave/128x128/edit-undo.png has changed
Binary file libgui/src/icons/octave/128x128/figure-axes.png has changed
Binary file libgui/src/icons/octave/128x128/figure-grid.png has changed
Binary file libgui/src/icons/octave/128x128/figure-pan.png has changed
Binary file libgui/src/icons/octave/128x128/figure-rotate.png has changed
Binary file libgui/src/icons/octave/128x128/figure-text.png has changed
Binary file libgui/src/icons/octave/128x128/figure-zoom-in.png has changed
Binary file libgui/src/icons/octave/128x128/figure-zoom-original.png has changed
Binary file libgui/src/icons/octave/128x128/figure-zoom-out.png has changed
Binary file libgui/src/icons/octave/128x128/folder-new.png has changed
Binary file libgui/src/icons/octave/128x128/folder-settings.png has changed
Binary file libgui/src/icons/octave/128x128/folder-up.png has changed
Binary file libgui/src/icons/octave/128x128/folder.png has changed
Binary file libgui/src/icons/octave/128x128/go-down.png has changed
Binary file libgui/src/icons/octave/128x128/go-first.png has changed
Binary file libgui/src/icons/octave/128x128/go-home.png has changed
Binary file libgui/src/icons/octave/128x128/go-last.png has changed
Binary file libgui/src/icons/octave/128x128/go-next.png has changed
Binary file libgui/src/icons/octave/128x128/go-previous.png has changed
Binary file libgui/src/icons/octave/128x128/go-up.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_DocumentationDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_Figure.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_FileEditor.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_FilesDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_HistoryDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_NewsDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_ReleaseWidget.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_TerminalDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_VariableEditor.png has changed
Binary file libgui/src/icons/octave/128x128/graphic_logo_WorkspaceView.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_DocumentationDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_FileEditor.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_FilesDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_HistoryDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_NewsDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_ReleaseWidget.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_TerminalDockWidget.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_VariableEditor.png has changed
Binary file libgui/src/icons/octave/128x128/letter_logo_WorkspaceView.png has changed
Binary file libgui/src/icons/octave/128x128/logo.png has changed
Binary file libgui/src/icons/octave/128x128/plot-xy-curve.png has changed
Binary file libgui/src/icons/octave/128x128/system-run.png has changed
Binary file libgui/src/icons/octave/128x128/user-home.png has changed
Binary file libgui/src/icons/octave/128x128/view-zoom-in.png has changed
Binary file libgui/src/icons/octave/128x128/view-zoom-original.png has changed
Binary file libgui/src/icons/octave/128x128/view-zoom-out.png has changed
Binary file libgui/src/icons/octave/128x128/widget-close-light.png has changed
Binary file libgui/src/icons/octave/128x128/widget-close.png has changed
Binary file libgui/src/icons/octave/128x128/widget-dock-light.png has changed
Binary file libgui/src/icons/octave/128x128/widget-dock.png has changed
Binary file libgui/src/icons/octave/128x128/widget-undock-light.png has changed
Binary file libgui/src/icons/octave/128x128/widget-undock.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/index.theme	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,18 @@
+[Icon Theme]
+Name=Octave-icons
+Comment=icon theme for octave
+
+# Directory list
+Directories=scalable,128
+
+[scalable]
+Size=48
+MinSize=16
+MaxSize=512
+Type=Scalable
+
+[128x128]
+Size=128
+MinSize=16
+MaxSize=512
+Type=Scalable
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/applications-system.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_299);}.cls-2{fill:#fff;}</style><linearGradient id="Gradiente_sem_nome_299" x1="1.8062" y1="1.8054" x2="6.1952" y2="6.1944" gradientUnits="userSpaceOnUse"><stop offset="0.1453" stop-color="#9da5ad"/><stop offset="0.8939" stop-color="#5a6670"/></linearGradient></defs><path class="cls-1" d="M6.2922,4.291A2.275,2.275,0,0,0,6.3138,4a2.504,2.504,0,0,0-.0216-.3l.6508-.489a.1486.1486,0,0,0,.037-.192L6.3631,1.981a.1536.1536,0,0,0-.1881-.066l-.7679.3a2.2525,2.2525,0,0,0-.5213-.294l-.1141-.795A.1547.1547,0,0,0,4.6175,1H3.3838a.1548.1548,0,0,0-.1542.126l-.1141.795a2.2518,2.2518,0,0,0-.5212.294l-.768-.3a.1536.1536,0,0,0-.1881.066L1.0214,3.019a.1452.1452,0,0,0,.037.192l.6508.489a2.4835,2.4835,0,0,0-.0216.3,2.257,2.257,0,0,0,.0216.291l-.6508.498a.1452.1452,0,0,0-.037.192l.6168,1.038a.1571.1571,0,0,0,.1881.066l.768-.303a2.1569,2.1569,0,0,0,.5212.297l.1141.795A.1548.1548,0,0,0,3.3838,7H4.6175a.1547.1547,0,0,0,.1542-.126l.1141-.795a2.262,2.262,0,0,0,.5213-.297l.7679.303a.157.157,0,0,0,.1881-.066L6.98,4.981a.1486.1486,0,0,0-.037-.192Z"/><circle class="cls-2" cx="4" cy="4" r="1"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/bookmark-new.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg width="24px" height="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#b5b5b5;}.cls-2{fill:#fff;}.cls-3{fill:#8f8f8f;}.cls-4{fill:#53c23d;}.cls-5{fill:url(#Gradiente_sem_nome_21);}</style><linearGradient id="Gradiente_sem_nome_21" x1="3.8607" y1="4.1393" x2="13.1393" y2="13.4178" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f55f51"/><stop offset="1" stop-color="#e32e1e"/></linearGradient></defs><rect class="cls-1" x="4" y="2" width="16" height="20" rx="1.1098"/><rect class="cls-2" x="5" y="3" width="14" height="18" rx="0.9848"/><rect class="cls-3" x="7" y="6" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="8" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="10" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="12" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="14" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="16" width="10" height="1" rx="0.2282"/><path class="cls-4" d="M22.397,6H20V3.603A.6029.6029,0,0,0,19.397,3H17.603A.6029.6029,0,0,0,17,3.603V6H14.603A.6029.6029,0,0,0,14,6.603V8.397A.603.603,0,0,0,14.603,9H17v2.397a.603.603,0,0,0,.603.603h1.794A.603.603,0,0,0,20,11.397V9h2.397A.603.603,0,0,0,23,8.397V6.603A.6029.6029,0,0,0,22.397,6Z"/><path class="cls-5" d="M6,2V15.5031c0,.1488.2413.2073.3445.0834L8.5,13l2.1555,2.5865c.1032.1239.3445.0654.3445-.0834V2Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/bp-next.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_7);}.cls-2{fill:#fff;}</style><linearGradient id="Gradiente_sem_nome_7" x1="5.5003" y1="1.4015" x2="2.4997" y2="6.5985" gradientTransform="matrix(-1, 0, 0, 1, 8, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ea6422"/><stop offset="1" stop-color="#d93e04"/></linearGradient></defs><circle class="cls-1" cx="4" cy="4" r="3"/><path class="cls-2" d="M2.1716,3H4V2.4556c0-.1681.2644-.2524.4191-.1335l2.009,1.5444a.16.16,0,0,1,0,.2669L4.4191,5.6779C4.2644,5.7967,4,5.7125,4,5.5444V5H2.1716A.1716.1716,0,0,1,2,4.8284V3.1716A.1716.1716,0,0,1,2.1716,3Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/bp-prev.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_7);}.cls-2{fill:#fff;}</style><linearGradient id="Gradiente_sem_nome_7" x1="2.4997" y1="1.4015" x2="5.5003" y2="6.5985" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ea6422"/><stop offset="1" stop-color="#d93e04"/></linearGradient></defs><circle class="cls-1" cx="4" cy="4" r="3"/><path class="cls-2" d="M5.8284,3H4V2.4556c0-.1681-.2644-.2524-.4191-.1335L1.5719,3.8665a.16.16,0,0,0,0,.2669l2.009,1.5445C3.7356,5.7967,4,5.7125,4,5.5444V5H5.8284A.1716.1716,0,0,0,6,4.8284V3.1716A.1716.1716,0,0,0,5.8284,3Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/bp-rm-all.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_7);}.cls-2{fill:#fff;}</style><linearGradient id="Gradiente_sem_nome_7" x1="5.5003" y1="1.4015" x2="2.4997" y2="6.5985" gradientTransform="matrix(-1, 0, 0, 1, 8, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ea6422"/><stop offset="1" stop-color="#d93e04"/></linearGradient></defs><circle class="cls-1" cx="4" cy="4" r="3"/><path class="cls-2" d="M5.5,5.875a.3745.3745,0,0,1-.2656-.1094l-2.9995-3a.3749.3749,0,0,1,.53-.53l3.0005,3A.375.375,0,0,1,5.5,5.875Z"/><path class="cls-2" d="M2.5,5.875a.375.375,0,0,1-.2651-.6406l3-2.9995a.3753.3753,0,0,1,.5312.53l-3,3.0005A.3725.3725,0,0,1,2.5,5.875Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/bp-toggle.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_7);}</style><linearGradient id="Gradiente_sem_nome_7" x1="2.4997" y1="1.4015" x2="5.5003" y2="6.5985" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ea6422"/><stop offset="1" stop-color="#d93e04"/></linearGradient></defs><circle class="cls-1" cx="4" cy="4" r="3"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/db-cont.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_335);}.cls-2{fill:url(#Gradiente_sem_nome_61);}</style><linearGradient id="Gradiente_sem_nome_335" x1="2.4997" y1="1.4015" x2="5.5003" y2="6.5985" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd073"/><stop offset="1" stop-color="#ffca61"/></linearGradient><linearGradient id="Gradiente_sem_nome_61" x1="2.9592" y1="2.2833" x2="4.5669" y2="5.0679" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3d3d3d"/><stop offset="1" stop-color="#1f1f1f"/></linearGradient></defs><circle class="cls-1" cx="4" cy="4" r="3"/><path class="cls-2" d="M3,2.376V5.624a.2012.2012,0,0,0,.3128.1674l2.4361-1.624a.2012.2012,0,0,0,0-.3348L3.3128,2.2086A.2012.2012,0,0,0,3,2.376Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/db-step-in.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_6);}.cls-2{fill:url(#Gradiente_sem_nome_6-2);}.cls-3{fill:url(#Gradiente_sem_nome_232);}</style><linearGradient id="Gradiente_sem_nome_6" x1="3.2589" y1="1.1183" x2="7.7411" y2="8.8817" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#38d4e2"/><stop offset="1" stop-color="#107dc3"/></linearGradient><linearGradient id="Gradiente_sem_nome_6-2" x1="3.2589" y1="15.1183" x2="7.7411" y2="22.8817" xlink:href="#Gradiente_sem_nome_6"/><linearGradient id="Gradiente_sem_nome_232" x1="16.5593" y1="8.3226" x2="19.7145" y2="13.7874" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afd14f"/><stop offset="1" stop-color="#23a850"/></linearGradient></defs><rect class="cls-1" x="1" y="2" width="9" height="6" rx="1"/><rect class="cls-2" x="1" y="16" width="9" height="6" rx="1"/><path class="cls-3" d="M22,6a1,1,0,0,0-1,1,4,4,0,0,1-4,4V8.934a.5.5,0,0,0-.7771-.4159l-4.5991,3.066a.5.5,0,0,0,0,.8318l4.5991,3.066A.5.5,0,0,0,17,15.066V13a6,6,0,0,0,6-6A1,1,0,0,0,22,6Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/db-step-out.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_6);}.cls-2{fill:url(#Gradiente_sem_nome_6-2);}.cls-3{fill:url(#Gradiente_sem_nome_232);}</style><linearGradient id="Gradiente_sem_nome_6" x1="3.2589" y1="1.1183" x2="7.7411" y2="8.8817" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#38d4e2"/><stop offset="1" stop-color="#107dc3"/></linearGradient><linearGradient id="Gradiente_sem_nome_6-2" x1="3.2589" y1="15.1183" x2="7.7411" y2="22.8817" xlink:href="#Gradiente_sem_nome_6"/><linearGradient id="Gradiente_sem_nome_232" x1="17.6402" y1="6.4511" x2="6.6015" y2="12.8243" gradientTransform="translate(6.4173 27.984) rotate(-90)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afd14f"/><stop offset="1" stop-color="#23a850"/></linearGradient></defs><rect class="cls-1" x="1" y="2" width="9" height="6" rx="1"/><rect class="cls-2" x="1" y="16" width="9" height="6" rx="1"/><path class="cls-3" d="M11,12a1,1,0,0,0,1,1,4,4,0,0,1,4,4H13.934a.5.5,0,0,0-.4159.7771l3.066,4.5991a.5.5,0,0,0,.8318,0l3.066-4.5991A.5.5,0,0,0,20.066,17H18a6,6,0,0,0-6-6A1,1,0,0,0,11,12Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/db-step.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_6);}.cls-2{fill:url(#Gradiente_sem_nome_6-2);}.cls-3{fill:url(#Gradiente_sem_nome_6-3);}.cls-4{fill:url(#Gradiente_sem_nome_232);}</style><linearGradient id="Gradiente_sem_nome_6" x1="3.2589" y1="1.1183" x2="7.7411" y2="8.8817" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#38d4e2"/><stop offset="1" stop-color="#107dc3"/></linearGradient><linearGradient id="Gradiente_sem_nome_6-2" x1="3.2589" y1="8.1183" x2="7.7411" y2="15.8817" xlink:href="#Gradiente_sem_nome_6"/><linearGradient id="Gradiente_sem_nome_6-3" x1="3.2589" y1="15.1183" x2="7.7411" y2="22.8817" xlink:href="#Gradiente_sem_nome_6"/><linearGradient id="Gradiente_sem_nome_232" x1="16.5593" y1="8.3226" x2="19.7145" y2="13.7874" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afd14f"/><stop offset="1" stop-color="#23a850"/></linearGradient></defs><rect class="cls-1" x="1" y="2" width="9" height="6" rx="1"/><rect class="cls-2" x="1" y="9" width="9" height="6" rx="1"/><rect class="cls-3" x="1" y="16" width="9" height="6" rx="1"/><path class="cls-4" d="M22,6a1,1,0,0,0-1,1,4,4,0,0,1-4,4V8.934a.5.5,0,0,0-.7771-.4159l-4.5991,3.066a.5.5,0,0,0,0,.8318l4.5991,3.066A.5.5,0,0,0,17,15.066V13a6,6,0,0,0,6-6A1,1,0,0,0,22,6Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/db-stop.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_2);}</style><linearGradient id="Gradiente_sem_nome_2" x1="8.1407" y1="5.3156" x2="15.8593" y2="18.6844" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ea6422"/><stop offset="1" stop-color="#d93e04"/></linearGradient></defs><rect class="cls-1" x="6" y="6" width="12" height="12" rx="1.3056"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/dialog-error.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 16 16"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_7);}.cls-2{fill:#fff;}</style><linearGradient id="Gradiente_sem_nome_7" x1="4.9995" y1="2.803" x2="11.0005" y2="13.197" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ea6422"/><stop offset="1" stop-color="#d93e04"/></linearGradient></defs><circle class="cls-1" cx="8" cy="8" r="6"/><rect class="cls-2" x="4" y="7" width="8" height="2" rx="0.6038"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/dialog-information.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 16 16"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_7);}.cls-2{fill:#fff;}</style><linearGradient id="Gradiente_sem_nome_7" x1="4.9995" y1="2.803" x2="11.0005" y2="13.197" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#199ae1"/><stop offset="1" stop-color="#017ad5"/></linearGradient></defs><circle class="cls-1" cx="8" cy="8" r="6"/><rect class="cls-2" x="7" y="7" width="2" height="5" rx="1"/><rect class="cls-2" x="7" y="4" width="2" height="2" rx="1"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/document-new.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#b5b5b5;}.cls-2{fill:#fff;}.cls-3{fill:#53c23d;}</style></defs><rect class="cls-1" x="4" y="2" width="16" height="20" rx="1.1098"/><rect class="cls-2" x="5" y="3" width="14" height="18" rx="0.9848"/><path class="cls-3" d="M22.397,6H20V3.603A.6029.6029,0,0,0,19.397,3H17.603A.6029.6029,0,0,0,17,3.603V6H14.603A.6029.6029,0,0,0,14,6.603V8.397A.603.603,0,0,0,14.603,9H17v2.397a.603.603,0,0,0,.603.603h1.794A.603.603,0,0,0,20,11.397V9h2.397A.603.603,0,0,0,23,8.397V6.603A.6029.6029,0,0,0,22.397,6Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/document-open.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:#edb51f;}.cls-2{fill:#e6a928;}.cls-3{fill:#fff;}.cls-4{fill:url(#Gradiente_sem_nome_5);}</style><linearGradient id="Gradiente_sem_nome_5" x1="2.0615" y1="3.1269" x2="6.1231" y2="7.1885" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe599"/><stop offset="1" stop-color="#ffc938"/></linearGradient></defs><path class="cls-1" d="M6.2941,2H4l-.7618-.7618A.8134.8134,0,0,0,2.6631,1H1.3765A.3765.3765,0,0,0,1,1.3765V5H7V2.7059A.7058.7058,0,0,0,6.2941,2Z"/><path class="cls-2" d="M1,6H7A0,0,0,0,1,7,6v.68A.32.32,0,0,1,6.68,7H1.32A.32.32,0,0,1,1,6.68V6A0,0,0,0,1,1,6Z"/><path class="cls-3" d="M1.8706,2.5H6.1294A.3706.3706,0,0,1,6.5,2.8706V5a0,0,0,0,1,0,0h-5a0,0,0,0,1,0,0V2.8706A.3706.3706,0,0,1,1.8706,2.5Z"/><path class="cls-4" d="M6.455,3.5H4.7038a.864.864,0,0,0-.3861.0911l-.7126.3563A.4974.4974,0,0,1,3.3825,4H1.3215A.3215.3215,0,0,0,1,4.3215V6.1784A.3216.3216,0,0,0,1.3216,6.5H6.6785A.3216.3216,0,0,0,7,6.1785V4.045A.545.545,0,0,0,6.455,3.5Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/document-print.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#2e2f30;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#383b3d;}.cls-3,.cls-5,.cls-7{fill-opacity:0.9961;}.cls-4{fill:url(#Gradiente_sem_nome_2);}.cls-5{fill:#fff;opacity:0.1;}.cls-6{fill:url(#Gradiente_sem_nome_217);}.cls-7{fill:url(#Gradiente_sem_nome_3);}.cls-8{fill:url(#Gradiente_sem_nome_490);}.cls-9{fill:url(#Gradiente_sem_nome_217-2);}.cls-10{fill:url(#Gradiente_sem_nome_181);}.cls-11{fill:url(#Gradiente_sem_nome_181-2);}.cls-12{fill:none;}</style><clipPath id="clip-path"><rect class="cls-1" y="9" width="24" height="12" rx="1.4107"/></clipPath><linearGradient id="Gradiente_sem_nome_2" x1="6.4019" y1="5.3038" x2="17.5981" y2="24.6962" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c4d50"/><stop offset="1" stop-color="#37383b"/></linearGradient><linearGradient id="Gradiente_sem_nome_217" x1="8.7279" y1="13.7357" x2="15.3076" y2="25.132" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#cfd0d1"/><stop offset="1" stop-color="#a7acb0"/></linearGradient><linearGradient id="Gradiente_sem_nome_3" x1="6.9148" y1="2.7443" x2="17.0852" y2="12.9148" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#63666c"/><stop offset="1" stop-color="#4d5157"/></linearGradient><linearGradient id="Gradiente_sem_nome_490" x1="18.4999" y1="12.1338" x2="19.5001" y2="13.8662" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#9bff6c"/><stop offset="1" stop-color="#82ff47"/></linearGradient><linearGradient id="Gradiente_sem_nome_217-2" x1="9.2255" y1="1.5602" x2="14.6406" y2="10.9395" xlink:href="#Gradiente_sem_nome_217"/><linearGradient id="Gradiente_sem_nome_181" x1="9.6828" y1="2.7151" x2="14.2335" y2="10.5972" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#e0e4e9"/></linearGradient><linearGradient id="Gradiente_sem_nome_181-2" x1="9.1141" y1="13.7794" x2="14.9672" y2="23.9172" xlink:href="#Gradiente_sem_nome_181"/></defs><rect class="cls-1" y="9" width="24" height="12" rx="1.4107"/><g class="cls-2"><rect class="cls-3" y="9" width="24" height="12"/><polygon class="cls-4" points="0 9 0 13 0 21 24 21 24 13 24 9 0 9"/><rect class="cls-5" y="18" width="24" height="3"/></g><path class="cls-6" d="M6.7353,15H17.2647A.7353.7353,0,0,1,18,15.7353V23a1,1,0,0,1-1,1H7a1,1,0,0,1-1-1V15.7353A.7353.7353,0,0,1,6.7353,15Z"/><path class="cls-7" d="M4.125,6h15.75A1.125,1.125,0,0,1,21,7.125V9a0,0,0,0,1,0,0H3A0,0,0,0,1,3,9V7.125A1.125,1.125,0,0,1,4.125,6Z"/><circle class="cls-8" cx="19" cy="13" r="1"/><path class="cls-9" d="M7,3H17a1,1,0,0,1,1,1V9a0,0,0,0,1,0,0H6A0,0,0,0,1,6,9V4A1,1,0,0,1,7,3Z"/><path class="cls-10" d="M7.625,4h8.75A.625.625,0,0,1,17,4.625V9a0,0,0,0,1,0,0H7A0,0,0,0,1,7,9V4.625A.625.625,0,0,1,7.625,4Z"/><path class="cls-11" d="M7,15H17a0,0,0,0,1,0,0v7.3929A.6071.6071,0,0,1,16.3929,23H7.6071A.6071.6071,0,0,1,7,22.3929V15A0,0,0,0,1,7,15Z"/><rect class="cls-12" width="24" height="24"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/document-save-as.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:none;}.cls-2{fill:url(#Gradiente_sem_nome_60);}.cls-3{fill:url(#Gradiente_sem_nome_153);}.cls-4{fill:url(#Gradiente_sem_nome_185);}.cls-5{fill:url(#Gradiente_sem_nome_225);}.cls-6{fill:url(#Gradiente_sem_nome_88);}.cls-7{clip-path:url(#clip-path);}.cls-8{fill:#ffdaa6;}.cls-9{fill:#1a1a1a;}.cls-10{fill:url(#Gradiente_sem_nome_300);}</style><linearGradient id="Gradiente_sem_nome_60" x1="5.6378" y1="2.0983" x2="17.472" y2="22.5958" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#636abf"/><stop offset="1" stop-color="#3f47b0"/></linearGradient><linearGradient id="Gradiente_sem_nome_153" x1="8.789" y1="11.7529" x2="15.0959" y2="22.6767" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d9d9d9"/></linearGradient><linearGradient id="Gradiente_sem_nome_185" x1="9.1103" y1="1.2043" x2="14.9961" y2="11.3988" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d4d4d4"/></linearGradient><linearGradient id="Gradiente_sem_nome_225" x1="10.067" y1="16.6519" x2="13.933" y2="23.3481" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#69d18f"/><stop offset="1" stop-color="#51c97d"/></linearGradient><linearGradient id="Gradiente_sem_nome_88" x1="13.3929" y1="4.0825" x2="15.6071" y2="7.9175" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#393d72"/><stop offset="1" stop-color="#282c66"/></linearGradient><clipPath id="clip-path"><path class="cls-1" d="M15.3125,15.2609l.0031,3.2087a.1534.1534,0,0,0,.2559.1193l2.46-2.06Z"/></clipPath><linearGradient id="Gradiente_sem_nome_300" x1="16.819" y1="8.1865" x2="21.5963" y2="12.9639" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffb253"/><stop offset="1" stop-color="#ff9c22"/></linearGradient></defs><path class="cls-2" d="M18,3V6H6V3H4.4705A1.4705,1.4705,0,0,0,3,4.4705V19.9557A1.0442,1.0442,0,0,0,4.0441,21H19.9559A1.0442,1.0442,0,0,0,21,19.9557V6Z"/><path class="cls-3" d="M6.86,13H17.14a.86.86,0,0,1,.86.86V21a0,0,0,0,1,0,0H6a0,0,0,0,1,0,0V13.86A.86.86,0,0,1,6.86,13Z"/><path class="cls-4" d="M6,3H18a0,0,0,0,1,0,0V9.2058A.7942.7942,0,0,1,17.2058,10H6.7942A.7942.7942,0,0,1,6,9.2058V3A0,0,0,0,1,6,3Z"/><rect class="cls-5" x="6" y="19" width="12" height="2"/><rect class="cls-6" x="13" y="4" width="3" height="4" rx="0.7321"/><g class="cls-7"><rect class="cls-8" x="14.538" y="15.7543" width="3" height="3" transform="translate(-6.3777 24.4977) rotate(-65)"/><rect class="cls-9" x="14.9711" y="16.4341" width="1.5" height="3" transform="translate(-7.1767 24.6029) rotate(-65)"/></g><path class="cls-10" d="M22.5647,5.4022l-1.6426-.766a.5938.5938,0,0,0-.7891.2872L19.1161,7.1042l-3.8036,8.1567,2.7189,1.2679L21.835,8.372l1.0169-2.1807A.5938.5938,0,0,0,22.5647,5.4022Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/document-save.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_60);}.cls-2{fill:url(#Gradiente_sem_nome_153);}.cls-3{fill:url(#Gradiente_sem_nome_185);}.cls-4{fill:url(#Gradiente_sem_nome_225);}.cls-5{fill:url(#Gradiente_sem_nome_88);}</style><linearGradient id="Gradiente_sem_nome_60" x1="5.6378" y1="2.0983" x2="17.472" y2="22.5958" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#636abf"/><stop offset="1" stop-color="#3f47b0"/></linearGradient><linearGradient id="Gradiente_sem_nome_153" x1="8.789" y1="11.7529" x2="15.0959" y2="22.6767" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d9d9d9"/></linearGradient><linearGradient id="Gradiente_sem_nome_185" x1="9.1103" y1="1.2043" x2="14.9961" y2="11.3988" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d4d4d4"/></linearGradient><linearGradient id="Gradiente_sem_nome_225" x1="10.067" y1="16.6519" x2="13.933" y2="23.3481" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#69d18f"/><stop offset="1" stop-color="#51c97d"/></linearGradient><linearGradient id="Gradiente_sem_nome_88" x1="13.3929" y1="4.0825" x2="15.6071" y2="7.9175" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#393d72"/><stop offset="1" stop-color="#282c66"/></linearGradient></defs><path class="cls-1" d="M18,3V6H6V3H4.4705A1.4705,1.4705,0,0,0,3,4.4705V19.9557A1.0442,1.0442,0,0,0,4.0441,21H19.9559A1.0442,1.0442,0,0,0,21,19.9557V6Z"/><path class="cls-2" d="M6.86,13H17.14a.86.86,0,0,1,.86.86V21a0,0,0,0,1,0,0H6a0,0,0,0,1,0,0V13.86A.86.86,0,0,1,6.86,13Z"/><path class="cls-3" d="M6,3H18a0,0,0,0,1,0,0V9.2058A.7942.7942,0,0,1,17.2058,10H6.7942A.7942.7942,0,0,1,6,9.2058V3A0,0,0,0,1,6,3Z"/><rect class="cls-4" x="6" y="19" width="12" height="2"/><rect class="cls-5" x="13" y="4" width="3" height="4" rx="0.7321"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/edit-copy.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#b5b5b5;}.cls-2{fill:#f2f2f2;}.cls-3{fill:#fff;}.cls-4{fill:#666;}</style></defs><rect class="cls-1" x="2" y="1" width="16" height="18" rx="1"/><rect class="cls-2" x="3" y="2" width="14" height="16" rx="1"/><path class="cls-1" d="M21.7009,19.2991l-2.4018,2.4018A1.0213,1.0213,0,0,1,18.577,22H7a1,1,0,0,1-1-1V5A1,1,0,0,1,7,4H21a1,1,0,0,1,1,1V18.577A1.0213,1.0213,0,0,1,21.7009,19.2991Z"/><path class="cls-3" d="M20,19l-2,2H8a1,1,0,0,1-1-1V6A1,1,0,0,1,8,5H20a1,1,0,0,1,1,1V18Z"/><rect class="cls-4" x="9" y="8" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="9" y="10" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="9" y="12" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="9" y="14" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="9" y="16" width="10" height="1" rx="0.2282"/><path class="cls-1" d="M18,18.4844V22l4-4H18.4844A.4844.4844,0,0,0,18,18.4844Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/edit-cut.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg width="24px" height="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_263);}.cls-2{fill:url(#Gradiente_sem_nome_11);}.cls-3{fill:url(#Gradiente_sem_nome_263-2);}.cls-4{fill:url(#Gradiente_sem_nome_11-2);}.cls-5{fill:#cad2d9;}.cls-6{fill:url(#Gradiente_sem_nome_267);}</style><linearGradient id="Gradiente_sem_nome_263" x1="9.5267" y1="14.8506" x2="13.625" y2="21.9491" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3b87ea"/><stop offset="1" stop-color="#257ae8"/></linearGradient><linearGradient id="Gradiente_sem_nome_11" x1="9.0517" y1="3.1249" x2="14.9978" y2="13.4239" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a0a7ac"/><stop offset="1" stop-color="#81888e"/></linearGradient><linearGradient id="Gradiente_sem_nome_263-2" x1="16.8995" y1="9.3254" x2="19.9" y2="14.5224" xlink:href="#Gradiente_sem_nome_263"/><linearGradient id="Gradiente_sem_nome_11-2" x1="10.0025" y1="4.8257" x2="17.4487" y2="9.1248" gradientTransform="matrix(0, 1, 1, 0, 1.5, -1.5)" xlink:href="#Gradiente_sem_nome_11"/><linearGradient id="Gradiente_sem_nome_267" x1="12.5" y1="8" x2="12.5" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-opacity="0"/><stop offset="1" stop-opacity="0.15"/></linearGradient></defs><path class="cls-1" d="M11,14v3a3,3,0,1,0,3,3V14Zm0,7.5A1.5,1.5,0,1,1,12.5,20,1.5,1.5,0,0,1,11,21.5Z"/><path class="cls-2" d="M11,2V14h3V5A3,3,0,0,0,11,2Z"/><path class="cls-3" d="M14,14h6a3,3,0,1,0-3-3H14Zm6-1.5A1.5,1.5,0,1,1,21.5,11,1.5,1.5,0,0,1,20,12.5Z"/><path class="cls-4" d="M2,11H14v3H5A3,3,0,0,1,2,11Z"/><circle class="cls-5" cx="12.5" cy="12.5" r="0.75"/><rect class="cls-6" x="11" y="8" width="3" height="3"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/edit-find-replace.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:none;}.cls-2{fill:#b5b5b5;}.cls-3{fill:#fff;}.cls-4{fill:#8f8f8f;}.cls-5{clip-path:url(#clip-path);}.cls-6{fill:#ffdaa6;}.cls-7{fill:#1a1a1a;}.cls-8{fill:url(#Gradiente_sem_nome_300);}.cls-9{opacity:0.49;fill:url(#Gradiente_sem_nome_85);}.cls-10{fill:url(#Gradiente_sem_nome_93);}</style><clipPath id="clip-path"><path class="cls-1" d="M15.5412,13.4059l.0031,3.2086a.1535.1535,0,0,0,.2559.1194l2.46-2.06Z"/></clipPath><linearGradient id="Gradiente_sem_nome_300" x1="17.0477" y1="6.3315" x2="21.825" y2="11.1089" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffb253"/><stop offset="1" stop-color="#ff9c22"/></linearGradient><linearGradient id="Gradiente_sem_nome_85" x1="7.5717" y1="7.0952" x2="10.3721" y2="11.9457" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#9dcdf2"/><stop offset="1" stop-color="#84c1ef"/></linearGradient><linearGradient id="Gradiente_sem_nome_93" x1="3.5259" y1="9.0252" x2="9.4664" y2="14.9657" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8c9197"/><stop offset="1" stop-color="#6f767d"/></linearGradient></defs><rect class="cls-2" x="4" y="2" width="16" height="20" rx="1.1098"/><rect class="cls-3" x="5" y="3" width="14" height="18" rx="0.9848"/><rect class="cls-4" x="7" y="6" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="8" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="10" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="12" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="14" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="16" width="10" height="1" rx="0.2282"/><g class="cls-5"><rect class="cls-6" x="14.7667" y="13.8993" width="3" height="3" transform="translate(-4.5644 23.6339) rotate(-65)"/><rect class="cls-7" x="15.1997" y="14.579" width="1.5" height="3" transform="translate(-5.3635 23.7391) rotate(-65)"/></g><path class="cls-8" d="M22.7933,3.5471l-1.6425-.7659a.5939.5939,0,0,0-.7892.2872L19.3447,5.2492l-3.8035,8.1567L18.26,14.6738,22.0637,6.517l1.0169-2.1807A.5938.5938,0,0,0,22.7933,3.5471Z"/><circle class="cls-9" cx="8.9719" cy="9.5205" r="2.8"/><path class="cls-10" d="M11.0719,5.8831a4.1915,4.1915,0,0,0-5.0351,6.6211L2.79,18.1274a1.0054,1.0054,0,0,0,.368,1.3733l.0774.0447a1.0053,1.0053,0,0,0,1.3733-.368l3.2466-5.6233a4.1915,4.1915,0,0,0,3.2164-7.671Zm.3249,5.0374a2.8,2.8,0,1,1-1.0249-3.8249A2.8,2.8,0,0,1,11.3968,10.9205Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/edit-find.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#b5b5b5;}.cls-2{fill:#fff;}.cls-3{fill:#8f8f8f;}.cls-4{opacity:0.49;fill:url(#Gradiente_sem_nome_85);}.cls-5{fill:url(#Gradiente_sem_nome_93);}</style><linearGradient id="Gradiente_sem_nome_85" x1="-0.4578" y1="9.0952" x2="2.3426" y2="13.9457" gradientTransform="matrix(-1, 0, 0, 1, 15.828, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#9dcdf2"/><stop offset="1" stop-color="#84c1ef"/></linearGradient><linearGradient id="Gradiente_sem_nome_93" x1="-4.5036" y1="11.0253" x2="1.4369" y2="16.9657" gradientTransform="matrix(-1, 0, 0, 1, 15.828, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8c9197"/><stop offset="1" stop-color="#6f767d"/></linearGradient></defs><rect class="cls-1" x="4" y="2" width="16" height="20" rx="1.1098"/><rect class="cls-2" x="5" y="3" width="14" height="18" rx="0.9848"/><rect class="cls-3" x="7" y="6" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="8" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="10" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="12" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="14" width="10" height="1" rx="0.2282"/><rect class="cls-3" x="7" y="16" width="10" height="1" rx="0.2282"/><circle class="cls-4" cx="14.8856" cy="11.5205" r="2.8"/><path class="cls-5" d="M11.2483,13.62a4.19,4.19,0,0,0,4.7537,1.9337l3.2466,5.6233a1.0053,1.0053,0,0,0,1.3733.368l.0774-.0447a1.0054,1.0054,0,0,0,.368-1.3733l-3.2466-5.6232a4.1934,4.1934,0,1,0-6.5724-.8838Zm2.2373-4.5248a2.8,2.8,0,1,1-1.0249,3.8249A2.8,2.8,0,0,1,13.4856,9.0956Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/edit-paste.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_126);}.cls-2{fill:#ccc;}.cls-3{fill:#fff;}.cls-4{fill:#666;}.cls-5{fill:url(#Gradiente_sem_nome_71);}</style><linearGradient id="Gradiente_sem_nome_126" x1="4.9951" y1="0.8672" x2="19.0049" y2="25.1328" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#dd9854"/><stop offset="1" stop-color="#b86f44"/></linearGradient><linearGradient id="Gradiente_sem_nome_71" x1="10.0217" y1="-0.097" x2="14.0407" y2="6.8641" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2b2b2b"/><stop offset="1" stop-color="#333"/></linearGradient></defs><path class="cls-1" d="M20.5883,2H17V4H7V2H3.4117A1.4118,1.4118,0,0,0,2,3.4117V22.5882A1.4118,1.4118,0,0,0,3.4117,24H20.5883A1.4118,1.4118,0,0,0,22,22.5882V3.4117A1.4118,1.4118,0,0,0,20.5883,2Z"/><path class="cls-2" d="M19.7009,19.2991l-2.4018,2.4018A1.0213,1.0213,0,0,1,16.577,22H5a1,1,0,0,1-1-1V5A1,1,0,0,1,5,4H19a1,1,0,0,1,1,1V18.577A1.0213,1.0213,0,0,1,19.7009,19.2991Z"/><path class="cls-3" d="M18,19l-2,2H6a1,1,0,0,1-1-1V6A1,1,0,0,1,6,5H18a1,1,0,0,1,1,1V18Z"/><rect class="cls-4" x="7" y="8" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="10" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="12" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="14" width="10" height="1" rx="0.2282"/><rect class="cls-4" x="7" y="16" width="10" height="1" rx="0.2282"/><path class="cls-2" d="M16,18.4844V22l4-4H16.4844A.4844.4844,0,0,0,16,18.4844Z"/><path class="cls-5" d="M17.4676,2H14a2,2,0,0,0-4,0H6.5324A.5323.5323,0,0,0,6,2.5324V4.0015A.9984.9984,0,0,0,6.9985,5h10.003A.9984.9984,0,0,0,18,4.0015V2.5324A.5323.5323,0,0,0,17.4676,2ZM12,3a1,1,0,1,1,1-1A1,1,0,0,1,12,3Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/edit-redo.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_2);}</style><linearGradient id="Gradiente_sem_nome_2" x1="2.3919" y1="1.6808" x2="5.3899" y2="6.8735" gradientTransform="matrix(-1, 0, 0, 1, 8, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8dc438"/><stop offset="1" stop-color="#1fb055"/></linearGradient></defs><path class="cls-1" d="M3.5,2H4V1.2A.2587.2587,0,0,1,4.389.9769l2.2279,1.3a.2585.2585,0,0,1,0,.4468l-2.2279,1.3A.2587.2587,0,0,1,4,3.8V3H3.5a1.5,1.5,0,0,0,0,3H5.7745A.2256.2256,0,0,1,6,6.2255v.549A.2256.2256,0,0,1,5.7745,7H3.5a2.5,2.5,0,0,1,0-5Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/edit-undo.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg  height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_103);}</style><linearGradient id="Gradiente_sem_nome_103" x1="2.3919" y1="1.6808" x2="5.3899" y2="6.8735" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffa321"/><stop offset="1" stop-color="#f5352e"/></linearGradient></defs><path class="cls-1" d="M4.5,2H4V1.2A.2587.2587,0,0,0,3.611.9769l-2.2279,1.3a.2585.2585,0,0,0,0,.4468l2.2279,1.3A.2587.2587,0,0,0,4,3.8V3h.5a1.5,1.5,0,0,1,0,3H2.2255A.2256.2256,0,0,0,2,6.2255v.549A.2256.2256,0,0,0,2.2255,7H4.5a2.5,2.5,0,0,0,0-5Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/figure-axes.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#b5b5b5;}.cls-2{fill:#fff;}.cls-3{fill:#949494;}.cls-4{fill:#a1a1a1;}.cls-5{fill:url(#Gradiente_sem_nome_10);}</style><linearGradient id="Gradiente_sem_nome_10" x1="6.4103" y1="21.6817" x2="13.3043" y2="9.7409" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#363739"/><stop offset="1" stop-color="#212224"/></linearGradient></defs><rect class="cls-1" x="2" y="4" width="20" height="16" rx="1.1098"/><rect class="cls-2" x="3" y="5" width="18" height="14" rx="0.9848"/><path class="cls-3" d="M4.999,17.75a.75.75,0,0,1-.084-1.4951A40.9951,40.9951,0,0,0,18.6641,12.33a.75.75,0,1,1,.6718,1.3413A42.479,42.479,0,0,1,5.085,17.7451C5.0562,17.748,5.0273,17.75,4.999,17.75Z"/><path class="cls-4" d="M9.1982,13.749a8.3463,8.3463,0,0,1-4.6118-1.291.75.75,0,0,1,.8045-1.266l.0227.015a7.5965,7.5965,0,0,0,5.895.7915,11.2351,11.2351,0,0,0,7.043-5.3745A.75.75,0,0,1,19.675,7.33c-.0083.0156-.0172.0308-.0266.0458a12.7394,12.7394,0,0,1-7.997,6.083A10.7518,10.7518,0,0,1,9.1982,13.749Z"/><path class="cls-5" d="M19.2647,18H4.7353A.7353.7353,0,0,1,4,17.2647V6.7353A.7353.7353,0,0,1,4.7353,6H19.2647A.7353.7353,0,0,1,20,6.7353V17.2647A.7353.7353,0,0,1,19.2647,18ZM19,16.6118V7.3882A.3882.3882,0,0,0,18.6118,7H5.3882A.3882.3882,0,0,0,5,7.3882v9.2236A.3882.3882,0,0,0,5.3882,17H18.6118A.3882.3882,0,0,0,19,16.6118Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/figure-grid.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#b5b5b5;}.cls-2{fill:#fff;}.cls-3{fill:url(#Gradiente_sem_nome_10);}</style><linearGradient id="Gradiente_sem_nome_10" x1="4.8558" y1="-0.0081" x2="13.0503" y2="14.1853" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#363739"/><stop offset="1" stop-color="#212224"/></linearGradient></defs><g id="Camada_1" data-name="Camada 1"><rect class="cls-1" x="2" y="2" width="19" height="19" rx="2.6855"/><rect class="cls-2" x="3" y="3" width="17" height="17" rx="1.7577"/></g><g id="Camada_2" data-name="Camada 2"><path class="cls-3" d="M20,6V5H18V3H17V5H14V3H13V5H10V3H9V5H6V3H5V5H3V6H5V9H3v1H5v3H3v1H5v3H3v1H5v2H6V18H9v2h1V18h3v2h1V18h3v2h1V18h2V17H18V14h2V13H18V10h2V9H18V6ZM13,6V9H10V6ZM6,6H9V9H6Zm0,4H9v3H6Zm0,7V14H9v3Zm7,0H10V14h3Zm-3-4V10h3v3Zm7,4H14V14h3Zm0-4H14V10h3Zm0-4H14V6h3Z"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/figure-pan.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_2);}</style><linearGradient id="Gradiente_sem_nome_2" x1="7.8013" y1="4.7276" x2="16.1987" y2="19.2724" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#199ae1"/><stop offset="1" stop-color="#017ad5"/></linearGradient></defs><path class="cls-1" d="M13,11h5L16.8912,9.8912a.5532.5532,0,0,1,0-.7824l.6376-.6376a.5532.5532,0,0,1,.7824,0l3.1376,3.1376a.5532.5532,0,0,1,0,.7824l-3.1376,3.1376a.5532.5532,0,0,1-.7824,0l-.6376-.6376a.5532.5532,0,0,1,0-.7824L18,13H13v5l1.1088-1.1088a.5532.5532,0,0,1,.7824,0l.6376.6376a.5532.5532,0,0,1,0,.7824l-3.1376,3.1376a.5532.5532,0,0,1-.7824,0L8.4712,18.3112a.5532.5532,0,0,1,0-.7824l.6376-.6376a.5532.5532,0,0,1,.7824,0L11,18V13H6l1.1088,1.1088a.5532.5532,0,0,1,0,.7824l-.6376.6376a.5532.5532,0,0,1-.7824,0L2.5512,12.3912a.5532.5532,0,0,1,0-.7824L5.6888,8.4712a.5532.5532,0,0,1,.7824,0l.6376.6376a.5532.5532,0,0,1,0,.7824L6,11h5V6L9.8912,7.1088a.5532.5532,0,0,1-.7824,0l-.6376-.6376a.5532.5532,0,0,1,0-.7824l3.1376-3.1376a.5532.5532,0,0,1,.7824,0l3.1376,3.1376a.5532.5532,0,0,1,0,.7824l-.6376.6376a.5532.5532,0,0,1-.7824,0L13,6Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/figure-rotate.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_5);}.cls-2{fill:url(#Gradiente_sem_nome_4);}.cls-3{fill:url(#Gradiente_sem_nome_4-2);}</style><linearGradient id="Gradiente_sem_nome_5" x1="7.5549" y1="4.3009" x2="16.4451" y2="19.6991" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#51c255"/><stop offset="1" stop-color="#3b963e"/></linearGradient><linearGradient id="Gradiente_sem_nome_4" x1="11.0472" y1="7.6654" x2="12.812" y2="10.7222" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ff7d19"/><stop offset="1" stop-color="#f03043"/></linearGradient><linearGradient id="Gradiente_sem_nome_4-2" x1="8.9592" y1="6.7335" x2="15.0415" y2="17.2684" xlink:href="#Gradiente_sem_nome_4"/></defs><path class="cls-1" d="M12,4.05c.6545.5153,2,3.2556,2,7.95s-1.3455,7.4347-2,7.95c-.6545-.5153-2-3.2556-2-7.95s1.3455-7.4347,2-7.95M12,2C9.7909,2,8,6.4771,8,12s1.7909,10,4,10,4-4.4771,4-10S14.2091,2,12,2Z"/><path class="cls-2" d="M12,10c.6841,0,1.3138.035,1.9141.0859a18.8015,18.8015,0,0,0-.2815-2.028C13.1,8.0228,12.5573,8,12,8s-1.1.0228-1.6326.0579a18.8015,18.8015,0,0,0-.2815,2.028C10.6862,10.035,11.3159,10,12,10Z"/><path class="cls-3" d="M15.7121,8.2879c.1059.6611.1825,1.3575.23,2.0795,2.2822.4455,3.6609,1.1918,4.008,1.6326-.5154.6545-3.2557,2-7.95,2s-7.4347-1.3455-7.95-2c.3471-.4408,1.7258-1.1871,4.008-1.6326.0475-.722.1241-1.4184.23-2.0795C4.6048,8.8779,2,10.316,2,12c0,2.2091,4.4772,4,10,4s10-1.7909,10-4C22,10.316,19.3952,8.8779,15.7121,8.2879Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/figure-text.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#b5b5b5;}.cls-2{fill:#fff;}.cls-3{fill:url(#Gradiente_sem_nome_10);}.cls-4{fill:none;}</style><linearGradient id="Gradiente_sem_nome_10" x1="8.1118" y1="18.1585" x2="14.162" y2="7.6793" gradientTransform="matrix(1, 0, 0, -1, -1, 25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#363739"/><stop offset="1" stop-color="#212224"/></linearGradient></defs><g id="Camada_1" data-name="Camada 1"><rect class="cls-1" x="2" y="2" width="20" height="20" rx="2.8268"/><rect class="cls-2" x="3" y="3" width="18" height="18" rx="1.8611"/></g><g id="Camada_2" data-name="Camada 2"><path id="text2044" class="cls-3" d="M19.5,19.5043c-1.3281-.1165-1.4679-.1154-1.7708-1.8164L15.539,4.5h-.4183L8.1761,16.15c-1.8407,3.099-2.2769,3.1678-3.2089,3.3542v.56h4.56v-.56c-1.1883-.1165-1.3747-.0455-1.3747-.628a2.76,2.76,0,0,1,.466-1.4447L9.9469,15.08H15.073l.466,2.771a5.7367,5.7367,0,0,1,.0466.6059c0,.8854-.1231.9076-1.6143,1.0474v.56H19.5v-.56M10.4362,13.96l3.495-6.0581L14.9565,13.96h-4.52"/><rect class="cls-4" width="24" height="24"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/figure-zoom-in.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_29);}.cls-2{fill:url(#Gradiente_sem_nome_323);}.cls-3{fill:url(#Gradiente_sem_nome_235);}.cls-4{fill:url(#Gradiente_sem_nome_41);}</style><linearGradient id="Gradiente_sem_nome_29" x1="7.558" y1="14.5001" x2="21.4418" y2="14.5001" gradientTransform="matrix(1.0403, 0.0845, 0.0011, 1.0437, -0.3725, -1.1537)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c565e"/><stop offset="1" stop-color="#4c565e"/></linearGradient><linearGradient id="Gradiente_sem_nome_323" x1="4.9993" y1="2.0706" x2="13.0007" y2="15.9294" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8f99a1"/><stop offset="1" stop-color="#74828f"/></linearGradient><linearGradient id="Gradiente_sem_nome_235" x1="5.9995" y1="3.803" x2="12.0005" y2="14.197" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d1fffc"/><stop offset="1" stop-color="#96dcff"/></linearGradient><linearGradient id="Gradiente_sem_nome_41" x1="7.2009" y1="5.8838" x2="10.7991" y2="12.1162" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#343a40"/><stop offset="1" stop-color="#343a40"/></linearGradient></defs><g id="Camada_1" data-name="Camada 1"><path class="cls-1" d="M20.4551,22.91a1.4976,1.4976,0,0,1-1.1026-.4825L7.8979,10.0176a1.5,1.5,0,0,1,2.2042-2.0352l11.4555,12.41A1.5,1.5,0,0,1,20.4551,22.91Z"/><circle class="cls-2" cx="9" cy="9" r="8"/><circle class="cls-3" cx="9" cy="9" r="6"/></g><g id="Camada_2" data-name="Camada 2"><path class="cls-4" d="M12,8H10V6A1,1,0,0,0,8,6V8H6a1,1,0,0,0,0,2H8v2a1,1,0,0,0,2,0V10h2a1,1,0,0,0,0-2Z"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/figure-zoom-original.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_29);}.cls-2{fill:url(#Gradiente_sem_nome_323);}.cls-3{fill:url(#Gradiente_sem_nome_235);}.cls-4{fill:url(#Gradiente_sem_nome_41);}</style><linearGradient id="Gradiente_sem_nome_29" x1="7.558" y1="14.5001" x2="21.4418" y2="14.5001" gradientTransform="matrix(1.0403, 0.0845, 0.0011, 1.0437, -0.3725, -1.1537)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c565e"/><stop offset="1" stop-color="#4c565e"/></linearGradient><linearGradient id="Gradiente_sem_nome_323" x1="4.9993" y1="2.0706" x2="13.0007" y2="15.9294" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8f99a1"/><stop offset="1" stop-color="#74828f"/></linearGradient><linearGradient id="Gradiente_sem_nome_235" x1="5.9995" y1="3.803" x2="12.0005" y2="14.197" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d1fffc"/><stop offset="1" stop-color="#96dcff"/></linearGradient><linearGradient id="Gradiente_sem_nome_41" x1="6.9579" y1="5.4629" x2="10.9084" y2="12.3054" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#343a40"/><stop offset="1" stop-color="#343a40"/></linearGradient></defs><g id="Camada_1" data-name="Camada 1"><path class="cls-1" d="M20.4551,22.91a1.4976,1.4976,0,0,1-1.1026-.4825L7.8979,10.0176a1.5,1.5,0,0,1,2.2042-2.0352l11.4555,12.41A1.5,1.5,0,0,1,20.4551,22.91Z"/><circle class="cls-2" cx="9" cy="9" r="8"/><circle class="cls-3" cx="9" cy="9" r="6"/></g><g id="Camada_5" data-name="Camada 5"><path class="cls-4" d="M9.5972,5h-1.42a.7531.7531,0,0,0-.3366.0794L6.217,5.8915A.3925.3925,0,0,0,6,6.2426V7.469a.1947.1947,0,0,0,.2631.1823L8,7v5.5972A.4027.4027,0,0,0,8.4028,13H9.5972A.4027.4027,0,0,0,10,12.5972V5.4028A.4027.4027,0,0,0,9.5972,5Z"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/figure-zoom-out.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_29);}.cls-2{fill:url(#Gradiente_sem_nome_323);}.cls-3{fill:url(#Gradiente_sem_nome_235);}.cls-4{fill:url(#Gradiente_sem_nome_41);}</style><linearGradient id="Gradiente_sem_nome_29" x1="7.558" y1="14.5001" x2="21.4418" y2="14.5001" gradientTransform="matrix(1.0403, 0.0845, 0.0011, 1.0437, -0.3725, -1.1537)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c565e"/><stop offset="1" stop-color="#4c565e"/></linearGradient><linearGradient id="Gradiente_sem_nome_323" x1="4.9993" y1="2.0706" x2="13.0007" y2="15.9294" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8f99a1"/><stop offset="1" stop-color="#74828f"/></linearGradient><linearGradient id="Gradiente_sem_nome_235" x1="5.9995" y1="3.803" x2="12.0005" y2="14.197" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d1fffc"/><stop offset="1" stop-color="#96dcff"/></linearGradient><linearGradient id="Gradiente_sem_nome_41" x1="7.7499" y1="6.8348" x2="10.2501" y2="11.1652" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#343a40"/><stop offset="1" stop-color="#343a40"/></linearGradient></defs><g id="Camada_1" data-name="Camada 1"><path class="cls-1" d="M20.4551,22.91a1.4976,1.4976,0,0,1-1.1026-.4825L7.8979,10.0176a1.5,1.5,0,0,1,2.2042-2.0352l11.4555,12.41A1.5,1.5,0,0,1,20.4551,22.91Z"/><circle class="cls-2" cx="9" cy="9" r="8"/><circle class="cls-3" cx="9" cy="9" r="6"/></g><g id="Camada_3" data-name="Camada 3"><rect class="cls-4" x="5" y="8" width="8" height="2" rx="1"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/folder-new.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:#edb51f;}.cls-2{fill:#e6a928;}.cls-3{fill:url(#Gradiente_sem_nome_5);}.cls-4{fill:#53c23d;}</style><linearGradient id="Gradiente_sem_nome_5" x1="1.8115" y1="2.3769" x2="6.3731" y2="6.9385" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe599"/><stop offset="1" stop-color="#ffc938"/></linearGradient></defs><path class="cls-1" d="M6.2941,2H4l-.7618-.7618A.8134.8134,0,0,0,2.6631,1H1.3765A.3765.3765,0,0,0,1,1.3765V3.918A.082.082,0,0,0,1.082,4H6.918A.082.082,0,0,0,7,3.918V2.7059A.7058.7058,0,0,0,6.2941,2Z"/><path class="cls-2" d="M1,6H7A0,0,0,0,1,7,6v.68A.32.32,0,0,1,6.68,7H1.32A.32.32,0,0,1,1,6.68V6A0,0,0,0,1,1,6Z"/><path class="cls-3" d="M6.455,2.5H4.7038a.864.864,0,0,0-.3861.0911l-.7126.3564A.4983.4983,0,0,1,3.3825,3H1.3215A.3216.3216,0,0,0,1,3.3215V6.1784A.3216.3216,0,0,0,1.3216,6.5H6.6785A.3216.3216,0,0,0,7,6.1785V3.045A.545.545,0,0,0,6.455,2.5Z"/><rect class="cls-4" x="6" y="1" width="1" height="3" rx="0.2"/><rect class="cls-4" x="5" y="2" width="3" height="1" rx="0.2"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/folder-settings.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:#edb51f;}.cls-2{fill:#e6a928;}.cls-3{fill:url(#Gradiente_sem_nome_5);}.cls-4{fill:url(#Gradiente_sem_nome_2);}.cls-5{fill:#fff;}</style><linearGradient id="Gradiente_sem_nome_5" x1="1.8115" y1="2.3769" x2="6.3731" y2="6.9385" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe599"/><stop offset="1" stop-color="#ffc938"/></linearGradient><linearGradient id="Gradiente_sem_nome_2" x1="4.4982" y1="6.4379" x2="7.3734" y2="3.5627" gradientTransform="matrix(1, 0, 0, -1, 0, 10)" gradientUnits="userSpaceOnUse"><stop offset="0.1453" stop-color="#9da5ad"/><stop offset="0.8939" stop-color="#5a6670"/></linearGradient></defs><path class="cls-1" d="M6.2941,2H4l-.7618-.7618A.8134.8134,0,0,0,2.6631,1H1.3765A.3765.3765,0,0,0,1,1.3765V3.918A.082.082,0,0,0,1.082,4H6.918A.082.082,0,0,0,7,3.918V2.7059A.7058.7058,0,0,0,6.2941,2Z"/><path class="cls-2" d="M1,6H7A0,0,0,0,1,7,6v.68A.32.32,0,0,1,6.68,7H1.32A.32.32,0,0,1,1,6.68V6A0,0,0,0,1,1,6Z"/><path class="cls-3" d="M6.455,2.5H4.7038a.864.864,0,0,0-.3861.0911l-.7126.3564A.4983.4983,0,0,1,3.3825,3H1.3215A.3216.3216,0,0,0,1,3.3215V6.1784A.3216.3216,0,0,0,1.3216,6.5H6.6785A.3216.3216,0,0,0,7,6.1785V3.045A.545.545,0,0,0,6.455,2.5Z"/><path class="cls-4" d="M7.4141,5.194A1.5541,1.5541,0,0,0,7.4281,5a1.7142,1.7142,0,0,0-.014-.2l.42-.326a.1014.1014,0,0,0,.0239-.128L7.46,3.654a.0976.0976,0,0,0-.1214-.044l-.4954.2a1.4391,1.4391,0,0,0-.3363-.196l-.0736-.53A.1007.1007,0,0,0,6.3337,3H5.5378a.1009.1009,0,0,0-.0995.084l-.0736.53a1.44,1.44,0,0,0-.3362.196l-.4955-.2a.0975.0975,0,0,0-.1213.044l-.398.692a.099.099,0,0,0,.0239.128l.42.326a1.7142,1.7142,0,0,0-.014.2,1.5541,1.5541,0,0,0,.014.194l-.42.332a.099.099,0,0,0-.0239.128l.398.692a.1.1,0,0,0,.1213.044l.4955-.202a1.38,1.38,0,0,0,.3362.198l.0736.53A.1009.1009,0,0,0,5.5378,7h.7959a.1007.1007,0,0,0,.0995-.084l.0736-.53a1.45,1.45,0,0,0,.3363-.198l.4954.202A.1.1,0,0,0,7.46,6.346l.398-.692a.1014.1014,0,0,0-.0239-.128Z"/><ellipse class="cls-5" cx="5.9354" cy="5" rx="0.6451" ry="0.6667"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/folder-up.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:#edb51f;}.cls-2{fill:#e6a928;}.cls-3{fill:url(#Gradiente_sem_nome_5);}.cls-4{fill:#53c23d;}</style><linearGradient id="Gradiente_sem_nome_5" x1="1.8115" y1="2.3769" x2="6.3731" y2="6.9385" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe599"/><stop offset="1" stop-color="#ffc938"/></linearGradient></defs><path class="cls-1" d="M6.2941,2H4l-.7618-.7618A.8134.8134,0,0,0,2.6631,1H1.3765A.3765.3765,0,0,0,1,1.3765V3.918A.082.082,0,0,0,1.082,4H6.918A.082.082,0,0,0,7,3.918V2.7059A.7058.7058,0,0,0,6.2941,2Z"/><path class="cls-2" d="M1,6H7A0,0,0,0,1,7,6v.68A.32.32,0,0,1,6.68,7H1.32A.32.32,0,0,1,1,6.68V6A0,0,0,0,1,1,6Z"/><path class="cls-3" d="M6.455,2.5H4.7038a.864.864,0,0,0-.3861.0911l-.7126.3564A.4983.4983,0,0,1,3.3825,3H1.3215A.3216.3216,0,0,0,1,3.3215V6.1784A.3216.3216,0,0,0,1.3216,6.5H6.6785A.3216.3216,0,0,0,7,6.1785V3.045A.545.545,0,0,0,6.455,2.5Z"/><path class="cls-4" d="M7.7967,2.7289,6.6356,1.1807a.17.17,0,0,0-.2712,0L5.2033,2.7289A.1694.1694,0,0,0,5.3388,3H6V5.8058A.1941.1941,0,0,0,6.1941,6h.6118A.1941.1941,0,0,0,7,5.8058V3h.6612A.1694.1694,0,0,0,7.7967,2.7289Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/folder.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:#edb51f;}.cls-2{fill:#e6a928;}.cls-3{fill:url(#Gradiente_sem_nome_5);}</style><linearGradient id="Gradiente_sem_nome_5" x1="1.8115" y1="2.3769" x2="6.3731" y2="6.9385" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe599"/><stop offset="1" stop-color="#ffc938"/></linearGradient></defs><path class="cls-1" d="M6.2941,2H4l-.7618-.7618A.8134.8134,0,0,0,2.6631,1H1.3765A.3765.3765,0,0,0,1,1.3765V3.918A.082.082,0,0,0,1.082,4H6.918A.082.082,0,0,0,7,3.918V2.7059A.7058.7058,0,0,0,6.2941,2Z"/><path class="cls-2" d="M1,6H7A0,0,0,0,1,7,6v.68A.32.32,0,0,1,6.68,7H1.32A.32.32,0,0,1,1,6.68V6A0,0,0,0,1,1,6Z"/><path class="cls-3" d="M6.455,2.5H4.7038a.864.864,0,0,0-.3861.0911l-.7126.3564A.4983.4983,0,0,1,3.3825,3H1.3215A.3216.3216,0,0,0,1,3.3215V6.1784A.3216.3216,0,0,0,1.3216,6.5H6.6785A.3216.3216,0,0,0,7,6.1785V3.045A.545.545,0,0,0,6.455,2.5Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/go-down.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_3);}</style><linearGradient id="Gradiente_sem_nome_3" x1="1.2857" y1="2.6881" x2="6.1591" y2="5.5017" gradientTransform="matrix(0, 1, 1, 0, 0, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#82d176"/><stop offset="1" stop-color="#3fbf46"/></linearGradient></defs><path class="cls-1" d="M3.8635,6.9288l-1.8357-2.68A.16.16,0,0,1,2.1644,4H3V1.25A.25.25,0,0,1,3.25,1h1.5A.25.25,0,0,1,5,1.25V4h.8356a.16.16,0,0,1,.1366.2484l-1.8357,2.68A.1665.1665,0,0,1,3.8635,6.9288Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/go-first.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_3);}</style><linearGradient id="Gradiente_sem_nome_3" x1="5.8153" y1="1.3854" x2="3.0912" y2="6.1038" gradientTransform="matrix(-1, 0, 0, 1, 8, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#82d176"/><stop offset="1" stop-color="#3fbf46"/></linearGradient></defs><path class="cls-1" d="M1.1641,2h.6718A.1641.1641,0,0,1,2,2.1641V3.8459L4.7433,2.0278A.1652.1652,0,0,1,5,2.1644V3H6.7549A.2451.2451,0,0,1,7,3.2451v1.51A.2451.2451,0,0,1,6.7549,5H5v.8356a.1652.1652,0,0,1-.2567.1366L2,4.1541V5.8359A.1641.1641,0,0,1,1.8359,6H1.1641A.1641.1641,0,0,1,1,5.8359V2.1641A.1641.1641,0,0,1,1.1641,2Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/go-home.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_3);}.cls-2{fill:url(#Gradiente_sem_nome_4);}.cls-3{fill:url(#Gradiente_sem_nome_2);}</style><linearGradient id="Gradiente_sem_nome_3" x1="5.668" y1="4.3618" x2="16.0531" y2="22.3493" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#199ae1"/><stop offset="1" stop-color="#017ad5"/></linearGradient><linearGradient id="Gradiente_sem_nome_4" x1="10.4297" y1="15.9631" x2="13.5033" y2="21.2868" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0f395c"/><stop offset="1" stop-color="#092a50"/></linearGradient><linearGradient id="Gradiente_sem_nome_2" x1="7.9495" y1="4.5973" x2="14.227" y2="15.4702" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#086496"/><stop offset="1" stop-color="#004f8a"/></linearGradient></defs><path class="cls-1" d="M12,3,9,6.375V4.4028A.4028.4028,0,0,0,8.5972,4H6.4028A.4028.4028,0,0,0,6,4.4028V9.75L4,12H5v8.1666A.8333.8333,0,0,0,5.8333,21H18.1667A.8333.8333,0,0,0,19,20.1666V12h1Z"/><path class="cls-2" d="M10.5,16h3a.5.5,0,0,1,.5.5V21a0,0,0,0,1,0,0H10a0,0,0,0,1,0,0V16.5A.5.5,0,0,1,10.5,16Z"/><path class="cls-3" d="M20.4193,11.3547l-7.853-8.7255a.7618.7618,0,0,0-1.1326,0l-7.853,8.7255A.3867.3867,0,0,0,3.8682,12H5l6.766-7.7325a.3109.3109,0,0,1,.468,0L19,12h1.1318A.3867.3867,0,0,0,20.4193,11.3547Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/go-last.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_3);}</style><linearGradient id="Gradiente_sem_nome_3" x1="3.0912" y1="1.8962" x2="5.8153" y2="6.6146" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#82d176"/><stop offset="1" stop-color="#3fbf46"/></linearGradient></defs><path class="cls-1" d="M6.8359,2H6.1641A.1641.1641,0,0,0,6,2.1641V3.8459L3.2567,2.0278A.1652.1652,0,0,0,3,2.1644V3H1.2451A.2451.2451,0,0,0,1,3.2451v1.51A.2451.2451,0,0,0,1.2451,5H3v.8356a.1652.1652,0,0,0,.2567.1366L6,4.1541V5.8359A.1641.1641,0,0,0,6.1641,6h.6718A.1641.1641,0,0,0,7,5.8359V2.1641A.1641.1641,0,0,0,6.8359,2Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/go-next.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_3);}</style><linearGradient id="Gradiente_sem_nome_3" x1="2.6956" y1="2.1266" x2="4.7492" y2="5.6836" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#82d176"/><stop offset="1" stop-color="#3fbf46"/></linearGradient></defs><path class="cls-1" d="M6.9288,3.8635l-2.68-1.8357A.16.16,0,0,0,4,2.1644V3H1.25A.25.25,0,0,0,1,3.25v1.5A.25.25,0,0,0,1.25,5H4v.8356a.16.16,0,0,0,.2484.1366l2.68-1.8357A.1665.1665,0,0,0,6.9288,3.8635Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/go-previous.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_3);}</style><linearGradient id="Gradiente_sem_nome_3" x1="4.7492" y1="2.3164" x2="2.6956" y2="5.8734" gradientTransform="matrix(-1, 0, 0, 1, 8, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#82d176"/><stop offset="1" stop-color="#3fbf46"/></linearGradient></defs><path class="cls-1" d="M1.0712,3.8635l2.68-1.8357A.16.16,0,0,1,4,2.1644V3H6.75A.25.25,0,0,1,7,3.25v1.5A.25.25,0,0,1,6.75,5H4v.8356a.16.16,0,0,1-.2484.1366l-2.68-1.8357A.1665.1665,0,0,1,1.0712,3.8635Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/go-up.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_3);}</style><linearGradient id="Gradiente_sem_nome_3" x1="6.1591" y1="2.4983" x2="1.2857" y2="5.3119" gradientTransform="translate(0 8) rotate(-90)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#82d176"/><stop offset="1" stop-color="#3fbf46"/></linearGradient></defs><path class="cls-1" d="M3.8635,1.0712l-1.8357,2.68A.16.16,0,0,0,2.1644,4H3V6.75A.25.25,0,0,0,3.25,7h1.5A.25.25,0,0,0,5,6.75V4h.8356a.16.16,0,0,0,.1366-.2484l-1.8357-2.68A.1665.1665,0,0,0,3.8635,1.0712Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_DocumentationDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,731 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546"
+       xlink:href="#aigrd2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548"
+       xlink:href="#aigrd3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3938">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3940" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3942" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3944" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3946" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3948">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3950" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3952" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3954" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3956" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3958">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3960" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3962" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3964" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3966" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3968">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3970" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3972" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3974" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3976" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3978">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3980" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3982" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3984" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3986" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3988">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3990" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3992" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3994" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3996" />
+    </filter>
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <rect
+       width="4.349854"
+       height="4.349854"
+       rx="0.76958966"
+       ry="0.76958966"
+       x="85.381561"
+       y="99.493881"
+       id="rect5876"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter3988)" />
+    <g
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
+       id="g2679">
+      <rect
+         width="34.875"
+         height="40.920494"
+         rx="1.1449448"
+         ry="1.1468204"
+         x="6.6035528"
+         y="3.6464462"
+         transform="matrix(1.003584,0,0,1.001943,-0.12722,-0.153534)"
+         id="rect15391"
+         style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3978)" />
+      <rect
+         width="32.775887"
+         height="38.946384"
+         rx="0.14851625"
+         ry="0.14875954"
+         x="7.6660538"
+         y="4.5839462"
+         transform="matrix(1.003584,0,0,1.001943,-0.12722,-0.153534)"
+         id="rect15660"
+         style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3968)" />
+      <g
+         transform="translate(0.646447,-0.03798933)"
+         id="g2270"
+         style="display:inline;filter:url(#filter3958)">
+        <g
+           transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)"
+           id="g1440"
+           style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4">
+          <radialGradient
+             cx="20.892099"
+             cy="114.5684"
+             r="5.256"
+             fx="20.892099"
+             fy="114.5684"
+             id="radialGradient1442"
+             gradientUnits="userSpaceOnUse">
+            <stop
+               id="stop1444"
+               style="stop-color:#f0f0f0;stop-opacity:1"
+               offset="0" />
+            <stop
+               id="stop1446"
+               style="stop-color:#474747;stop-opacity:1"
+               offset="1" />
+          </radialGradient>
+          <path
+             d="m 23.428,113.07 c 0,1.973 -1.6,3.572 -3.573,3.572 -1.974,0 -3.573,-1.6 -3.573,-3.572 0,-1.974 1.6,-3.573 3.573,-3.573 1.973,0 3.573,1.6 3.573,3.573 z"
+             id="path1448"
+             style="stroke:none" />
+          <radialGradient
+             cx="20.892099"
+             cy="64.567902"
+             r="5.257"
+             fx="20.892099"
+             fy="64.567902"
+             id="radialGradient1450"
+             gradientUnits="userSpaceOnUse">
+            <stop
+               id="stop1452"
+               style="stop-color:#f0f0f0;stop-opacity:1"
+               offset="0" />
+            <stop
+               id="stop1454"
+               style="stop-color:#474747;stop-opacity:1"
+               offset="1" />
+          </radialGradient>
+          <path
+             d="m 23.428,63.07 c 0,1.973 -1.6,3.573 -3.573,3.573 -1.974,0 -3.573,-1.6 -3.573,-3.573 0,-1.974 1.6,-3.573 3.573,-3.573 1.973,0 3.573,1.6 3.573,3.573 z"
+             id="path1456"
+             style="stroke:none" />
+        </g>
+        <path
+           d="m 9.9950109,29.952326 c 0,0.453204 -0.3675248,0.820499 -0.8207288,0.820499 -0.4534338,0 -0.8207289,-0.367524 -0.8207289,-0.820499 0,-0.453434 0.3675248,-0.820729 0.8207289,-0.820729 0.453204,0 0.8207288,0.367525 0.8207288,0.820729 z"
+           id="path15570"
+           style="fill:url(#radialGradient3546);fill-rule:nonzero;stroke:none" />
+        <path
+           d="m 9.9950109,18.467176 c 0,0.453204 -0.3675248,0.820729 -0.8207288,0.820729 -0.4534338,0 -0.8207289,-0.367525 -0.8207289,-0.820729 0,-0.453434 0.3675248,-0.820729 0.8207289,-0.820729 0.453204,0 0.8207288,0.367525 0.8207288,0.820729 z"
+           id="path15577"
+           style="fill:url(#radialGradient3548);fill-rule:nonzero;stroke:none" />
+      </g>
+      <g
+         transform="matrix(0.909091,0,0,1,2.363628,0)"
+         id="g2253"
+         style="filter:url(#filter3948)">
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="15.000002"
+           y="9"
+           id="rect15686"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="15.000002"
+           y="11"
+           id="rect15688"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="15.000002"
+           y="13"
+           id="rect15690"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="15.000002"
+           y="15"
+           id="rect15692"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="15.000002"
+           y="17"
+           id="rect15694"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="15.000002"
+           y="19"
+           id="rect15696"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="15.000002"
+           y="21"
+           id="rect15698"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="15.000002"
+           y="23"
+           id="rect15700"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="9.9000053"
+           height="1"
+           rx="0.068204239"
+           ry="0.065390877"
+           x="14.999992"
+           y="25"
+           id="rect15732"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="14.999992"
+           y="29"
+           id="rect15736"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="14.999992"
+           y="31"
+           id="rect15738"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="14.999992"
+           y="33"
+           id="rect15740"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="22.000004"
+           height="1"
+           rx="0.15156493"
+           ry="0.065390877"
+           x="14.999992"
+           y="35"
+           id="rect15742"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           width="15.400014"
+           height="1"
+           rx="0.10609552"
+           ry="0.065390877"
+           x="14.999992"
+           y="37"
+           id="rect15744"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+      </g>
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <path
+       d="m -20.25,5.875 c -1.059019,2.63e-5 -2.147637,0.1232356 -3.28125,0.34375 -1.132925,0.2204283 -2.380162,0.5375125 -3.75,1 a 0.13496364,0.13496364 0 0 0 -0.03125,0 0.13496364,0.13496364 0 0 0 -0.03125,0.03125 0.13496364,0.13496364 0 0 0 -0.03125,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 l 0,5.15625 a 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 c 1.142438,-0.719043 2.233352,-1.267138 3.28125,-1.625 1.048141,-0.368756 2.043116,-0.562479 2.9375,-0.5625 0.949218,2.1e-5 1.644925,0.210545 2.15625,0.625 0.508723,0.40209 0.781238,0.98304 0.78125,1.71875 -10e-6,0.480657 -0.144188,0.95141 -0.4375,1.4375 -0.282991,0.487016 -0.740265,1.030495 -1.375,1.59375 L -20.9375,16.75 c -1.201459,1.08049 -1.989243,1.991022 -2.375,2.71875 -0.383113,0.711446 -0.562505,1.519324 -0.5625,2.4375 l 0,0.8125 a 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 l 6.09375,0 a 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,-0.03125 0.13496364,0.13496364 0 0 0 0.03125,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 l 0,-0.75 c -1.1e-5,-0.468196 0.14837,-0.892849 0.375,-1.28125 0.222295,-0.391284 0.708073,-0.950359 1.46875,-1.625 l 1.0625,-0.9375 c 1.066588,-0.98231 1.830659,-1.884654 2.28125,-2.75 0.449269,-0.874046 0.687482,-1.87342 0.6875,-2.96875 -1.8e-5,-2.126265 -0.743769,-3.7340276 -2.21875,-4.84375 -1.475197,-1.1210252 -3.60624,-1.6874737 -6.375,-1.6875 z m -3.5625,19.15625 a 0.13496364,0.13496364 0 0 0 -0.03125,0.03125 0.13496364,0.13496364 0 0 0 -0.03125,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 l 0,5.84375 a 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0.03125 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 l 6.09375,0 a 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,0 0.13496364,0.13496364 0 0 0 0.03125,-0.03125 0.13496364,0.13496364 0 0 0 0.03125,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 l 0,-5.84375 a 0.13496364,0.13496364 0 0 0 0,-0.03125 0.13496364,0.13496364 0 0 0 0,-0.03125 0.13496364,0.13496364 0 0 0 -0.03125,-0.03125 0.13496364,0.13496364 0 0 0 -0.03125,-0.03125 0.13496364,0.13496364 0 0 0 -0.03125,0 0.13496364,0.13496364 0 0 0 -0.03125,0 l -6.09375,0 a 0.13496364,0.13496364 0 0 0 -0.03125,0 0.13496364,0.13496364 0 0 0 -0.03125,0 z"
+       transform="matrix(0.68967077,0,0,0.67775017,97.54001,93.616121)"
+       id="path1554"
+       style="font-size:34.15322876px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#2b1100;fill-opacity:1;stroke:#ffffff;stroke-width:1.09947276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.78612713;filter:url(#filter3938);font-family:Bitstream Vera Sans" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_Figure.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1226 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28909"
+   height="283.28833"
+   id="svg2872"
+   sodipodi:docname="graphic_logo_Figure.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   inkscape:export-filename="/home/lilge/Software/octave/dev-default/libgui/src/icons/graphic_logo_Figure.png"
+   inkscape:export-xdpi="86.752602"
+   inkscape:export-ydpi="86.752602">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1024"
+     id="namedview218"
+     showgrid="false"
+     inkscape:zoom="2.04"
+     inkscape:cx="142.78284"
+     inkscape:cy="161.252"
+     inkscape:window-x="0"
+     inkscape:window-y="30"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2872"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.9367132,-2.1046661,6.4603259,7.0205689,-2817.9548,-2144.284)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3556"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3554"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3552"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3550"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548-0"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546-5"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-8"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-6"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-4"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3417"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3415"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3413"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3411"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3409"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3405"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3403"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3401"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3399"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292)" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         id="stop5050-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         id="stop4544-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         id="stop15664-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-8"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-9"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-3"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-4"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-8"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-5"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         id="stop270-6"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-9"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         id="stop260-8"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-0"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-4"
+       xlink:href="#linearGradient4542-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         id="stop4442-2"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-4"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-9"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         id="stop4456-3"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-2"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         id="stop4469-9"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-9"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         id="stop2368-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-8"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         id="stop2848-1"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-1"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         id="stop2968-2"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-7"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         id="stop2976-3"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-3"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         id="stop2986"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2988"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         id="stop2996-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-9"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-4"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         id="stop3757-8"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-9"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-0"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       id="filter3683"
+       style="color-interpolation-filters:sRGB">
+      <feColorMatrix
+         values="0"
+         type="saturate"
+         id="feColorMatrix3685" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       id="filter3827"
+       style="color-interpolation-filters:sRGB">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835" />
+    </filter>
+    <radialGradient
+       cx="55"
+       cy="125"
+       r="14.375"
+       fx="55"
+       fy="125"
+       id="radialGradient1758"
+       xlink:href="#linearGradient12512"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       id="linearGradient9772"
+       xlink:href="#linearGradient9766"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="18.112709"
+       y1="31.36775"
+       x2="15.514889"
+       y2="6.1802502"
+       id="linearGradient3104"
+       xlink:href="#linearGradient3096"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="13.035696"
+       y1="32.567184"
+       x2="12.853771"
+       y2="46.689312"
+       id="linearGradient322"
+       xlink:href="#linearGradient319"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
+    <linearGradient
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053"
+       id="linearGradient491"
+       xlink:href="#linearGradient3983"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         id="stop3984"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         offset="0" />
+      <stop
+         id="stop3985"
+         style="stop-color:#fffffe;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.706017"
+       cy="37.517986"
+       r="30.905205"
+       fx="20.706017"
+       fy="37.517986"
+       id="radialGradient238"
+       xlink:href="#linearGradient1789"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         id="stop1790"
+         style="stop-color:#202020;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1791"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319">
+      <stop
+         id="stop320"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop321"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         style="stop-color:#424242;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3100"
+         style="stop-color:#777777;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         id="stop9768"
+         style="stop-color:#6194cb;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9770"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient5027"
+       xlink:href="#linearGradient5048-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <linearGradient
+       id="linearGradient5048-8">
+      <stop
+         id="stop5050-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-2"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5029"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <linearGradient
+       id="linearGradient5060">
+      <stop
+         id="stop5062"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5064"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5031"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       id="filter3827-2"
+       style="color-interpolation-filters:sRGB">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829-1" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831-3" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833-2" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835-8" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       id="filter3827-6"
+       style="color-interpolation-filters:sRGB">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829-7" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831-1" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833-9" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835-3" />
+    </filter>
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3979"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
+    <linearGradient
+       id="linearGradient2817">
+      <stop
+         id="stop2819"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2821"
+         style="stop-color:#ffffff;stop-opacity:0.48453608"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="143.31842"
+       cy="108.89388"
+       r="11"
+       fx="143.31842"
+       fy="108.89388"
+       id="radialGradient3938-5"
+       xlink:href="#linearGradient4391"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.09090829,-2.0909091,2.5430488,-0.11063222,-242.64984,363.89573)" />
+    <linearGradient
+       id="linearGradient4391">
+      <stop
+         offset="0"
+         style="stop-color:#b3cce5;stop-opacity:1"
+         id="stop4393" />
+      <stop
+         offset="1"
+         style="stop-color:#f6f7f5;stop-opacity:1"
+         id="stop4395" />
+    </linearGradient>
+    <linearGradient
+       xlink:href="#linearGradient2697"
+       id="linearGradient4387"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849" />
+    <linearGradient
+       id="linearGradient2697">
+      <stop
+         id="stop2699"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2701"
+         style="stop-color:#3d556f;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       xlink:href="#linearGradient319"
+       id="linearGradient4389"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
+       x1="24.674307"
+       y1="44.50301"
+       x2="24.674307"
+       y2="98.890182" />
+  </defs>
+  <path
+     inkscape:connector-curvature="0"
+     style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none;stroke-width:8.45197201"
+     id="path5874"
+     d="M 49.676747,29.423848 C 5.7616507,77.147343 16.404628,166.08407 73.435833,228.06103 130.46703,290.03807 212.29311,301.58938 256.20826,253.86591 300.12344,206.14244 289.51072,117.20208 232.47947,55.225124 175.44826,-6.7520309 93.591927,-18.299707 49.676747,29.423848 Z M 89.49813,49.248202 c 34.50568,-37.497936 97.9499,-29.341191 141.71768,18.22214 43.76783,47.563478 51.2736,116.509678 16.76792,154.007608 -34.50565,37.49786 -97.96652,29.35954 -141.73439,-18.20394 C 62.481485,155.71054 54.992446,86.746332 89.49813,49.248202 Z" />
+  <rect
+     width="4.349854"
+     height="4.349854"
+     rx="0.76958966"
+     ry="0.76958966"
+     x="85.381561"
+     y="99.493881"
+     transform="matrix(8.4519724,0,0,8.4519724,-511.80557,-794.54775)"
+     id="rect5876"
+     style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter3827)" />
+  <rect
+     width="34.875"
+     height="40.920494"
+     rx="1.1449448"
+     ry="1.1468204"
+     x="6.6035528"
+     y="3.6464462"
+     transform="matrix(5.1226198,0,0,5.1142435,66.188968,-14.496546)"
+     id="rect15391"
+     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter3827)" />
+  <rect
+     width="32.775887"
+     height="38.946384"
+     rx="0.14851625"
+     ry="0.14875954"
+     x="7.6660538"
+     y="4.5839462"
+     transform="matrix(5.1226198,0,0,5.1142435,66.188968,-14.496546)"
+     id="rect15660"
+     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter3827)" />
+  <text
+     x="148.18649"
+     y="64.117371"
+     id="text3260"
+     xml:space="preserve"
+     style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:24px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter3827)"><tspan
+       x="148.18649"
+       y="64.117371"
+       id="tspan3262"
+       style="font-weight:bold;font-size:32px;-inkscape-font-specification:'Sans Bold'" /></text>
+  <rect
+     style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:6.28858852;stroke-miterlimit:4;stroke-dasharray:none"
+     id="rect5878"
+     y="94.806831"
+     x="3.1442943"
+     ry="15.320505"
+     rx="15.320505"
+     height="86.594139"
+     width="86.594139" />
+  <rect
+     style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:6.28858852;stroke-miterlimit:4;stroke-dasharray:none"
+     id="rect5880"
+     y="208.16928"
+     x="226.93687"
+     ry="9.2558413"
+     rx="9.2558413"
+     height="52.31562"
+     width="52.31562" />
+  <path
+     style="fill:none;stroke:#43b7d6;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294118"
+     d="m 119.10397,28.486379 c 143.65725,-0.51811 143.65725,-0.51811 143.65725,-0.51811"
+     id="path1187"
+     inkscape:connector-curvature="0" />
+  <use
+     x="0"
+     y="0"
+     xlink:href="#path1187"
+     id="use1189"
+     transform="translate(0,42)"
+     width="100%"
+     height="100%" />
+  <use
+     x="0"
+     y="0"
+     xlink:href="#use1189"
+     id="use1191"
+     transform="translate(0,40)"
+     width="100%"
+     height="100%" />
+  <use
+     x="0"
+     y="0"
+     xlink:href="#use1191"
+     id="use1193"
+     transform="translate(0,38)"
+     width="100%"
+     height="100%" />
+  <use
+     x="0"
+     y="0"
+     xlink:href="#use1193"
+     id="use1195"
+     transform="translate(0,42)"
+     width="100%"
+     height="100%" />
+  <path
+     style="fill:none;stroke:#42b6d6;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294118"
+     d="m 119.10397,28.486379 c 0,160.000001 0,162.453661 0,162.453661"
+     id="path1199"
+     inkscape:connector-curvature="0" />
+  <use
+     x="0"
+     y="0"
+     xlink:href="#path1199"
+     id="use1201"
+     transform="translate(48)"
+     width="100%"
+     height="100%" />
+  <use
+     x="0"
+     y="0"
+     xlink:href="#use1201"
+     id="use1203"
+     transform="translate(48)"
+     width="100%"
+     height="100%" />
+  <use
+     x="0"
+     y="0"
+     xlink:href="#use1203"
+     id="use1205"
+     transform="translate(48)"
+     width="100%"
+     height="100%" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 253.70314,122.99143 c 0,0 -37.8439,33.69118 -61.56862,38.39216 -22.07101,4.37329 -66.56863,-11.17648 -66.56863,-11.17648"
+     id="path4307"
+     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#0690c0;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+     sodipodi:nodetypes="cac" />
+  <path
+     inkscape:connector-curvature="0"
+     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff7f2a;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+     id="path1432"
+     d="m 253.68355,43.834571 c 0,0 -26.93417,36.533276 -44.67349,50.217805 -12.18881,9.402734 -26.48873,16.290374 -41.16667,20.931134 -13.57364,4.29161 -20.09338,5.25588 -42.27749,6.04713"
+     sodipodi:nodetypes="caac" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_FileEditor.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1060 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546"
+       xlink:href="#aigrd2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548"
+       xlink:href="#aigrd3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3556"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3554"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3552"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3550"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548-0"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546-5"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-8"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-6"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-4"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3417"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3415"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3413"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3411"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3409"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3405"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3403"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3401"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3399"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         id="stop5050-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         id="stop4544-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         id="stop15664-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-8"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-9"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-3"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-4"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-8"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-5"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         id="stop270-6"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-9"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         id="stop260-8"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-0"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-4"
+       xlink:href="#linearGradient4542-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         id="stop4442-2"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-4"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-9"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         id="stop4456-3"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-2"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         id="stop4469-9"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-9"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         id="stop2368-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-8"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         id="stop2848-1"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-1"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         id="stop2968-2"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-7"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         id="stop2976-3"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-3"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         id="stop2986"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2988"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         id="stop2996-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-9"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-4"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         id="stop3757-8"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-9"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-0"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3675"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3677"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3679"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3681"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3683">
+      <feColorMatrix
+         values="0"
+         type="saturate"
+         id="feColorMatrix3685" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835" />
+    </filter>
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <g
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
+       id="g2679">
+      <g
+         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
+         id="g3025-4">
+        <g
+           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
+           id="layer1"
+           style="display:inline">
+          <path
+             d="m 11.505723,5.4942766 0,37.9065924"
+             id="path15672"
+             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
+        </g>
+        <g
+           id="g3786"
+           style="filter:url(#filter3827)">
+          <rect
+             width="4.349854"
+             height="4.349854"
+             rx="0.76958966"
+             ry="0.76958966"
+             x="85.381561"
+             y="99.493881"
+             transform="translate(47.719063,1.6625723)"
+             id="rect5876"
+             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+          <rect
+             width="34.875"
+             height="40.920494"
+             rx="1.1449448"
+             ry="1.1468204"
+             x="6.6035528"
+             y="3.6464462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15391"
+             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="32.775887"
+             height="38.946384"
+             rx="0.14851625"
+             ry="0.14875954"
+             x="7.6660538"
+             y="4.5839462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15660"
+             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <g
+             transform="matrix(0.54901938,0,0,0.60392127,117.6091,94.047504)"
+             id="g2253">
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="9"
+               id="rect15686"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="11"
+               id="rect15688"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="13"
+               id="rect15690"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="15"
+               id="rect15692"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="17"
+               id="rect15694"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="19"
+               id="rect15696"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="21"
+               id="rect15698"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="23"
+               id="rect15700"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="9.9000053"
+               height="1"
+               rx="0.068204239"
+               ry="0.065390877"
+               x="14.999992"
+               y="25"
+               id="rect15732"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="29"
+               id="rect15736"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="31"
+               id="rect15738"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="33"
+               id="rect15740"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="35"
+               id="rect15742"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="15.400014"
+               height="1"
+               rx="0.10609552"
+               ry="0.065390877"
+               x="14.999992"
+               y="37"
+               id="rect15744"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          </g>
+          <g
+             transform="translate(2.5089168,-0.50178336)"
+             id="g3499">
+            <g
+               transform="matrix(0.49605972,-0.13291888,0.13291888,0.49605972,123.52135,84.743061)"
+               id="g1574"
+               style="filter:url(#filter3683)">
+              <path
+                 d="m 17.34116,32.5 5.625,-5.625 20.093749,-9.75 c 3.25,-1.25 5.1875,3.375 2.3125,5 L 25.34116,31.5 l -8,1 z"
+                 transform="translate(-29.75546,19)"
+                 id="path2960"
+                 style="color:#000000;fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:0.93443578;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 38.330708,20 c 0,0 1.4375,0.09375 2,1.34375 0.579493,1.287761 0,2.65625 0,2.65625 l 5.03125,-2.46875 c 0,0 1.452032,-0.881367 0.65625,-2.84375 -0.784912,-1.935577 -2.6875,-1.15625 -2.6875,-1.15625 l -5,2.46875 z"
+                 transform="translate(-29.75546,19)"
+                 id="path2964"
+                 style="color:#000000;fill:url(#linearGradient3675);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 38.330708,20 c 0,0 1.4375,0.09375 2,1.34375 0.579493,1.287761 0,2.65625 0,2.65625 l 2,-1 c 0,0 0.827032,-1.318867 0.21875,-2.6875 C 41.924458,18.90625 40.330708,19 40.330708,19 l -2,1 z"
+                 transform="translate(-29.75546,19)"
+                 id="path2962"
+                 style="color:#000000;fill:url(#linearGradient3677);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 18.768208,31.78125 4.5,-4.5 c 1.5,0.8125 2.28125,2.15625 1.875,3.71875 l -6.375,0.78125 z"
+                 transform="translate(-29.75546,19)"
+                 id="path2982"
+                 style="color:#000000;fill:url(#radialGradient3679);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 20.111958,30.375 -1.625,1.59375 2.34375,-0.3125 c 0.21875,-0.71875 -0.1875,-1.0625 -0.71875,-1.28125 z"
+                 transform="translate(-29.75546,19)"
+                 id="path2992"
+                 style="color:#000000;fill:url(#linearGradient3681);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 23.268208,27.25 1.5625,1.25 15.38734,-7.31867 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 z"
+                 transform="translate(-29.75546,19)"
+                 id="path3002"
+                 style="color:#000000;fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 25.143208,31.0625 0.1875,-0.75 15.23109,-7.1296 c 0,0 -0.11016,0.613627 -0.215879,0.74935 L 25.143208,31.0625 z"
+                 transform="translate(-29.75546,19)"
+                 id="path3004"
+                 style="color:#000000;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+            </g>
+          </g>
+        </g>
+      </g>
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_FilesDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1308 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3556"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3554"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3552"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3550"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548-0"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546-5"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-8"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-6"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-4"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3417"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3415"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3413"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3411"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3409"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3405"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3403"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3401"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3399"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         id="stop5050-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         id="stop4544-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         id="stop15664-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-8"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-9"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-3"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-4"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-8"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-5"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         id="stop270-6"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-9"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         id="stop260-8"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-0"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-4"
+       xlink:href="#linearGradient4542-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         id="stop4442-2"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-4"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-9"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         id="stop4456-3"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-2"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         id="stop4469-9"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-9"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         id="stop2368-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-8"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         id="stop2848-1"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-1"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         id="stop2968-2"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-7"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         id="stop2976-3"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-3"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         id="stop2986"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2988"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         id="stop2996-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-9"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-4"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         id="stop3757-8"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-9"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-0"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3683">
+      <feColorMatrix
+         values="0"
+         type="saturate"
+         id="feColorMatrix3685" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835" />
+    </filter>
+    <radialGradient
+       cx="55"
+       cy="125"
+       r="14.375"
+       fx="55"
+       fy="125"
+       id="radialGradient1758"
+       xlink:href="#linearGradient12512"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       id="linearGradient9772"
+       xlink:href="#linearGradient9766"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="18.112709"
+       y1="31.36775"
+       x2="15.514889"
+       y2="6.1802502"
+       id="linearGradient3104"
+       xlink:href="#linearGradient3096"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="13.035696"
+       y1="32.567184"
+       x2="12.853771"
+       y2="46.689312"
+       id="linearGradient322"
+       xlink:href="#linearGradient319"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
+    <linearGradient
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053"
+       id="linearGradient491"
+       xlink:href="#linearGradient3983"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         id="stop3984"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         offset="0" />
+      <stop
+         id="stop3985"
+         style="stop-color:#fffffe;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.706017"
+       cy="37.517986"
+       r="30.905205"
+       fx="20.706017"
+       fy="37.517986"
+       id="radialGradient238"
+       xlink:href="#linearGradient1789"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         id="stop1790"
+         style="stop-color:#202020;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1791"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319">
+      <stop
+         id="stop320"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop321"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         style="stop-color:#424242;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3100"
+         style="stop-color:#777777;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         id="stop9768"
+         style="stop-color:#6194cb;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9770"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient5027"
+       xlink:href="#linearGradient5048-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <linearGradient
+       id="linearGradient5048-8">
+      <stop
+         id="stop5050-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-2"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5029"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <linearGradient
+       id="linearGradient5060">
+      <stop
+         id="stop5062"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5064"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5031"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+    <radialGradient
+       cx="24.35099"
+       cy="41.591846"
+       r="19.136078"
+       fx="24.35099"
+       fy="41.591846"
+       id="radialGradient9812"
+       xlink:href="#linearGradient9806"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.242494,0,31.50606)" />
+    <linearGradient
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       id="linearGradient9772-7"
+       xlink:href="#linearGradient9766-8"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="18.112709"
+       y1="31.36775"
+       x2="15.514889"
+       y2="6.1802502"
+       id="linearGradient3104-8"
+       xlink:href="#linearGradient3096-9"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="13.035696"
+       y1="32.567184"
+       x2="12.853771"
+       y2="46.689312"
+       id="linearGradient322-9"
+       xlink:href="#linearGradient319-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
+    <linearGradient
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053"
+       id="linearGradient491-8"
+       xlink:href="#linearGradient3983-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
+    <linearGradient
+       id="linearGradient3983-3">
+      <stop
+         id="stop3984-9"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         offset="0" />
+      <stop
+         id="stop3985-4"
+         style="stop-color:#fffffe;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.706017"
+       cy="37.517986"
+       r="30.905205"
+       fx="20.706017"
+       fy="37.517986"
+       id="radialGradient238-0"
+       xlink:href="#linearGradient1789-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
+    <linearGradient
+       id="linearGradient1789-9">
+      <stop
+         id="stop1790-3"
+         style="stop-color:#202020;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1791-2"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319-7">
+      <stop
+         id="stop320-2"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop321-9"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096-9">
+      <stop
+         id="stop3098-5"
+         style="stop-color:#424242;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3100-1"
+         style="stop-color:#777777;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766-8">
+      <stop
+         id="stop9768-8"
+         style="stop-color:#6194cb;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9770-2"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9806">
+      <stop
+         id="stop9808"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9810"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient6715"
+       xlink:href="#linearGradient5048-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <linearGradient
+       id="linearGradient5048-5">
+      <stop
+         id="stop5050-0"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-9"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-6"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient6717"
+       xlink:href="#linearGradient5060-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <linearGradient
+       id="linearGradient5060-9">
+      <stop
+         id="stop5062-1"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5064-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient6719"
+       xlink:href="#linearGradient5060-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <g
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
+       id="g2679">
+      <g
+         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
+         id="g3025-4">
+        <g
+           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
+           id="layer1"
+           style="display:inline">
+          <path
+             d="m 11.505723,5.4942766 0,37.9065924"
+             id="path15672"
+             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
+        </g>
+        <g
+           id="g3786"
+           style="filter:url(#filter3827)">
+          <rect
+             width="4.349854"
+             height="4.349854"
+             rx="0.76958966"
+             ry="0.76958966"
+             x="85.381561"
+             y="99.493881"
+             transform="translate(47.719063,1.6625723)"
+             id="rect5876"
+             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+          <rect
+             width="34.875"
+             height="40.920494"
+             rx="1.1449448"
+             ry="1.1468204"
+             x="6.6035528"
+             y="3.6464462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15391"
+             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="32.775887"
+             height="38.946384"
+             rx="0.14851625"
+             ry="0.14875954"
+             x="7.6660538"
+             y="4.5839462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15660"
+             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <g
+             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
+             id="g4142">
+            <g
+               id="layer1-4" />
+            <g
+               id="layer2" />
+          </g>
+          <g
+             transform="matrix(0.45094246,0,0,0.45094246,120.23042,100.66767)"
+             id="g6084">
+            <g
+               id="layer1-3">
+              <g
+                 transform="matrix(0.02262383,0,0,0.02086758,43.38343,36.36962)"
+                 id="g6707"
+                 style="display:inline">
+                <rect
+                   width="1339.6335"
+                   height="478.35718"
+                   x="-1559.2523"
+                   y="-150.69685"
+                   id="rect6709"
+                   style="opacity:0.40206185;color:#000000;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+                <path
+                   d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+                   id="path6711"
+                   style="opacity:0.40206185;color:#000000;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+                <path
+                   d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+                   id="path6713"
+                   style="opacity:0.40206185;color:#000000;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+              </g>
+              <path
+                 d="m 4.5217805,38.687417 c 0.021796,0.416304 0.4599049,0.832609 0.8762095,0.832609 l 31.327021,0 c 0.416302,0 0.810812,-0.416305 0.789016,-0.832609 L 36.577584,11.460682 c -0.0218,-0.416303 -0.459897,-0.832616 -0.876201,-0.832616 l -13.270873,0 c -0.485057,0 -1.234473,-0.315589 -1.401644,-1.1066322 L 20.417475,6.6283628 C 20.262006,5.8926895 19.535261,5.5904766 19.118957,5.5904766 l -14.7788595,0 c -0.4163128,0 -0.8108208,0.4163041 -0.7890249,0.8326083 L 4.5217805,38.687417 z"
+                 id="path216"
+                 style="fill:url(#radialGradient238-0);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3104-8);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+              <path
+                 d="m 5.2265927,22.5625 30.2655803,0"
+                 id="path9788"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.0421736,18.5625 30.4469304,0"
+                 id="path9784"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 4.9806965,12.5625 30.5073605,0"
+                 id="path9778"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.3861577,32.5625 30.1087233,0"
+                 id="path9798"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.5091398,34.5625 29.9877532,0"
+                 id="path9800"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.0421736,16.5625 30.4469304,0"
+                 id="path9782"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.0114345,14.5625 30.4771455,0"
+                 id="path9780"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 4.9220969,10.5625 15.2808151,0"
+                 id="path9776"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 4.8737534,8.5624999 14.7837336,0"
+                 id="path9774"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.3246666,28.5625 30.1692094,0"
+                 id="path9794"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.2880638,26.5625 30.2051202,0"
+                 id="path9792"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.2265927,24.5625 30.2655803,0"
+                 id="path9790"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.1958537,20.5625 30.2957953,0"
+                 id="path9786"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.3246666,30.5625 30.1692094,0"
+                 id="path9796"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 5.5091398,36.5625 29.9877532,0"
+                 id="path9802"
+                 style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+              <path
+                 d="m 6.068343,38.864023 c 0.016343,0.312228 -0.1809113,0.520379 -0.4985848,0.416303 l 0,0 C 5.2520766,39.176251 5.033027,38.968099 5.0166756,38.65587 L 4.068956,6.5913839 C 4.0526131,6.2791558 4.2341418,6.0906134 4.5463699,6.0906134 L 18.96842,6.0429196 c 0.312228,0 0.931943,0.3004727 1.132936,1.3221818 l 0.573489,2.8155346 C 20.247791,9.715379 20.255652,9.7010175 20.037287,9.0239299 L 19.631192,7.7647478 C 19.412142,7.0371009 18.932991,6.9328477 18.620763,6.9328477 l -12.8877741,0 c -0.3122276,0 -0.5094814,0.2081522 -0.4931306,0.5203887 L 6.1778636,38.968099 6.068343,38.864023 z"
+                 id="path219"
+                 style="opacity:0.45142858;color:#000000;fill:url(#linearGradient491-8);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21380496;marker:none;visibility:visible;display:block;overflow:visible" />
+              <g
+                 transform="matrix(1.040764,0,0.05449252,1.040764,-8.670199,2.670594)"
+                 id="g220"
+                 style="fill:#ffffff;fill-opacity:0.75706213;fill-rule:nonzero;stroke:none">
+                <path
+                   d="m 42.417183,8.5151772 c 0.0051,-0.097113 -0.128161,-0.2469882 -0.235117,-0.2470056 l -13.031401,-0.00212 c 0,0 0.911714,0.5879545 2.201812,0.5962436 l 11.053497,0.07102 c 0.01109,-0.2117278 0.0027,-0.2560322 0.01121,-0.4181395 z"
+                   id="path221"
+                   style="fill:#ffffff;fill-opacity:0.50847461" />
+              </g>
+              <path
+                 d="m 39.783532,39.51062 c 1.143894,-0.04406 1.963076,-1.096299 2.047035,-2.321005 0.791787,-11.548687 1.65936,-21.231949 1.65936,-21.231949 0.07215,-0.247484 -0.167911,-0.494967 -0.48014,-0.494967 l -34.3711566,0 c 0,0 -1.8503191,21.866892 -1.8503191,21.866892 -0.1145551,0.982066 -0.4660075,1.804718 -1.5498358,2.183713 l 34.5450565,-0.0027 z"
+                 id="path233"
+                 style="color:#000000;fill:url(#linearGradient9772-7);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+              <path
+                 d="m 9.6202444,16.463921 32.7910986,0.06481 -1.574046,20.001979 c -0.08432,1.071511 -0.450678,1.428215 -1.872656,1.428215 -1.871502,0 -28.677968,-0.03241 -31.394742,-0.03241 0.2335983,-0.320811 0.3337557,-0.988623 0.3350963,-1.004612 L 9.6202444,16.463921 z"
+                 id="path304"
+                 style="opacity:0.46590911;fill:none;stroke:url(#linearGradient322-9);stroke-width:0.9999997px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+              <path
+                 d="M 9.6202481,16.223182 8.4536014,31.866453 c 0,0 8.2961546,-4.148078 18.6663476,-4.148078 10.370193,0 15.55529,-11.495193 15.55529,-11.495193 l -33.0549909,0 z"
+                 id="path323"
+                 style="fill:#ffffff;fill-opacity:0.0892857;fill-rule:evenodd;stroke:none" />
+            </g>
+            <g
+               id="layer2-2" />
+          </g>
+        </g>
+      </g>
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_HistoryDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1328 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3556"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3554"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3552"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3550"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548-0"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546-5"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-8"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-6"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-4"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3417"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3415"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3413"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3411"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3409"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3405"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3403"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3401"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3399"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         id="stop5050-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         id="stop4544-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         id="stop15664-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-8"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-9"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-3"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-4"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-8"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-5"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         id="stop270-6"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-9"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         id="stop260-8"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-0"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-4"
+       xlink:href="#linearGradient4542-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         id="stop4442-2"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-4"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-9"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         id="stop4456-3"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-2"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         id="stop4469-9"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-9"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         id="stop2368-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-8"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         id="stop2848-1"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-1"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         id="stop2968-2"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-7"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         id="stop2976-3"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-3"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         id="stop2986"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2988"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         id="stop2996-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-9"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-4"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         id="stop3757-8"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-9"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-0"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3683">
+      <feColorMatrix
+         values="0"
+         type="saturate"
+         id="feColorMatrix3685" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835" />
+    </filter>
+    <radialGradient
+       cx="55"
+       cy="125"
+       r="14.375"
+       fx="55"
+       fy="125"
+       id="radialGradient1758"
+       xlink:href="#linearGradient12512"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         id="stop3984"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         offset="0" />
+      <stop
+         id="stop3985"
+         style="stop-color:#fffffe;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         id="stop1790"
+         style="stop-color:#202020;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1791"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         style="stop-color:#424242;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3100"
+         style="stop-color:#777777;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         id="stop9768"
+         style="stop-color:#6194cb;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9770"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048-8">
+      <stop
+         id="stop5050-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-2"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="8.7468252"
+       cy="6.8283234"
+       r="29.889715"
+       fx="8.7468252"
+       fy="6.8283234"
+       id="radialGradient5212"
+       xlink:href="#linearGradient37935"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="19.667364"
+       y1="4.2570662"
+       x2="20.329933"
+       y2="5.2845874"
+       id="linearGradient5210"
+       xlink:href="#linearGradient5204"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="23.375"
+       cy="10.972863"
+       r="3.3478093"
+       fx="23.375"
+       fy="10.972863"
+       id="radialGradient5202"
+       xlink:href="#linearGradient5196"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.63042,0,0,3.742066,-61.48607,-29.18618)" />
+    <linearGradient
+       x1="6.342216"
+       y1="7.7893324"
+       x2="22.218424"
+       y2="25.884274"
+       id="linearGradient4313"
+       xlink:href="#linearGradient42174"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="11.901996"
+       cy="10.045444"
+       r="29.292715"
+       fx="11.901996"
+       fy="10.045444"
+       id="radialGradient4311"
+       xlink:href="#linearGradient2145"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="11.3292"
+       cy="10.58397"
+       r="15.532059"
+       fx="11.3292"
+       fy="10.58397"
+       id="radialGradient4309"
+       xlink:href="#linearGradient10653"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="8.9156475"
+       y1="37.197018"
+       x2="9.8855038"
+       y2="52.090679"
+       id="linearGradient4307"
+       xlink:href="#linearGradient2152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(8.205187,0,0,2.5470234,-86.295197,-129.20334)" />
+    <radialGradient
+       cx="31.112698"
+       cy="19.008621"
+       r="8.6620579"
+       fx="31.112698"
+       fy="19.008621"
+       id="radialGradient3822"
+       xlink:href="#linearGradient3816"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient3816">
+      <stop
+         id="stop3818"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3820"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2152">
+      <stop
+         id="stop2154"
+         style="stop-color:#9aa29a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2156"
+         style="stop-color:#b5beb5;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient37935">
+      <stop
+         id="stop37937"
+         style="stop-color:#9497b3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop37939"
+         style="stop-color:#4c4059;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2145">
+      <stop
+         id="stop2147"
+         style="stop-color:#fffffd;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2149"
+         style="stop-color:#cbcbc9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient42174">
+      <stop
+         id="stop42176"
+         style="stop-color:#a0a0a0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop42178"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10653">
+      <stop
+         id="stop10655"
+         style="stop-color:#f3f4ff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop10657"
+         style="stop-color:#9193af;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="55"
+       cy="125"
+       r="14.375"
+       fx="55"
+       fy="125"
+       id="radialGradient278"
+       xlink:href="#linearGradient12512-2"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512-2">
+      <stop
+         id="stop12513-8"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517-1"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514-2"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5196">
+      <stop
+         id="stop5198"
+         style="stop-color:#c4a000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5200"
+         style="stop-color:#c4a000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5204">
+      <stop
+         id="stop5206"
+         style="stop-color:#c4a000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5208"
+         style="stop-color:#c4a000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="8.9156475"
+       y1="37.197018"
+       x2="9.8855038"
+       y2="52.090679"
+       id="linearGradient5285"
+       xlink:href="#linearGradient2152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(8.205187,0,0,2.5470234,-86.295197,-129.20334)" />
+    <radialGradient
+       cx="8.7468252"
+       cy="6.8283234"
+       r="29.889715"
+       fx="8.7468252"
+       fy="6.8283234"
+       id="radialGradient5287"
+       xlink:href="#linearGradient37935"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="11.901996"
+       cy="10.045444"
+       r="29.292715"
+       fx="11.901996"
+       fy="10.045444"
+       id="radialGradient5289"
+       xlink:href="#linearGradient2145"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="6.342216"
+       y1="7.7893324"
+       x2="22.218424"
+       y2="25.884274"
+       id="linearGradient5291"
+       xlink:href="#linearGradient42174"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <g
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
+       id="g2679">
+      <g
+         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
+         id="g3025-4">
+        <g
+           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
+           id="layer1"
+           style="display:inline">
+          <path
+             d="m 11.505723,5.4942766 0,37.9065924"
+             id="path15672"
+             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
+        </g>
+        <g
+           id="g3786"
+           style="filter:url(#filter3827)">
+          <rect
+             width="4.349854"
+             height="4.349854"
+             rx="0.76958966"
+             ry="0.76958966"
+             x="85.381561"
+             y="99.493881"
+             transform="translate(47.719063,1.6625723)"
+             id="rect5876"
+             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+          <rect
+             width="34.875"
+             height="40.920494"
+             rx="1.1449448"
+             ry="1.1468204"
+             x="6.6035528"
+             y="3.6464462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15391"
+             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="32.775887"
+             height="38.946384"
+             rx="0.14851625"
+             ry="0.14875954"
+             x="7.6660538"
+             y="4.5839462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15660"
+             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <g
+             transform="matrix(0.54901938,0,0,0.60392127,117.6091,94.047504)"
+             id="g2253">
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="9"
+               id="rect15686"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="11"
+               id="rect15688"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="13"
+               id="rect15690"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="15"
+               id="rect15692"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="17"
+               id="rect15694"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="19"
+               id="rect15696"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="21"
+               id="rect15698"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="23"
+               id="rect15700"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="9.9000053"
+               height="1"
+               rx="0.068204239"
+               ry="0.065390877"
+               x="14.999992"
+               y="25"
+               id="rect15732"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="29"
+               id="rect15736"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="31"
+               id="rect15738"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="33"
+               id="rect15740"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="35"
+               id="rect15742"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="15.400014"
+               height="1"
+               rx="0.10609552"
+               ry="0.065390877"
+               x="14.999992"
+               y="37"
+               id="rect15744"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          </g>
+          <g
+             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
+             id="g4142">
+            <g
+               id="layer1-4">
+              <g
+                 transform="translate(-12.542961,39.482886)"
+                 id="layer1-9">
+                <g
+                   transform="translate(460.98964,-11.238972)"
+                   id="g5272">
+                  <path
+                     d="M 46.284604,-74.04757 8.5639439,-30.201337 11.870132,-26.935961 46.284604,-74.04757 z"
+                     id="path14341"
+                     style="color:#000000;fill:url(#linearGradient5285);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+                  <path
+                     d="m 45.968318,-74.283772 -33.638263,46.645891 4.805498,4.242804 28.832765,-50.888695 z"
+                     id="path18921"
+                     style="fill:#fefefe;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+                  <path
+                     d="m 31.160714,16.910715 a 14.910714,14.910714 0 1 1 -29.8214281,0 14.910714,14.910714 0 1 1 29.8214281,0 z"
+                     transform="matrix(3.7601028,0,0,3.7601028,-1.0424342,-82.080729)"
+                     id="path27786"
+                     style="fill:url(#radialGradient5287);fill-opacity:1;fill-rule:evenodd;stroke:#605773;stroke-width:0.69855404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
+                  <path
+                     d="m 31.160714,16.910715 a 14.910714,14.910714 0 1 1 -29.8214281,0 14.910714,14.910714 0 1 1 29.8214281,0 z"
+                     transform="matrix(3.0569765,0,0,3.0569765,10.134792,-70.43903)"
+                     id="path35549"
+                     style="fill:url(#radialGradient5289);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5291);stroke-width:0.71139598;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
+                  <path
+                     d="m 16.40625,17.28125 a 1.21875,1.21875 0 1 1 -2.4375,0 1.21875,1.21875 0 1 1 2.4375,0 z"
+                     transform="matrix(5.4457872,0,0,5.4457872,-21.739478,-112.24027)"
+                     id="path34778"
+                     style="fill:#f3f3f3;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.48232403;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+                  <path
+                     d="M 55.711654,-23.316012 32.01702,-43.219941"
+                     id="path35559"
+                     style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+                  <path
+                     d="M 48.441131,0.47733081 56.216076,-11.324866"
+                     id="path35561"
+                     style="fill:none;stroke:#000000;stroke-width:5.25326824;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+                  <path
+                     d="m 17.324117,7.6932044 a 0.61871845,0.61871845 0 1 1 -1.237437,0 0.61871845,0.61871845 0 1 1 1.237437,0 z"
+                     transform="matrix(7.2219118,0,0,7.2219118,-61.114051,-110.32958)"
+                     id="path35563"
+                     style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+                  <path
+                     d="m 17.324117,7.6932044 a 0.61871845,0.61871845 0 1 1 -1.237437,0 0.61871845,0.61871845 0 1 1 1.237437,0 z"
+                     transform="matrix(7.2219118,0,0,7.2219118,-61.114051,-38.836252)"
+                     id="path35565"
+                     style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+                  <path
+                     d="m 17.324117,7.6932044 a 0.61871845,0.61871845 0 1 1 -1.237437,0 0.61871845,0.61871845 0 1 1 1.237437,0 z"
+                     transform="matrix(7.2219118,0,0,7.2219118,-96.860727,-74.582981)"
+                     id="path35567"
+                     style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+                  <path
+                     d="m 17.324117,7.6932044 a 0.61871845,0.61871845 0 1 1 -1.237437,0 0.61871845,0.61871845 0 1 1 1.237437,0 z"
+                     transform="matrix(7.2219118,0,0,7.2219118,-25.367448,-74.582981)"
+                     id="path35569"
+                     style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+                </g>
+              </g>
+            </g>
+            <g
+               id="layer2" />
+          </g>
+        </g>
+      </g>
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_NewsDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1156 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3556"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3554"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3552"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3550"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548-0"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546-5"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-8"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-6"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-4"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3417"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3415"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3413"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3411"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3409"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3405"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3403"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3401"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3399"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         id="stop5050-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         id="stop4544-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         id="stop15664-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-8"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-9"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-3"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-4"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-8"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-5"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         id="stop270-6"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-9"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         id="stop260-8"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-0"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-4"
+       xlink:href="#linearGradient4542-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         id="stop4442-2"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-4"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-9"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         id="stop4456-3"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-2"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         id="stop4469-9"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-9"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         id="stop2368-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-8"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         id="stop2848-1"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-1"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         id="stop2968-2"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-7"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         id="stop2976-3"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-3"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         id="stop2986"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2988"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         id="stop2996-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-9"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-4"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         id="stop3757-8"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-9"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-0"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3683">
+      <feColorMatrix
+         values="0"
+         type="saturate"
+         id="feColorMatrix3685" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835" />
+    </filter>
+    <radialGradient
+       cx="55"
+       cy="125"
+       r="14.375"
+       fx="55"
+       fy="125"
+       id="radialGradient1758"
+       xlink:href="#linearGradient12512"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       id="linearGradient9772"
+       xlink:href="#linearGradient9766"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="18.112709"
+       y1="31.36775"
+       x2="15.514889"
+       y2="6.1802502"
+       id="linearGradient3104"
+       xlink:href="#linearGradient3096"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="13.035696"
+       y1="32.567184"
+       x2="12.853771"
+       y2="46.689312"
+       id="linearGradient322"
+       xlink:href="#linearGradient319"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
+    <linearGradient
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053"
+       id="linearGradient491"
+       xlink:href="#linearGradient3983"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         id="stop3984"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         offset="0" />
+      <stop
+         id="stop3985"
+         style="stop-color:#fffffe;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.706017"
+       cy="37.517986"
+       r="30.905205"
+       fx="20.706017"
+       fy="37.517986"
+       id="radialGradient238"
+       xlink:href="#linearGradient1789"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         id="stop1790"
+         style="stop-color:#202020;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1791"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319">
+      <stop
+         id="stop320"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop321"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         style="stop-color:#424242;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3100"
+         style="stop-color:#777777;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         id="stop9768"
+         style="stop-color:#6194cb;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9770"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient5027"
+       xlink:href="#linearGradient5048-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <linearGradient
+       id="linearGradient5048-8">
+      <stop
+         id="stop5050-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-2"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5029"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <linearGradient
+       id="linearGradient5060">
+      <stop
+         id="stop5062"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5064"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5031"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <g
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
+       id="g2679">
+      <g
+         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
+         id="g3025-4">
+        <g
+           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
+           id="layer1"
+           style="display:inline">
+          <path
+             d="m 11.505723,5.4942766 0,37.9065924"
+             id="path15672"
+             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
+        </g>
+        <g
+           id="g3786"
+           style="filter:url(#filter3827)">
+          <rect
+             width="4.349854"
+             height="4.349854"
+             rx="0.76958966"
+             ry="0.76958966"
+             x="85.381561"
+             y="99.493881"
+             transform="translate(47.719063,1.6625723)"
+             id="rect5876"
+             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+          <rect
+             width="34.875"
+             height="40.920494"
+             rx="1.1449448"
+             ry="1.1468204"
+             x="6.6035528"
+             y="3.6464462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15391"
+             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="32.775887"
+             height="38.946384"
+             rx="0.14851625"
+             ry="0.14875954"
+             x="7.6660538"
+             y="4.5839462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15660"
+             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <g
+             transform="matrix(0.54901938,0,0,0.60392127,117.6091,94.047504)"
+             id="g2253">
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="9"
+               id="rect15686"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="11"
+               id="rect15688"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="13"
+               id="rect15690"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="15"
+               id="rect15692"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="17"
+               id="rect15694"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="19"
+               id="rect15696"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="21"
+               id="rect15698"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="23"
+               id="rect15700"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="9.9000053"
+               height="1"
+               rx="0.068204239"
+               ry="0.065390877"
+               x="14.999992"
+               y="25"
+               id="rect15732"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="29"
+               id="rect15736"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="31"
+               id="rect15738"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="33"
+               id="rect15740"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="35"
+               id="rect15742"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="15.400014"
+               height="1"
+               rx="0.10609552"
+               ry="0.065390877"
+               x="14.999992"
+               y="37"
+               id="rect15744"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          </g>
+          <g
+             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
+             id="g4142">
+            <g
+               id="layer1-4">
+              <g
+                 transform="matrix(3.6418565,0,0,3.6418565,399.69542,-56.246045)"
+                 id="layer4"
+                 style="display:inline">
+                <path
+                   d="m 69.375,125 a 14.375,14.375 0 1 1 -28.75,0 14.375,14.375 0 1 1 28.75,0 z"
+                   transform="matrix(0.783292,0,0,0.783292,-6.340883,-86.65168)"
+                   id="path12511"
+                   style="color:#000000;fill:url(#radialGradient1758);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;marker:none;visibility:visible;display:block" />
+              </g>
+            </g>
+            <g
+               id="layer2" />
+          </g>
+        </g>
+      </g>
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_ReleaseWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1156 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3556"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3554"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3552"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3550"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548-0"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546-5"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-8"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-6"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-4"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3417"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3415"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3413"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3411"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3409"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3405"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3403"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3401"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3399"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         id="stop5050-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         id="stop4544-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         id="stop15664-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-8"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-9"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-3"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-4"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-8"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-5"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         id="stop270-6"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-9"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         id="stop260-8"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-0"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-4"
+       xlink:href="#linearGradient4542-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         id="stop4442-2"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-4"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-9"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         id="stop4456-3"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-2"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         id="stop4469-9"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-9"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         id="stop2368-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-8"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         id="stop2848-1"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-1"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         id="stop2968-2"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-7"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         id="stop2976-3"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-3"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         id="stop2986"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2988"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         id="stop2996-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-9"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-4"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         id="stop3757-8"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-9"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-0"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3683">
+      <feColorMatrix
+         values="0"
+         type="saturate"
+         id="feColorMatrix3685" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835" />
+    </filter>
+    <radialGradient
+       cx="55"
+       cy="125"
+       r="14.375"
+       fx="55"
+       fy="125"
+       id="radialGradient1758"
+       xlink:href="#linearGradient12512"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       id="linearGradient9772"
+       xlink:href="#linearGradient9766"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="18.112709"
+       y1="31.36775"
+       x2="15.514889"
+       y2="6.1802502"
+       id="linearGradient3104"
+       xlink:href="#linearGradient3096"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="13.035696"
+       y1="32.567184"
+       x2="12.853771"
+       y2="46.689312"
+       id="linearGradient322"
+       xlink:href="#linearGradient319"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
+    <linearGradient
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053"
+       id="linearGradient491"
+       xlink:href="#linearGradient3983"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         id="stop3984"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         offset="0" />
+      <stop
+         id="stop3985"
+         style="stop-color:#fffffe;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.706017"
+       cy="37.517986"
+       r="30.905205"
+       fx="20.706017"
+       fy="37.517986"
+       id="radialGradient238"
+       xlink:href="#linearGradient1789"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         id="stop1790"
+         style="stop-color:#202020;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1791"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319">
+      <stop
+         id="stop320"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop321"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         style="stop-color:#424242;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3100"
+         style="stop-color:#777777;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         id="stop9768"
+         style="stop-color:#6194cb;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9770"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient5027"
+       xlink:href="#linearGradient5048-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <linearGradient
+       id="linearGradient5048-8">
+      <stop
+         id="stop5050-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-2"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5029"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <linearGradient
+       id="linearGradient5060">
+      <stop
+         id="stop5062"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5064"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5031"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <g
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
+       id="g2679">
+      <g
+         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
+         id="g3025-4">
+        <g
+           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
+           id="layer1"
+           style="display:inline">
+          <path
+             d="m 11.505723,5.4942766 0,37.9065924"
+             id="path15672"
+             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
+        </g>
+        <g
+           id="g3786"
+           style="filter:url(#filter3827)">
+          <rect
+             width="4.349854"
+             height="4.349854"
+             rx="0.76958966"
+             ry="0.76958966"
+             x="85.381561"
+             y="99.493881"
+             transform="translate(47.719063,1.6625723)"
+             id="rect5876"
+             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+          <rect
+             width="34.875"
+             height="40.920494"
+             rx="1.1449448"
+             ry="1.1468204"
+             x="6.6035528"
+             y="3.6464462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15391"
+             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="32.775887"
+             height="38.946384"
+             rx="0.14851625"
+             ry="0.14875954"
+             x="7.6660538"
+             y="4.5839462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15660"
+             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <g
+             transform="matrix(0.54901938,0,0,0.60392127,117.6091,94.047504)"
+             id="g2253">
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="9"
+               id="rect15686"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="11"
+               id="rect15688"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="13"
+               id="rect15690"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="15"
+               id="rect15692"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="17"
+               id="rect15694"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="19"
+               id="rect15696"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="21"
+               id="rect15698"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="15.000002"
+               y="23"
+               id="rect15700"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="9.9000053"
+               height="1"
+               rx="0.068204239"
+               ry="0.065390877"
+               x="14.999992"
+               y="25"
+               id="rect15732"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="29"
+               id="rect15736"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="31"
+               id="rect15738"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="33"
+               id="rect15740"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="22.000004"
+               height="1"
+               rx="0.15156493"
+               ry="0.065390877"
+               x="14.999992"
+               y="35"
+               id="rect15742"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+            <rect
+               width="15.400014"
+               height="1"
+               rx="0.10609552"
+               ry="0.065390877"
+               x="14.999992"
+               y="37"
+               id="rect15744"
+               style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          </g>
+          <g
+             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
+             id="g4142">
+            <g
+               id="layer1-4">
+              <g
+                 transform="matrix(3.6418565,0,0,3.6418565,399.69542,-56.246045)"
+                 id="layer4"
+                 style="display:inline">
+                <path
+                   d="m 69.375,125 a 14.375,14.375 0 1 1 -28.75,0 14.375,14.375 0 1 1 28.75,0 z"
+                   transform="matrix(0.783292,0,0,0.783292,-6.340883,-86.65168)"
+                   id="path12511"
+                   style="color:#000000;fill:url(#radialGradient1758);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;marker:none;visibility:visible;display:block" />
+              </g>
+            </g>
+            <g
+               id="layer2" />
+          </g>
+        </g>
+      </g>
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_TerminalDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1744 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3556"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3554"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3552"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3550"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548-0"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546-5"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-8"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-6"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-4"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3417"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3415"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3413"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3411"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3409"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3405"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3403"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3401"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3399"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         id="stop5050-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         id="stop4544-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         id="stop15664-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-8"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-9"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-3"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-4"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-8"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-5"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         id="stop270-6"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-9"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         id="stop260-8"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-0"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-4"
+       xlink:href="#linearGradient4542-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         id="stop4442-2"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-4"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-9"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         id="stop4456-3"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-2"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         id="stop4469-9"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-9"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         id="stop2368-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-8"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         id="stop2848-1"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-1"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         id="stop2968-2"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-7"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         id="stop2976-3"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-3"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         id="stop2986"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2988"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         id="stop2996-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-9"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-4"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         id="stop3757-8"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-9"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-0"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3683">
+      <feColorMatrix
+         values="0"
+         type="saturate"
+         id="feColorMatrix3685" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835" />
+    </filter>
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         id="stop3984"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         offset="0" />
+      <stop
+         id="stop3985"
+         style="stop-color:#fffffe;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         id="stop1790"
+         style="stop-color:#202020;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1791"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         style="stop-color:#424242;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3100"
+         style="stop-color:#777777;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         id="stop9768"
+         style="stop-color:#6194cb;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9770"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048-8">
+      <stop
+         id="stop5050-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-2"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2152">
+      <stop
+         id="stop2154"
+         style="stop-color:#9aa29a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2156"
+         style="stop-color:#b5beb5;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient37935">
+      <stop
+         id="stop37937"
+         style="stop-color:#9497b3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop37939"
+         style="stop-color:#4c4059;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2145">
+      <stop
+         id="stop2147"
+         style="stop-color:#fffffd;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2149"
+         style="stop-color:#cbcbc9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient42174">
+      <stop
+         id="stop42176"
+         style="stop-color:#a0a0a0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop42178"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10653">
+      <stop
+         id="stop10655"
+         style="stop-color:#f3f4ff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop10657"
+         style="stop-color:#9193af;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient12512-2">
+      <stop
+         id="stop12513-8"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517-1"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514-2"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="8.9156475"
+       y1="37.197018"
+       x2="9.8855038"
+       y2="52.090679"
+       id="linearGradient5285"
+       xlink:href="#linearGradient2152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(8.205187,0,0,2.5470234,-86.295197,-129.20334)" />
+    <radialGradient
+       cx="8.7468252"
+       cy="6.8283234"
+       r="29.889715"
+       fx="8.7468252"
+       fy="6.8283234"
+       id="radialGradient5287"
+       xlink:href="#linearGradient37935"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="11.901996"
+       cy="10.045444"
+       r="29.292715"
+       fx="11.901996"
+       fy="10.045444"
+       id="radialGradient5289"
+       xlink:href="#linearGradient2145"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="6.342216"
+       y1="7.7893324"
+       x2="22.218424"
+       y2="25.884274"
+       id="linearGradient5291"
+       xlink:href="#linearGradient42174"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5031"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+    <linearGradient
+       id="linearGradient5060">
+      <stop
+         id="stop5062"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5064"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5029"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <linearGradient
+       id="linearGradient5048-9">
+      <stop
+         id="stop5050-7"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-2"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-0"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient5027"
+       xlink:href="#linearGradient5048-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <linearGradient
+       id="linearGradient4254">
+      <stop
+         id="stop4256"
+         style="stop-color:#616161;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4258"
+         style="stop-color:#a0a0a0;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5176">
+      <stop
+         id="stop5178"
+         style="stop-color:#a2a59c;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5180"
+         style="stop-color:#535750;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2667">
+      <stop
+         id="stop2669"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2671"
+         style="stop-color:#fcfcff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2238">
+      <stop
+         id="stop2240"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2242"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2224">
+      <stop
+         id="stop2226"
+         style="stop-color:#32342f;stop-opacity:0.54639173"
+         offset="0" />
+      <stop
+         id="stop2228"
+         style="stop-color:#32342f;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2214">
+      <stop
+         id="stop2216"
+         style="stop-color:#a9aaa7;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2218"
+         style="stop-color:#676964;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2206">
+      <stop
+         id="stop2208"
+         style="stop-color:#777973;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2210"
+         style="stop-color:#cbccca;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2198">
+      <stop
+         id="stop2200"
+         style="stop-color:#fde2bf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2202"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="29.870447"
+       y1="32.28574"
+       x2="24.841814"
+       y2="14.157946"
+       id="linearGradient2212"
+       xlink:href="#linearGradient2206"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
+    <linearGradient
+       x1="8.6529236"
+       y1="9.5865316"
+       x2="21.305075"
+       y2="32.497993"
+       id="linearGradient2220"
+       xlink:href="#linearGradient5176"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
+    <radialGradient
+       cx="24.04163"
+       cy="42.24213"
+       r="17.576654"
+       fx="24.04163"
+       fy="42.24213"
+       id="radialGradient2230"
+       xlink:href="#linearGradient2224"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.304598,0,29.37527)" />
+    <linearGradient
+       x1="20.338758"
+       y1="19.636894"
+       x2="48.845253"
+       y2="49.730762"
+       id="linearGradient2244"
+       xlink:href="#linearGradient2238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.953506,0,0,0.947873,1.141528,1.205591)" />
+    <linearGradient
+       x1="11.048059"
+       y1="9.146349"
+       x2="26.178129"
+       y2="30.343304"
+       id="linearGradient4260"
+       xlink:href="#linearGradient4254"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.997583,0,0,0.989941,0.104141,0.07028871)" />
+    <radialGradient
+       cx="11.3292"
+       cy="10.58397"
+       r="15.532059"
+       fx="11.3292"
+       fy="10.58397"
+       id="radialGradient3835"
+       xlink:href="#linearGradient10653-6"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512-8">
+      <stop
+         id="stop12513-1"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517-0"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514-8"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10653-6">
+      <stop
+         id="stop10655-5"
+         style="stop-color:#ff7f2a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop10657-1"
+         style="stop-color:#732e00;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient42174-6">
+      <stop
+         id="stop42176-8"
+         style="stop-color:#ff7f2a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop42178-3"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2145-0">
+      <stop
+         id="stop2147-4"
+         style="stop-color:#ffd7bc;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2149-8"
+         style="stop-color:#cbcbc9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient37935-8">
+      <stop
+         id="stop37937-6"
+         style="stop-color:#9497b3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop37939-8"
+         style="stop-color:#4c4059;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2152-1">
+      <stop
+         id="stop2154-4"
+         style="stop-color:#9aa29a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2156-2"
+         style="stop-color:#b5beb5;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548"
+       xlink:href="#aigrd3-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546"
+       xlink:href="#aigrd2-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-4"
+       xlink:href="#linearGradient15662-4"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-0"
+       xlink:href="#linearGradient269-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-49"
+       xlink:href="#linearGradient259-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       id="linearGradient5048-5">
+      <stop
+         id="stop5050-6"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-0"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-9">
+      <stop
+         id="stop4544-9"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-4">
+      <stop
+         id="stop15664-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-9"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-7"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-8"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-2"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-5"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-8"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-2">
+      <stop
+         id="stop270-67"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-3"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-7">
+      <stop
+         id="stop260-1"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-6"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-7"
+       xlink:href="#linearGradient4542-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-5">
+      <stop
+         id="stop4442-0"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-2"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-2"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-7">
+      <stop
+         id="stop4456-1"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-1"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-4">
+      <stop
+         id="stop4469-4"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-8"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-3">
+      <stop
+         id="stop2368-2"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-5"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-4"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-27">
+      <stop
+         id="stop2848-8"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-7"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-5">
+      <stop
+         id="stop2968-5"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-2"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-13"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-5">
+      <stop
+         id="stop2976-9"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-1"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-7">
+      <stop
+         id="stop2996-9"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-3"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-3"
+       xlink:href="#linearGradient3755-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-9">
+      <stop
+         id="stop3757-86"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-5"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-8"
+       xlink:href="#linearGradient3755-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient5610"
+       xlink:href="#linearGradient3755-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.9367132,-2.1046661,6.4603259,7.0205689,-2911.0812,-2312.9607)" />
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient5612"
+       xlink:href="#linearGradient5048-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5614"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5616"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+    <linearGradient
+       x1="29.870447"
+       y1="32.28574"
+       x2="24.841814"
+       y2="14.157946"
+       id="linearGradient5618"
+       xlink:href="#linearGradient2206"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
+    <linearGradient
+       x1="8.6529236"
+       y1="9.5865316"
+       x2="21.305075"
+       y2="32.497993"
+       id="linearGradient5620"
+       xlink:href="#linearGradient5176"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
+    <linearGradient
+       x1="11.048059"
+       y1="9.146349"
+       x2="26.178129"
+       y2="30.343304"
+       id="linearGradient5622"
+       xlink:href="#linearGradient4254"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.997583,0,0,0.989941,0.104141,0.07028871)" />
+    <linearGradient
+       x1="20.338758"
+       y1="19.636894"
+       x2="48.845253"
+       y2="49.730762"
+       id="linearGradient5624"
+       xlink:href="#linearGradient2238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.953506,0,0,0.947873,1.141528,1.205591)" />
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient5636"
+       xlink:href="#linearGradient5048-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5638"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5640"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+    <linearGradient
+       x1="29.870447"
+       y1="32.28574"
+       x2="24.841814"
+       y2="14.157946"
+       id="linearGradient5642"
+       xlink:href="#linearGradient2206"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
+    <linearGradient
+       x1="8.6529236"
+       y1="9.5865316"
+       x2="21.305075"
+       y2="32.497993"
+       id="linearGradient5644"
+       xlink:href="#linearGradient5176"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.957412,0,0,0.952331,1.022766,0.133307)" />
+    <linearGradient
+       x1="11.048059"
+       y1="9.146349"
+       x2="26.178129"
+       y2="30.343304"
+       id="linearGradient5646"
+       xlink:href="#linearGradient4254"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.997583,0,0,0.989941,0.104141,0.07028871)" />
+    <linearGradient
+       x1="20.338758"
+       y1="19.636894"
+       x2="48.845253"
+       y2="49.730762"
+       id="linearGradient5648"
+       xlink:href="#linearGradient2238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.953506,0,0,0.947873,1.141528,1.205591)" />
+    <linearGradient
+       x1="20.338758"
+       y1="19.636894"
+       x2="48.845253"
+       y2="49.730762"
+       id="linearGradient5652"
+       xlink:href="#linearGradient2238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.5297667,0,0,4.0221948,11.414836,-167.93991)" />
+    <linearGradient
+       x1="11.048059"
+       y1="9.146349"
+       x2="26.178129"
+       y2="30.343304"
+       id="linearGradient5655"
+       xlink:href="#linearGradient4254"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.6929346,0,0,4.2007057,7.5745513,-172.75744)" />
+    <linearGradient
+       x1="29.870447"
+       y1="32.28574"
+       x2="24.841814"
+       y2="14.157946"
+       id="linearGradient5658"
+       xlink:href="#linearGradient2206"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.5442262,0,0,4.0411118,10.975193,-172.49003)" />
+    <linearGradient
+       x1="8.6529236"
+       y1="9.5865316"
+       x2="21.305075"
+       y2="32.497993"
+       id="linearGradient5660"
+       xlink:href="#linearGradient5176"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.5442262,0,0,4.0411118,10.975193,-172.49003)" />
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <g
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
+       id="g2679">
+      <g
+         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
+         id="g3025-4">
+        <g
+           id="g3786"
+           style="filter:url(#filter3827)">
+          <rect
+             width="4.349854"
+             height="4.349854"
+             rx="0.76958966"
+             ry="0.76958966"
+             x="85.381561"
+             y="99.493881"
+             transform="translate(47.719063,1.6625723)"
+             id="rect5876"
+             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+          <rect
+             width="34.875"
+             height="40.920494"
+             rx="1.1449448"
+             ry="1.1468204"
+             x="6.6035528"
+             y="3.6464462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15391"
+             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="32.775887"
+             height="38.946384"
+             rx="0.14851625"
+             ry="0.14875954"
+             x="7.6660538"
+             y="4.5839462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15660"
+             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <g
+             transform="matrix(0.14986221,0,0,0.14986221,59.127971,99.768918)"
+             id="g4142">
+            <g
+               id="layer1-4">
+              <g
+                 transform="translate(-12.542961,39.482886)"
+                 id="layer1-9">
+                <path
+                   d="m 437.56521,28.619078 0,-12.960977 33.26078,17.231533 0,7.875388 -33.26078,17.344576 0,-12.922472 25.78135,-7.866642 -25.78135,-8.701406 z m 69.93828,42.545755 0,8.377284 -40.3631,0 0,-8.377284 40.3631,0"
+                   id="text1340"
+                   style="font-size:18.58501053px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.96339874pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.27868856;font-family:Bitstream Vera Sans Mono" />
+              </g>
+            </g>
+            <g
+               id="layer2" />
+          </g>
+        </g>
+      </g>
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_VariableEditor.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1240 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   id="svg2872"
+   height="283.28833"
+   width="283.28912"
+   version="1.1">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3755"
+       id="radialGradient3033"
+       fy="395.04871"
+       fx="182.9837"
+       r="148.95309"
+       cy="395.04871"
+       cx="182.9837" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         offset="0"
+         style="stop-color:#008cbe;stop-opacity:1"
+         id="stop3757" />
+      <stop
+         offset="1"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         id="stop3759" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       fy="395.04871"
+       fx="182.9837"
+       r="148.95309"
+       cy="395.04871"
+       cx="182.9837" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop2996" />
+      <stop
+         offset="1"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         offset="0"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         id="stop2976" />
+      <stop
+         offset="1"
+         style="stop-color:#acacac;stop-opacity:1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         offset="0"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         id="stop2968" />
+      <stop
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         id="stop3006" />
+      <stop
+         offset="1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         offset="0"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         id="stop2848" />
+      <stop
+         offset="1"
+         style="stop-color:#484848;stop-opacity:1"
+         id="stop2850" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop2368" />
+      <stop
+         offset="0.5"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         id="stop2374" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop2370" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop4469" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         offset="0"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         id="stop4456" />
+      <stop
+         offset="1"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         offset="0"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         id="stop4442" />
+      <stop
+         offset="0.5"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         id="stop4448" />
+      <stop
+         offset="1"
+         style="stop-color:#686868;stop-opacity:1"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4542"
+       id="radialGradient4548"
+       fy="42.07798"
+       fx="24.306795"
+       r="15.821514"
+       cy="42.07798"
+       cx="24.306795" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         offset="0"
+         style="stop-color:#fafafa;stop-opacity:1"
+         id="stop260" />
+      <stop
+         offset="1"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         offset="0"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         id="stop270" />
+      <stop
+         offset="1"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       id="aigrd2"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099">
+      <stop
+         offset="0"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         id="stop15566" />
+      <stop
+         offset="1"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         id="stop15568" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       id="aigrd3"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099">
+      <stop
+         offset="0"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         id="stop15573" />
+      <stop
+         offset="1"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         id="stop15575" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop15664" />
+      <stop
+         offset="1"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop4544" />
+      <stop
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop4546" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop5050" />
+      <stop
+         offset="0.5"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop5056" />
+      <stop
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop5052" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="scale(0.960493,1.041132)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient259"
+       id="radialGradient3540"
+       fy="35.736916"
+       fx="33.966679"
+       r="86.70845"
+       cy="35.736916"
+       cx="33.966679" />
+    <radialGradient
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient269"
+       id="radialGradient3542"
+       fy="3.7561285"
+       fx="8.824419"
+       r="37.751713"
+       cy="3.7561285"
+       cx="8.824419" />
+    <radialGradient
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient15662"
+       id="radialGradient3544"
+       fy="7.2678967"
+       fx="8.1435566"
+       r="38.158695"
+       cy="7.2678967"
+       cx="8.1435566" />
+    <linearGradient
+       gradientTransform="translate(-5.825542,0.125)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2994-0"
+       id="linearGradient3556"
+       y2="30.703125"
+       x2="25.514589"
+       y1="31.046875"
+       x1="25.71875" />
+    <radialGradient
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2984"
+       id="radialGradient3554"
+       fy="27.640751"
+       fx="29.053354"
+       r="3.2408545"
+       cy="27.640751"
+       cx="29.053354" />
+    <linearGradient
+       gradientTransform="translate(-5.669292,0)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2974-0"
+       id="linearGradient3552"
+       y2="22.625"
+       x2="47.6875"
+       y1="19.8125"
+       x1="46" />
+    <linearGradient
+       gradientTransform="translate(-5.669292,0)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2966-9"
+       id="linearGradient3550"
+       y2="22.250591"
+       x2="50.988335"
+       y1="17.376184"
+       x1="48.90625" />
+    <radialGradient
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#aigrd3-9"
+       id="radialGradient3548-0"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099" />
+    <radialGradient
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#aigrd2-8"
+       id="radialGradient3546-5"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099" />
+    <radialGradient
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient15662-2"
+       id="radialGradient3544-8"
+       fy="7.2678967"
+       fx="8.1435566"
+       r="38.158695"
+       cy="7.2678967"
+       cx="8.1435566" />
+    <radialGradient
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient269-7"
+       id="radialGradient3542-6"
+       fy="3.7561285"
+       fx="8.824419"
+       r="37.751713"
+       cy="3.7561285"
+       cx="8.824419" />
+    <radialGradient
+       gradientTransform="scale(0.960493,1.041132)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient259-5"
+       id="radialGradient3540-4"
+       fy="35.736916"
+       fx="33.966679"
+       r="86.70845"
+       cy="35.736916"
+       cx="33.966679" />
+    <radialGradient
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#aigrd3-9"
+       id="radialGradient3417"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099" />
+    <radialGradient
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#aigrd2-8"
+       id="radialGradient3415"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099" />
+    <radialGradient
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient15662-2"
+       id="radialGradient3413"
+       fy="7.2678967"
+       fx="8.1435566"
+       r="38.158695"
+       cy="7.2678967"
+       cx="8.1435566" />
+    <radialGradient
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient269-7"
+       id="radialGradient3411"
+       fy="3.7561285"
+       fx="8.824419"
+       r="37.751713"
+       cy="3.7561285"
+       cx="8.824419" />
+    <radialGradient
+       gradientTransform="scale(0.960493,1.041132)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient259-5"
+       id="radialGradient3409"
+       fy="35.736916"
+       fx="33.966679"
+       r="86.70845"
+       cy="35.736916"
+       cx="33.966679" />
+    <linearGradient
+       gradientTransform="translate(-5.825542,0.125)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2994-0"
+       id="linearGradient3405"
+       y2="30.703125"
+       x2="25.514589"
+       y1="31.046875"
+       x1="25.71875" />
+    <radialGradient
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2984"
+       id="radialGradient3403"
+       fy="27.640751"
+       fx="29.053354"
+       r="3.2408545"
+       cy="27.640751"
+       cx="29.053354" />
+    <linearGradient
+       gradientTransform="translate(-5.669292,0)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2974-0"
+       id="linearGradient3401"
+       y2="22.625"
+       x2="47.6875"
+       y1="19.8125"
+       x1="46" />
+    <linearGradient
+       gradientTransform="translate(-5.669292,0)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2966-9"
+       id="linearGradient3399"
+       y2="22.250591"
+       x2="50.988335"
+       y1="17.376184"
+       x1="48.90625" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop5050-4" />
+      <stop
+         offset="0.5"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop5056-7" />
+      <stop
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop5052-1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop4544-5" />
+      <stop
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop4546-5" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop15664-5" />
+      <stop
+         offset="1"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         id="stop15666-8" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       id="aigrd3-9"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099">
+      <stop
+         offset="0"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         id="stop15573-3" />
+      <stop
+         offset="1"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         id="stop15575-4" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       id="aigrd2-8"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099">
+      <stop
+         offset="0"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         id="stop15566-1" />
+      <stop
+         offset="1"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         id="stop15568-5" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         offset="0"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         id="stop270-6" />
+      <stop
+         offset="1"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         id="stop271-9" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         offset="0"
+         style="stop-color:#fafafa;stop-opacity:1"
+         id="stop260-8" />
+      <stop
+         offset="1"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         id="stop261-0" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4542-3"
+       id="radialGradient4548-4"
+       fy="42.07798"
+       fx="24.306795"
+       r="15.821514"
+       cy="42.07798"
+       cx="24.306795" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         offset="0"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         id="stop4442-2" />
+      <stop
+         offset="0.5"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         id="stop4448-4" />
+      <stop
+         offset="1"
+         style="stop-color:#686868;stop-opacity:1"
+         id="stop4444-9" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         offset="0"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         id="stop4456-3" />
+      <stop
+         offset="1"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         id="stop4458-2" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop4469-9" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         id="stop4471-9" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop2368-7" />
+      <stop
+         offset="0.5"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         id="stop2374-8" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop2370-7" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         offset="0"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         id="stop2848-1" />
+      <stop
+         offset="1"
+         style="stop-color:#484848;stop-opacity:1"
+         id="stop2850-1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         offset="0"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         id="stop2968-2" />
+      <stop
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         id="stop3006-7" />
+      <stop
+         offset="1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         id="stop2970-1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         offset="0"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         id="stop2976-3" />
+      <stop
+         offset="1"
+         style="stop-color:#acacac;stop-opacity:1"
+         id="stop2978-3" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         offset="0"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         id="stop2986" />
+      <stop
+         offset="1"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         id="stop2988" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop2996-5" />
+      <stop
+         offset="1"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         id="stop2998-9" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3755-2"
+       id="radialGradient2996-4"
+       fy="395.04871"
+       fx="182.9837"
+       r="148.95309"
+       cy="395.04871"
+       cx="182.9837" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         offset="0"
+         style="stop-color:#008cbe;stop-opacity:1"
+         id="stop3757-8" />
+      <stop
+         offset="1"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         id="stop3759-9" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3755-2"
+       id="radialGradient3033-0"
+       fy="395.04871"
+       fx="182.9837"
+       r="148.95309"
+       cy="395.04871"
+       cx="182.9837" />
+    <filter
+       id="filter3683"
+       color-interpolation-filters="sRGB"
+       height="1"
+       width="1"
+       y="0"
+       x="0">
+      <feColorMatrix
+         id="feColorMatrix3685"
+         type="saturate"
+         values="0" />
+    </filter>
+    <filter
+       id="filter3827"
+       color-interpolation-filters="sRGB"
+       height="1"
+       width="1"
+       y="0"
+       x="0">
+      <feColorMatrix
+         id="feColorMatrix3829"
+         type="saturate"
+         values="0"
+         result="result1" />
+      <feFlood
+         id="feFlood3831"
+         flood-color="rgb(9,111,152)"
+         result="result2" />
+      <feBlend
+         id="feBlend3833"
+         result="result2"
+         mode="screen"
+         in2="result1" />
+      <feComposite
+         id="feComposite3835"
+         in="result2"
+         operator="in"
+         in2="SourceGraphic" />
+    </filter>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient12512"
+       id="radialGradient1758"
+       fy="125"
+       fx="55"
+       r="14.375"
+       cy="125"
+       cx="55" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop12513" />
+      <stop
+         offset="0.5"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         id="stop12517" />
+      <stop
+         offset="1"
+         style="stop-color:#fff300;stop-opacity:0"
+         id="stop12514" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient9766"
+       id="linearGradient9772"
+       y2="32.050499"
+       x2="22.065331"
+       y1="36.987999"
+       x1="22.175976" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3096"
+       id="linearGradient3104"
+       y2="6.1802502"
+       x2="15.514889"
+       y1="31.36775"
+       x1="18.112709" />
+    <linearGradient
+       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient319"
+       id="linearGradient322"
+       y2="46.689312"
+       x2="12.853771"
+       y1="32.567184"
+       x1="13.035696" />
+    <linearGradient
+       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3983"
+       id="linearGradient491"
+       y2="66.834053"
+       x2="9.8980894"
+       y1="13.773066"
+       x1="6.2297964" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         id="stop3984" />
+      <stop
+         offset="1"
+         style="stop-color:#fffffe;stop-opacity:0"
+         id="stop3985" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient1789"
+       id="radialGradient238"
+       fy="37.517986"
+       fx="20.706017"
+       r="30.905205"
+       cy="37.517986"
+       cx="20.706017" />
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         offset="0"
+         style="stop-color:#202020;stop-opacity:1"
+         id="stop1790" />
+      <stop
+         offset="1"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         id="stop1791" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop320" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0"
+         id="stop321" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         offset="0"
+         style="stop-color:#424242;stop-opacity:1"
+         id="stop3098" />
+      <stop
+         offset="1"
+         style="stop-color:#777777;stop-opacity:1"
+         id="stop3100" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         offset="0"
+         style="stop-color:#6194cb;stop-opacity:1"
+         id="stop9768" />
+      <stop
+         offset="1"
+         style="stop-color:#729fcf;stop-opacity:1"
+         id="stop9770" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5048-8"
+       id="linearGradient5027"
+       y2="609.50507"
+       x2="302.85715"
+       y1="366.64789"
+       x1="302.85715" />
+    <linearGradient
+       id="linearGradient5048-8">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop5050-5" />
+      <stop
+         offset="0.5"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop5056-5" />
+      <stop
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop5052-2" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       fy="486.64789"
+       fx="605.71429"
+       r="117.14286"
+       cy="486.64789"
+       cx="605.71429" />
+    <linearGradient
+       id="linearGradient5060">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop5062" />
+      <stop
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       fy="486.64789"
+       fx="605.71429"
+       r="117.14286"
+       cy="486.64789"
+       cx="605.71429" />
+    <filter
+       id="filter3827-2"
+       color-interpolation-filters="sRGB"
+       height="1"
+       width="1"
+       y="0"
+       x="0">
+      <feColorMatrix
+         id="feColorMatrix3829-1"
+         type="saturate"
+         values="0"
+         result="result1" />
+      <feFlood
+         id="feFlood3831-3"
+         flood-color="rgb(9,111,152)"
+         result="result2" />
+      <feBlend
+         id="feBlend3833-2"
+         result="result2"
+         mode="screen"
+         in2="result1" />
+      <feComposite
+         id="feComposite3835-8"
+         in="result2"
+         operator="in"
+         in2="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter3827-6"
+       color-interpolation-filters="sRGB"
+       height="1"
+       width="1"
+       y="0"
+       x="0">
+      <feColorMatrix
+         id="feColorMatrix3829-7"
+         type="saturate"
+         values="0"
+         result="result1" />
+      <feFlood
+         id="feFlood3831-1"
+         flood-color="rgb(9,111,152)"
+         result="result2" />
+      <feBlend
+         id="feBlend3833-9"
+         result="result2"
+         mode="screen"
+         in2="result1" />
+      <feComposite
+         id="feComposite3835-3"
+         in="result2"
+         operator="in"
+         in2="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter3683-3"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       style="color-interpolation-filters:sRGB">
+      <feColorMatrix
+         id="feColorMatrix3685-6"
+         type="saturate"
+         values="0" />
+    </filter>
+    <radialGradient
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2984"
+       id="radialGradient3679"
+       fy="27.640751"
+       fx="29.053354"
+       r="3.2408545"
+       cy="27.640751"
+       cx="29.053354" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <g
+       id="g2679"
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)">
+      <g
+         id="g3025-4"
+         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)">
+        <g
+           style="display:inline"
+           id="layer1"
+           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)">
+          <path
+             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
+             id="path15672"
+             d="m 11.505723,5.4942766 0,37.9065924" />
+        </g>
+        <g
+           style="filter:url(#filter3827)"
+           id="g3786">
+          <rect
+             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+             id="rect5876"
+             transform="translate(47.719063,1.6625723)"
+             y="99.493881"
+             x="85.381561"
+             ry="0.76958966"
+             rx="0.76958966"
+             height="4.349854"
+             width="4.349854" />
+          <rect
+             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+             id="rect15391"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             y="3.6464462"
+             x="6.6035528"
+             ry="1.1468204"
+             rx="1.1449448"
+             height="40.920494"
+             width="34.875" />
+          <rect
+             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+             id="rect15660"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             y="4.5839462"
+             x="7.6660538"
+             ry="0.14875954"
+             rx="0.14851625"
+             height="38.946384"
+             width="32.775887" />
+          <rect
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+             id="rect15688"
+             y="98.939804"
+             x="122.39634"
+             ry="0.050595302"
+             rx="0.11721393"
+             height="0.77373642"
+             width="17.013876" />
+          <rect
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+             id="rect15694"
+             y="103.58221"
+             x="122.39634"
+             ry="0.050595302"
+             rx="0.11721393"
+             height="0.77373642"
+             width="17.013876" />
+          <rect
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+             id="rect15700"
+             y="108.22463"
+             x="122.39634"
+             ry="0.050595302"
+             rx="0.11721393"
+             height="0.77373642"
+             width="17.013876" />
+          <rect
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+             id="rect15736"
+             y="112.86707"
+             x="122.39633"
+             ry="0.050595302"
+             rx="0.11721393"
+             height="0.77373642"
+             width="17.013876" />
+          <rect
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+             id="rect15742"
+             y="117.50946"
+             x="122.39633"
+             ry="0.050595302"
+             rx="0.11721393"
+             height="0.77373642"
+             width="17.013876" />
+          <g
+             id="g4142"
+             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)">
+            <g
+               id="layer1-4" />
+            <g
+               id="layer2" />
+          </g>
+          <rect
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827)"
+             id="rect15688-8"
+             transform="matrix(0,-0.13366266,0.13366266,0,122.36549,118.26113)"
+             y="0"
+             x="0"
+             ry="0.4276301"
+             rx="0.99068886"
+             height="6.5395989"
+             width="143.80081" />
+          <rect
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827-2)"
+             id="rect15688-8-0"
+             transform="matrix(0,-0.13366266,0.13366266,0,129.23148,118.19983)"
+             y="0"
+             x="0"
+             ry="0.4276301"
+             rx="0.99068886"
+             height="6.5395989"
+             width="143.80081" />
+          <rect
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827-6)"
+             id="rect15688-8-3"
+             transform="matrix(0,-0.13366266,0.13366266,0,138.48828,118.19983)"
+             y="0"
+             x="0"
+             ry="0.4276301"
+             rx="0.99068886"
+             height="6.5395989"
+             width="143.80081" />
+          <text
+             style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+             xml:space="preserve"
+             id="text3260"
+             transform="matrix(0.11831558,0,0,0.11831558,108.27363,95.669952)"
+             y="64.117348"
+             x="148.18652"><tspan
+               style="font-size:32px;font-weight:bold;-inkscape-font-specification:Sans Bold"
+               id="tspan3262"
+               y="64.117348"
+               x="148.18652" /></text>
+          <rect
+             style="color:#000000;fill:#a9cddb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             id="rect3264"
+             transform="matrix(0.11831558,0,0,0.11831558,108.27363,95.669952)"
+             y="38.728745"
+             x="131.08809"
+             ry="0.057158176"
+             rx="0.13241811"
+             height="23.316063"
+             width="41.968906" />
+          <rect
+             style="color:#000000;fill:#a9cddb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3827);enable-background:accumulate"
+             id="rect3264-3"
+             transform="matrix(0.11831558,0,0,0.11831558,123.81405,104.88057)"
+             y="9.9475983e-14"
+             x="0"
+             ry="0.057158176"
+             rx="0.13241811"
+             height="23.316063"
+             width="41.968906" />
+        </g>
+      </g>
+    </g>
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+  </g>
+  <g
+     id="g3499"
+     transform="matrix(8.4519723,0,0,8.4519723,-910.10149,-805.77385)"
+     style="filter:url(#filter3827)">
+    <g
+       style="filter:url(#filter3683-3)"
+       id="g1574"
+       transform="matrix(0.49605972,-0.13291888,0.13291888,0.49605972,123.52135,84.743061)">
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:0.93443578;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+         id="path2960"
+         transform="translate(-29.75546,19)"
+         d="m 17.34116,32.5 5.625,-5.625 20.093749,-9.75 c 3.25,-1.25 5.1875,3.375 2.3125,5 L 25.34116,31.5 l -8,1 z" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3550);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
+         id="path2964"
+         transform="translate(-29.75546,19)"
+         d="m 38.330708,20 c 0,0 1.4375,0.09375 2,1.34375 0.579493,1.287761 0,2.65625 0,2.65625 l 5.03125,-2.46875 c 0,0 1.452032,-0.881367 0.65625,-2.84375 -0.784912,-1.935577 -2.6875,-1.15625 -2.6875,-1.15625 l -5,2.46875 z" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3552);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
+         id="path2962"
+         transform="translate(-29.75546,19)"
+         d="m 38.330708,20 c 0,0 1.4375,0.09375 2,1.34375 0.579493,1.287761 0,2.65625 0,2.65625 l 2,-1 c 0,0 0.827032,-1.318867 0.21875,-2.6875 C 41.924458,18.90625 40.330708,19 40.330708,19 l -2,1 z" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3679);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
+         id="path2982"
+         transform="translate(-29.75546,19)"
+         d="m 18.768208,31.78125 4.5,-4.5 c 1.5,0.8125 2.28125,2.15625 1.875,3.71875 l -6.375,0.78125 z" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3556);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
+         id="path2992"
+         transform="translate(-29.75546,19)"
+         d="m 20.111958,30.375 -1.625,1.59375 2.34375,-0.3125 c 0.21875,-0.71875 -0.1875,-1.0625 -0.71875,-1.28125 z" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
+         id="path3002"
+         transform="translate(-29.75546,19)"
+         d="m 23.268208,27.25 1.5625,1.25 15.38734,-7.31867 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 Z" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
+         id="path3004"
+         transform="translate(-29.75546,19)"
+         d="m 25.143208,31.0625 0.1875,-0.75 15.23109,-7.1296 c 0,0 -0.11016,0.613627 -0.215879,0.74935 L 25.143208,31.0625 Z" />
+    </g>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/graphic_logo_WorkspaceView.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1175 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         id="stop4544"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540"
+       xlink:href="#linearGradient259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542"
+       xlink:href="#linearGradient269"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544"
+       xlink:href="#linearGradient15662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3556"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3554"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3552"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3550"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3548-0"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3546-5"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3544-8"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3542-6"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3540-4"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="radialGradient3417"
+       xlink:href="#aigrd3-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="radialGradient3415"
+       xlink:href="#aigrd2-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)" />
+    <radialGradient
+       cx="8.1435566"
+       cy="7.2678967"
+       r="38.158695"
+       fx="8.1435566"
+       fy="7.2678967"
+       id="radialGradient3413"
+       xlink:href="#linearGradient15662-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="8.824419"
+       cy="3.7561285"
+       r="37.751713"
+       fx="8.824419"
+       fy="3.7561285"
+       id="radialGradient3411"
+       xlink:href="#linearGradient269-7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)" />
+    <radialGradient
+       cx="33.966679"
+       cy="35.736916"
+       r="86.70845"
+       fx="33.966679"
+       fy="35.736916"
+       id="radialGradient3409"
+       xlink:href="#linearGradient259-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)" />
+    <linearGradient
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125"
+       id="linearGradient3405"
+       xlink:href="#linearGradient2994-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)" />
+    <radialGradient
+       cx="29.053354"
+       cy="27.640751"
+       r="3.2408545"
+       fx="29.053354"
+       fy="27.640751"
+       id="radialGradient3403"
+       xlink:href="#linearGradient2984"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" />
+    <linearGradient
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625"
+       id="linearGradient3401"
+       xlink:href="#linearGradient2974-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591"
+       id="linearGradient3399"
+       xlink:href="#linearGradient2966-9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,0)" />
+    <linearGradient
+       id="linearGradient5048-2">
+      <stop
+         id="stop5050-4"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-1"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542-3">
+      <stop
+         id="stop4544-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4546-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662-2">
+      <stop
+         id="stop15664-5"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15666-8"
+         style="stop-color:#f8f8f8;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       id="aigrd3-9"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15573-3"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15575-4"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       id="aigrd2-8"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         id="stop15566-1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15568-5"
+         style="stop-color:#9a9a9a;stop-opacity:1"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269-7">
+      <stop
+         id="stop270-6"
+         style="stop-color:#a3a3a3;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop271-9"
+         style="stop-color:#4c4c4c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259-5">
+      <stop
+         id="stop260-8"
+         style="stop-color:#fafafa;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop261-0"
+         style="stop-color:#bbbbbb;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.306795"
+       cy="42.07798"
+       r="15.821514"
+       fx="24.306795"
+       fy="42.07798"
+       id="radialGradient4548-4"
+       xlink:href="#linearGradient4542-3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.284916,0,30.08928)" />
+    <linearGradient
+       id="linearGradient4440-9">
+      <stop
+         id="stop4442-2"
+         style="stop-color:#7d7d7d;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4448-4"
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop4444-9"
+         style="stop-color:#686868;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454-6">
+      <stop
+         id="stop4456-3"
+         style="stop-color:#729fcf;stop-opacity:0.20784314"
+         offset="0" />
+      <stop
+         id="stop4458-2"
+         style="stop-color:#729fcf;stop-opacity:0.6761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467-0">
+      <stop
+         id="stop4469-9"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4471-9"
+         style="stop-color:#ffffff;stop-opacity:0.24761905"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366-7">
+      <stop
+         id="stop2368-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2374-8"
+         style="stop-color:#ffffff;stop-opacity:0.21904762"
+         offset="0.5" />
+      <stop
+         id="stop2370-7"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846-2">
+      <stop
+         id="stop2848-1"
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2850-1"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966-9">
+      <stop
+         id="stop2968-2"
+         style="stop-color:#ffd1d1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3006-7"
+         style="stop-color:#ff1d1d;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop2970-1"
+         style="stop-color:#6f0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974-0">
+      <stop
+         id="stop2976-3"
+         style="stop-color:#c1c1c1;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2978-3"
+         style="stop-color:#acacac;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984">
+      <stop
+         id="stop2986"
+         style="stop-color:#e7e2b8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2988"
+         style="stop-color:#e7e2b8;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994-0">
+      <stop
+         id="stop2996-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2998-9"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient2996-4"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755-2">
+      <stop
+         id="stop3757-8"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759-9"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033-0"
+       xlink:href="#linearGradient3755-2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3683">
+      <feColorMatrix
+         values="0"
+         type="saturate"
+         id="feColorMatrix3685" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835" />
+    </filter>
+    <radialGradient
+       cx="55"
+       cy="125"
+       r="14.375"
+       fx="55"
+       fy="125"
+       id="radialGradient1758"
+       xlink:href="#linearGradient12512"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop12517"
+         style="stop-color:#fff520;stop-opacity:0.89108908"
+         offset="0.5" />
+      <stop
+         id="stop12514"
+         style="stop-color:#fff300;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       id="linearGradient9772"
+       xlink:href="#linearGradient9766"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="18.112709"
+       y1="31.36775"
+       x2="15.514889"
+       y2="6.1802502"
+       id="linearGradient3104"
+       xlink:href="#linearGradient3096"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="13.035696"
+       y1="32.567184"
+       x2="12.853771"
+       y2="46.689312"
+       id="linearGradient322"
+       xlink:href="#linearGradient319"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)" />
+    <linearGradient
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053"
+       id="linearGradient491"
+       xlink:href="#linearGradient3983"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         id="stop3984"
+         style="stop-color:#ffffff;stop-opacity:0.87628865"
+         offset="0" />
+      <stop
+         id="stop3985"
+         style="stop-color:#fffffe;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="20.706017"
+       cy="37.517986"
+       r="30.905205"
+       fx="20.706017"
+       fy="37.517986"
+       id="radialGradient238"
+       xlink:href="#linearGradient1789"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.055022,-0.02734504,0.177703,1.190929,-3.572177,-7.125301)" />
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         id="stop1790"
+         style="stop-color:#202020;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1791"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319">
+      <stop
+         id="stop320"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop321"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         style="stop-color:#424242;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3100"
+         style="stop-color:#777777;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         id="stop9768"
+         style="stop-color:#6194cb;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9770"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507"
+       id="linearGradient5027"
+       xlink:href="#linearGradient5048-8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" />
+    <linearGradient
+       id="linearGradient5048-8">
+      <stop
+         id="stop5050-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="0" />
+      <stop
+         id="stop5056-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop5052-2"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5029"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" />
+    <linearGradient
+       id="linearGradient5060">
+      <stop
+         id="stop5062"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5064"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="605.71429"
+       cy="486.64789"
+       r="117.14286"
+       fx="605.71429"
+       fy="486.64789"
+       id="radialGradient5031"
+       xlink:href="#linearGradient5060"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827-2">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829-1" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831-3" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833-2" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835-8" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3827-6">
+      <feColorMatrix
+         result="result1"
+         values="0"
+         type="saturate"
+         id="feColorMatrix3829-7" />
+      <feFlood
+         result="result2"
+         flood-color="rgb(9,111,152)"
+         id="feFlood3831-1" />
+      <feBlend
+         in2="result1"
+         mode="screen"
+         result="result2"
+         id="feBlend3833-9" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         in="result2"
+         id="feComposite3835-3" />
+    </filter>
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <g
+       transform="matrix(0.60392126,0,0,0.60392126,68.46259,92.384932)"
+       id="g2679">
+      <g
+         transform="matrix(1.655845,0,0,1.655845,-192.37881,-155.72809)"
+         id="g3025-4">
+        <g
+           transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
+           id="layer1"
+           style="display:inline">
+          <path
+             d="m 11.505723,5.4942766 0,37.9065924"
+             id="path15672"
+             style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
+        </g>
+        <g
+           id="g3786"
+           style="filter:url(#filter3827)">
+          <rect
+             width="4.349854"
+             height="4.349854"
+             rx="0.76958966"
+             ry="0.76958966"
+             x="85.381561"
+             y="99.493881"
+             transform="translate(47.719063,1.6625723)"
+             id="rect5876"
+             style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+          <rect
+             width="34.875"
+             height="40.920494"
+             rx="1.1449448"
+             ry="1.1468204"
+             x="6.6035528"
+             y="3.6464462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15391"
+             style="color:#000000;fill:url(#radialGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3542);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="32.775887"
+             height="38.946384"
+             rx="0.14851625"
+             ry="0.14875954"
+             x="7.6660538"
+             y="4.5839462"
+             transform="matrix(0.60608572,0,0,0.60509468,116.10482,93.954782)"
+             id="rect15660"
+             style="color:#000000;fill:none;stroke:url(#radialGradient3544);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="17.013876"
+             height="0.77373642"
+             rx="0.11721393"
+             ry="0.050595302"
+             x="122.39634"
+             y="98.939804"
+             id="rect15688"
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="17.013876"
+             height="0.77373642"
+             rx="0.11721393"
+             ry="0.050595302"
+             x="122.39634"
+             y="103.58221"
+             id="rect15694"
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="17.013876"
+             height="0.77373642"
+             rx="0.11721393"
+             ry="0.050595302"
+             x="122.39634"
+             y="108.22463"
+             id="rect15700"
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="17.013876"
+             height="0.77373642"
+             rx="0.11721393"
+             ry="0.050595302"
+             x="122.39633"
+             y="112.86707"
+             id="rect15736"
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          <rect
+             width="17.013876"
+             height="0.77373642"
+             rx="0.11721393"
+             ry="0.050595302"
+             x="122.39633"
+             y="117.50946"
+             id="rect15742"
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+          <g
+             transform="matrix(0.11831558,0,0,0.11831558,72.907145,102.92795)"
+             id="g4142">
+            <g
+               id="layer1-4" />
+            <g
+               id="layer2" />
+          </g>
+          <rect
+             width="143.80081"
+             height="6.5395989"
+             rx="0.99068886"
+             ry="0.4276301"
+             x="0"
+             y="0"
+             transform="matrix(0,-0.13366266,0.13366266,0,122.36549,118.26113)"
+             id="rect15688-8"
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827)" />
+          <rect
+             width="143.80081"
+             height="6.5395989"
+             rx="0.99068886"
+             ry="0.4276301"
+             x="0"
+             y="0"
+             transform="matrix(0,-0.13366266,0.13366266,0,129.23148,118.19983)"
+             id="rect15688-8-0"
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827-2)" />
+          <rect
+             width="143.80081"
+             height="6.5395989"
+             rx="0.99068886"
+             ry="0.4276301"
+             x="0"
+             y="0"
+             transform="matrix(0,-0.13366266,0.13366266,0,138.48828,118.19983)"
+             id="rect15688-8-3"
+             style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3827-6)" />
+          <text
+             x="148.18652"
+             y="64.117348"
+             transform="matrix(0.11831558,0,0,0.11831558,108.27363,95.669952)"
+             id="text3260"
+             xml:space="preserve"
+             style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"><tspan
+               x="148.18652"
+               y="64.117348"
+               id="tspan3262"
+               style="font-size:32px;font-weight:bold;-inkscape-font-specification:Sans Bold" /></text>
+          <rect
+             width="41.968906"
+             height="23.316063"
+             rx="0.13241811"
+             ry="0.057158176"
+             x="131.08809"
+             y="38.728745"
+             transform="matrix(0.11831558,0,0,0.11831558,108.27363,95.669952)"
+             id="rect3264"
+             style="color:#000000;fill:#a9cddb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+          <rect
+             width="41.968906"
+             height="23.316063"
+             rx="0.13241811"
+             ry="0.057158176"
+             x="0"
+             y="9.9475983e-14"
+             transform="matrix(0.11831558,0,0,0.11831558,123.81405,104.88057)"
+             id="rect3264-3"
+             style="color:#000000;fill:#a9cddb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3827);enable-background:accumulate" />
+        </g>
+      </g>
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_DocumentationDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="letter_logo_DocumentationDockWidget.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1196"
+     inkscape:window-height="608"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="2.603563"
+     inkscape:cx="83.87534"
+     inkscape:cy="177.60974"
+     inkscape:window-x="84"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3025" />
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:0;"
+         offset="0"
+         id="stop3872" />
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="1"
+         id="stop3874" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       cx="182.9837"
+       cy="395.04871"
+       fx="182.9837"
+       fy="395.04871"
+       r="148.95309" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968" />
+      <stop
+         id="stop3006"
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         offset="0.0000000"
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2850"
+         offset="1.0000000"
+         style="stop-color:#484848;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         id="stop2370"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         id="stop4448"
+         offset="0.50000000"
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       r="15.821514"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542"
+       inkscape:collect="always">
+      <stop
+         id="stop4544"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4546"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:black;stop-opacity:0;" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:black;stop-opacity:0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective144"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       id="path3081"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5876"
+       y="99.493881"
+       x="85.381561"
+       ry="0.76958966"
+       rx="0.76958966"
+       height="4.349854"
+       width="4.349854" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+    <text
+       xml:space="preserve"
+       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="73.396858"
+       y="116.86329"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="73.396858"
+         y="116.86329"
+         style="font-size:17.03744315999999870px;font-style:normal;font-weight:bold;fill:#d45500;fill-opacity:1;stroke:none;-inkscape-font-specification:DejaVu Sans Bold;font-family:DejaVu Sans;font-stretch:normal;font-variant:normal">D</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_FileEditor.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="letter_logo_FileDockWidget.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1196"
+     inkscape:window-height="608"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="1.4648618"
+     inkscape:cx="138.6918"
+     inkscape:cy="177.60974"
+     inkscape:window-x="84"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3025" />
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:0;"
+         offset="0"
+         id="stop3872" />
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="1"
+         id="stop3874" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       cx="182.9837"
+       cy="395.04871"
+       fx="182.9837"
+       fy="395.04871"
+       r="148.95309" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968" />
+      <stop
+         id="stop3006"
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         offset="0.0000000"
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2850"
+         offset="1.0000000"
+         style="stop-color:#484848;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         id="stop2370"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         id="stop4448"
+         offset="0.50000000"
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       r="15.821514"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542"
+       inkscape:collect="always">
+      <stop
+         id="stop4544"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4546"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:black;stop-opacity:0;" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:black;stop-opacity:0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective144"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       id="path3081"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5876"
+       y="99.493881"
+       x="85.381561"
+       ry="0.76958966"
+       rx="0.76958966"
+       height="4.349854"
+       width="4.349854" />
+    <g
+       style="display:inline"
+       inkscape:label="Base"
+       id="layer1"
+       transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
+         d="m 11.505723,5.4942766 0,37.9065924"
+         id="path15672"
+         sodipodi:nodetypes="cc" />
+    </g>
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+    <text
+       xml:space="preserve"
+       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="73.396858"
+       y="116.86329"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="73.396858"
+         y="116.86329"
+         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">E</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_FilesDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="letter_logo_WorkspaceDockWidget.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1196"
+     inkscape:window-height="608"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="1.4648618"
+     inkscape:cx="138.6918"
+     inkscape:cy="177.60974"
+     inkscape:window-x="84"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3025" />
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:0;"
+         offset="0"
+         id="stop3872" />
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="1"
+         id="stop3874" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       cx="182.9837"
+       cy="395.04871"
+       fx="182.9837"
+       fy="395.04871"
+       r="148.95309" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968" />
+      <stop
+         id="stop3006"
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         offset="0.0000000"
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2850"
+         offset="1.0000000"
+         style="stop-color:#484848;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         id="stop2370"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         id="stop4448"
+         offset="0.50000000"
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       r="15.821514"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542"
+       inkscape:collect="always">
+      <stop
+         id="stop4544"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4546"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:black;stop-opacity:0;" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:black;stop-opacity:0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective144"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       id="path3081"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5876"
+       y="99.493881"
+       x="85.381561"
+       ry="0.76958966"
+       rx="0.76958966"
+       height="4.349854"
+       width="4.349854" />
+    <g
+       style="display:inline"
+       inkscape:label="Base"
+       id="layer1"
+       transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
+         d="m 11.505723,5.4942766 0,37.9065924"
+         id="path15672"
+         sodipodi:nodetypes="cc" />
+    </g>
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+    <text
+       xml:space="preserve"
+       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="73.396858"
+       y="116.86329"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="73.396858"
+         y="116.86329"
+         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">F</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_HistoryDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="letter_logo_HistoryDockWidget.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1196"
+     inkscape:window-height="608"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="2.603563"
+     inkscape:cx="-14.065134"
+     inkscape:cy="177.60974"
+     inkscape:window-x="84"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3025" />
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:0;"
+         offset="0"
+         id="stop3872" />
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="1"
+         id="stop3874" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       cx="182.9837"
+       cy="395.04871"
+       fx="182.9837"
+       fy="395.04871"
+       r="148.95309" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968" />
+      <stop
+         id="stop3006"
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         offset="0.0000000"
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2850"
+         offset="1.0000000"
+         style="stop-color:#484848;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         id="stop2370"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         id="stop4448"
+         offset="0.50000000"
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       r="15.821514"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542"
+       inkscape:collect="always">
+      <stop
+         id="stop4544"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4546"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:black;stop-opacity:0;" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:black;stop-opacity:0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective144"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       id="path3081"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5876"
+       y="99.493881"
+       x="85.381561"
+       ry="0.76958966"
+       rx="0.76958966"
+       height="4.349854"
+       width="4.349854" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+    <text
+       xml:space="preserve"
+       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="73.396858"
+       y="116.86329"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="73.396858"
+         y="116.86329"
+         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">H</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_NewsDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="letter_logo_NewsDockWidget.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1196"
+     inkscape:window-height="608"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="1.5021831"
+     inkscape:cx="138.6918"
+     inkscape:cy="177.60974"
+     inkscape:window-x="84"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3025" />
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:0;"
+         offset="0"
+         id="stop3872" />
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="1"
+         id="stop3874" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       cx="182.9837"
+       cy="395.04871"
+       fx="182.9837"
+       fy="395.04871"
+       r="148.95309" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968" />
+      <stop
+         id="stop3006"
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         offset="0.0000000"
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2850"
+         offset="1.0000000"
+         style="stop-color:#484848;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         id="stop2370"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         id="stop4448"
+         offset="0.50000000"
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       r="15.821514"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542"
+       inkscape:collect="always">
+      <stop
+         id="stop4544"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4546"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:black;stop-opacity:0;" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:black;stop-opacity:0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective144"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       id="path3081"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5876"
+       y="99.493881"
+       x="85.381561"
+       ry="0.76958966"
+       rx="0.76958966"
+       height="4.349854"
+       width="4.349854" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+    <text
+       xml:space="preserve"
+       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="73.396858"
+       y="116.86329"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="73.396858"
+         y="116.86329"
+         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">N</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_ReleaseWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="letter_logo_ReleaseWidget.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1196"
+     inkscape:window-height="608"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="1.4648618"
+     inkscape:cx="138.6918"
+     inkscape:cy="177.60974"
+     inkscape:window-x="84"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3025" />
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:0;"
+         offset="0"
+         id="stop3872" />
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="1"
+         id="stop3874" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       cx="182.9837"
+       cy="395.04871"
+       fx="182.9837"
+       fy="395.04871"
+       r="148.95309" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968" />
+      <stop
+         id="stop3006"
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         offset="0.0000000"
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2850"
+         offset="1.0000000"
+         style="stop-color:#484848;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         id="stop2370"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         id="stop4448"
+         offset="0.50000000"
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       r="15.821514"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542"
+       inkscape:collect="always">
+      <stop
+         id="stop4544"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4546"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:black;stop-opacity:0;" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:black;stop-opacity:0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective144"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       id="path3081"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5876"
+       y="99.493881"
+       x="85.381561"
+       ry="0.76958966"
+       rx="0.76958966"
+       height="4.349854"
+       width="4.349854" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+    <text
+       xml:space="preserve"
+       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="73.396858"
+       y="116.86329"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="73.396858"
+         y="116.86329"
+         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">R</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_TerminalDockWidget.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="letter_logo_TerminalDockWidget.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1196"
+     inkscape:window-height="608"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="2.603563"
+     inkscape:cx="85.535348"
+     inkscape:cy="177.60974"
+     inkscape:window-x="84"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3025" />
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:0;"
+         offset="0"
+         id="stop3872" />
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="1"
+         id="stop3874" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       cx="182.9837"
+       cy="395.04871"
+       fx="182.9837"
+       fy="395.04871"
+       r="148.95309" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968" />
+      <stop
+         id="stop3006"
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         offset="0.0000000"
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2850"
+         offset="1.0000000"
+         style="stop-color:#484848;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         id="stop2370"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         id="stop4448"
+         offset="0.50000000"
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       r="15.821514"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542"
+       inkscape:collect="always">
+      <stop
+         id="stop4544"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4546"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:black;stop-opacity:0;" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:black;stop-opacity:0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective144"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       id="path3081"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5876"
+       y="99.493881"
+       x="85.381561"
+       ry="0.76958966"
+       rx="0.76958966"
+       height="4.349854"
+       width="4.349854" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+    <text
+       xml:space="preserve"
+       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="73.396858"
+       y="116.86329"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="73.396858"
+         y="116.86329"
+         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">C</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_VariableEditor.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,332 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   id="svg2872"
+   height="283.28833"
+   width="283.28912"
+   version="1.1">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         id="stop3872"
+         offset="0"
+         style="stop-color:#ebebeb;stop-opacity:0;" />
+      <stop
+         id="stop3874"
+         offset="1"
+         style="stop-color:#ebebeb;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3755"
+       id="radialGradient3033"
+       fy="395.04871"
+       fx="182.9837"
+       r="148.95309"
+       cy="395.04871"
+       cx="182.9837" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         offset="0"
+         style="stop-color:#008cbe;stop-opacity:1"
+         id="stop3757" />
+      <stop
+         offset="1"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         id="stop3759" />
+    </linearGradient>
+    <radialGradient
+       r="148.95309"
+       fy="395.04871"
+       fx="182.9837"
+       cy="395.04871"
+       cx="182.9837"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2996"
+       xlink:href="#linearGradient3755" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop2998"
+         offset="1"
+         style="stop-color:#c9c9c9;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#c1c1c1;stop-opacity:1;" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#acacac;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         offset="0"
+         style="stop-color:#ffd1d1;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ff1d1d;stop-opacity:1;"
+         offset="0.5"
+         id="stop3006" />
+      <stop
+         id="stop2970"
+         offset="1"
+         style="stop-color:#6f0000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2848" />
+      <stop
+         style="stop-color:#484848;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2850" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2368" />
+      <stop
+         id="stop2374"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:0.21904762;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2370" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4471"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.24761905;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         offset="0.0000000"
+         style="stop-color:#729fcf;stop-opacity:0.20784314;" />
+      <stop
+         id="stop4458"
+         offset="1.0000000"
+         style="stop-color:#729fcf;stop-opacity:0.67619050;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         offset="0"
+         style="stop-color:#7d7d7d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop4448" />
+      <stop
+         id="stop4444"
+         offset="1.0000000"
+         style="stop-color:#686868;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       xlink:href="#linearGradient4542"
+       id="radialGradient4548"
+       cx="24.306795"
+       cy="42.07798"
+       fx="24.306795"
+       fy="42.07798"
+       r="15.821514"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop261"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop271"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="aigrd2"
+       cx="20.8921"
+       cy="114.5684"
+       r="5.256"
+       fx="20.8921"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop15566" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop15568" />
+    </radialGradient>
+    <radialGradient
+       id="aigrd3"
+       cx="20.8921"
+       cy="64.5679"
+       r="5.257"
+       fx="20.8921"
+       fy="64.5679"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop15573" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop15575" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop15666"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4544" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4546" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+  </defs>
+  <g
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)"
+     id="g3025">
+    <path
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)"
+       id="path3081"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+    <path
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z"
+       id="path5874"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none" />
+    <rect
+       width="4.349854"
+       height="4.349854"
+       rx="0.76958966"
+       ry="0.76958966"
+       x="85.381561"
+       y="99.493881"
+       id="rect5876"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <g
+       transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)"
+       id="layer1"
+       style="display:inline">
+      <path
+         id="path15672"
+         d="m 11.505723,5.4942766 0,37.9065924"
+         style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384" />
+    </g>
+    <rect
+       width="10.245436"
+       height="10.245436"
+       rx="1.8126545"
+       ry="1.8126545"
+       x="60.92659"
+       y="105.2245"
+       id="rect5878"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       width="6.1897531"
+       height="6.1897531"
+       rx="1.0951102"
+       ry="1.0951102"
+       x="87.404739"
+       y="118.63705"
+       id="rect5880"
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    <text
+       id="text3882"
+       y="116.86329"
+       x="72.797432"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.83957386px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none"
+       xml:space="preserve"><tspan
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.03744316px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans Bold';fill:#d45500;fill-opacity:1;stroke:none"
+         y="116.86329"
+         x="72.797432"
+         id="tspan3884">V</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/letter_logo_WorkspaceView.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="letter_logo_HistoryDockWidget.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1196"
+     inkscape:window-height="608"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="1.4648618"
+     inkscape:cx="138.6918"
+     inkscape:cy="177.60974"
+     inkscape:window-x="84"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3025" />
+  <defs
+     id="defs2874">
+    <linearGradient
+       id="linearGradient3870">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:0;"
+         offset="0"
+         id="stop3872" />
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="1"
+         id="stop3874" />
+    </linearGradient>
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3755"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85338,-159.69482)"
+       cx="182.9837"
+       cy="395.04871"
+       fx="182.9837"
+       fy="395.04871"
+       r="148.95309" />
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2996" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop2998" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         style="stop-color:#c1c1c1;stop-opacity:1;"
+         offset="0"
+         id="stop2976" />
+      <stop
+         style="stop-color:#acacac;stop-opacity:1;"
+         offset="1"
+         id="stop2978" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         style="stop-color:#ffd1d1;stop-opacity:1;"
+         offset="0"
+         id="stop2968" />
+      <stop
+         id="stop3006"
+         offset="0.5"
+         style="stop-color:#ff1d1d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6f0000;stop-opacity:1;"
+         offset="1"
+         id="stop2970" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         id="stop2848"
+         offset="0.0000000"
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2850"
+         offset="1.0000000"
+         style="stop-color:#484848;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         id="stop2368"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.21904762;"
+         offset="0.50000000"
+         id="stop2374" />
+      <stop
+         id="stop2370"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4469" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.24761905;"
+         offset="1.0000000"
+         id="stop4471" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.20784314;"
+         offset="0.0000000"
+         id="stop4456" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.67619050;"
+         offset="1.0000000"
+         id="stop4458" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         style="stop-color:#7d7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop4442" />
+      <stop
+         id="stop4448"
+         offset="0.50000000"
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#686868;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4444" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       r="15.821514"
+       fy="42.07798"
+       fx="24.306795"
+       cy="42.07798"
+       cx="24.306795"
+       id="radialGradient4548"
+       xlink:href="#linearGradient4542"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4542"
+       inkscape:collect="always">
+      <stop
+         id="stop4544"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4546"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:black;stop-opacity:0;" />
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0.5"
+         id="stop5056" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:black;stop-opacity:0;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective144"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <g
+     id="g3025"
+     transform="matrix(8.4519723,0,0,8.4519723,-511.80556,-794.54777)">
+    <path
+       style="fill:#ebebeb;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 46.420761,148.80465 2.730633,-94.206836 68.265826,-46.4207612 65.53519,15.7011402 44.37279,33.450254 27.98899,34.132913 21.84506,68.26583 -16.3838,76.45772 -57.34329,28.67165 -66.90051,-13.65317 -65.535191,-53.24734 c 0,0 -24.575698,-49.1514 -24.575698,-49.1514 z"
+       id="path3081"
+       inkscape:connector-curvature="0"
+       transform="matrix(0.11831558,0,0,0.11831558,60.554571,94.00738)" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:url(#radialGradient2996);fill-opacity:1;stroke:none"
+       id="path5874"
+       d="m 66.432104,97.488677 c -5.19584,5.646433 -3.93661,16.169033 2.81107,23.501873 6.74768,7.33285 16.42898,8.69955 21.624826,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.807486,-23.5023 -6.74768,-7.332863 -16.43256,-8.699133 -21.62841,-3.052693 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155963 5.178416,5.6275 6.066466,13.78491 1.983906,18.2215 -4.082556,4.43658 -11.590966,3.47369 -16.769386,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223653 z" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5876"
+       y="99.493881"
+       x="85.381561"
+       ry="0.76958966"
+       rx="0.76958966"
+       height="4.349854"
+       width="4.349854" />
+    <g
+       style="display:inline"
+       inkscape:label="Base"
+       id="layer1"
+       transform="matrix(0.44211157,0,0,0.44211157,47.366384,106.75303)">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
+         d="m 11.505723,5.4942766 0,37.9065924"
+         id="path15672"
+         sodipodi:nodetypes="cc" />
+    </g>
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5878"
+       y="105.2245"
+       x="60.92659"
+       ry="1.8126545"
+       rx="1.8126545"
+       height="10.245436"
+       width="10.245436" />
+    <rect
+       style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5880"
+       y="118.63705"
+       x="87.404739"
+       ry="1.0951102"
+       rx="1.0951102"
+       height="6.1897531"
+       width="6.1897531" />
+    <text
+       xml:space="preserve"
+       style="font-size:2.83957386px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="71.377632"
+       y="116.86329"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="71.377632"
+         y="116.86329"
+         style="font-size:17.03744316px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d45500;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">W</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/plot-xy-curve.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg width="24px" height="24px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#b5b5b5;}.cls-2{fill:#fff;}.cls-3{fill:#729fcf;}.cls-4{fill:#f57900;}</style></defs><rect class="cls-1" x="2" y="4" width="20" height="16" rx="1.1098"/><rect class="cls-2" x="3" y="5" width="18" height="14" rx="0.9848"/><path class="cls-3" d="M4.999,17.75a.75.75,0,0,1-.084-1.4951A40.9942,40.9942,0,0,0,18.6641,12.33a.75.75,0,1,1,.6718,1.3413A42.4794,42.4794,0,0,1,5.085,17.7451C5.0562,17.748,5.0273,17.75,4.999,17.75Z"/><path class="cls-4" d="M9.1982,13.749a8.3461,8.3461,0,0,1-4.6118-1.291.75.75,0,1,1,.8272-1.251,7.5964,7.5964,0,0,0,5.895.7915,11.2352,11.2352,0,0,0,7.043-5.3745.75.75,0,1,1,1.2968.752,12.7394,12.7394,0,0,1-7.997,6.083A10.7471,10.7471,0,0,1,9.1982,13.749Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/system-run.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_2);}</style><linearGradient id="Gradiente_sem_nome_2" x1="1.947" y1="1.16" x2="4.5818" y2="5.7237" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#82d176"/><stop offset="1" stop-color="#3fbf46"/></linearGradient></defs><path class="cls-1" d="M2,1.3225v5.355a.298.298,0,0,0,.4507.2761l4.124-2.6775a.3361.3361,0,0,0,0-.5522L2.4507,1.0464A.298.298,0,0,0,2,1.3225Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/user-home.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:#edb51f;}.cls-2{fill:#e6a928;}.cls-3{fill:url(#Gradiente_sem_nome_5);}.cls-4{fill:#b58114;}</style><linearGradient id="Gradiente_sem_nome_5" x1="1.8115" y1="2.3769" x2="6.3731" y2="6.9385" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe599"/><stop offset="1" stop-color="#ffc938"/></linearGradient></defs><path class="cls-1" d="M6.2941,2H4l-.7618-.7618A.8134.8134,0,0,0,2.6631,1H1.3765A.3765.3765,0,0,0,1,1.3765V3.918A.082.082,0,0,0,1.082,4H6.918A.082.082,0,0,0,7,3.918V2.7059A.7058.7058,0,0,0,6.2941,2Z"/><path class="cls-2" d="M1,6H7A0,0,0,0,1,7,6v.68A.32.32,0,0,1,6.68,7H1.32A.32.32,0,0,1,1,6.68V6A0,0,0,0,1,1,6Z"/><path class="cls-3" d="M6.455,2.5H4.7038a.864.864,0,0,0-.3861.0911l-.7126.3564A.4983.4983,0,0,1,3.3825,3H1.3215A.3216.3216,0,0,0,1,3.3215V6.1784A.3216.3216,0,0,0,1.3216,6.5H6.6785A.3216.3216,0,0,0,7,6.1785V3.045A.545.545,0,0,0,6.455,2.5Z"/><polygon class="cls-4" points="4 3.5 2.5 5 3 5 3 6 3.75 6 3.75 5.5 4.25 5.5 4.25 6 5 6 5 5 5.5 5 4 3.5"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/view-zoom-in.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_29);}.cls-2{fill:url(#Gradiente_sem_nome_323);}.cls-3{fill:url(#Gradiente_sem_nome_235);}.cls-4{fill:url(#Gradiente_sem_nome_41);}</style><linearGradient id="Gradiente_sem_nome_29" x1="7.558" y1="14.5001" x2="21.4418" y2="14.5001" gradientTransform="matrix(1.0403, 0.0845, 0.0011, 1.0437, -0.3725, -1.1537)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c565e"/><stop offset="1" stop-color="#4c565e"/></linearGradient><linearGradient id="Gradiente_sem_nome_323" x1="4.9993" y1="2.0706" x2="13.0007" y2="15.9294" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8f99a1"/><stop offset="1" stop-color="#74828f"/></linearGradient><linearGradient id="Gradiente_sem_nome_235" x1="5.9995" y1="3.803" x2="12.0005" y2="14.197" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d1fffc"/><stop offset="1" stop-color="#96dcff"/></linearGradient><linearGradient id="Gradiente_sem_nome_41" x1="7.2009" y1="5.8838" x2="10.7991" y2="12.1162" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#343a40"/><stop offset="1" stop-color="#343a40"/></linearGradient></defs><g id="Camada_1" data-name="Camada 1"><path class="cls-1" d="M20.4551,22.91a1.4976,1.4976,0,0,1-1.1026-.4825L7.8979,10.0176a1.5,1.5,0,0,1,2.2042-2.0352l11.4555,12.41A1.5,1.5,0,0,1,20.4551,22.91Z"/><circle class="cls-2" cx="9" cy="9" r="8"/><circle class="cls-3" cx="9" cy="9" r="6"/></g><g id="Camada_2" data-name="Camada 2"><path class="cls-4" d="M12,8H10V6A1,1,0,0,0,8,6V8H6a1,1,0,0,0,0,2H8v2a1,1,0,0,0,2,0V10h2a1,1,0,0,0,0-2Z"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/view-zoom-original.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_29);}.cls-2{fill:url(#Gradiente_sem_nome_323);}.cls-3{fill:url(#Gradiente_sem_nome_235);}.cls-4{fill:url(#Gradiente_sem_nome_41);}</style><linearGradient id="Gradiente_sem_nome_29" x1="7.558" y1="14.5001" x2="21.4418" y2="14.5001" gradientTransform="matrix(1.0403, 0.0845, 0.0011, 1.0437, -0.3725, -1.1537)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c565e"/><stop offset="1" stop-color="#4c565e"/></linearGradient><linearGradient id="Gradiente_sem_nome_323" x1="4.9993" y1="2.0706" x2="13.0007" y2="15.9294" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8f99a1"/><stop offset="1" stop-color="#74828f"/></linearGradient><linearGradient id="Gradiente_sem_nome_235" x1="5.9995" y1="3.803" x2="12.0005" y2="14.197" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d1fffc"/><stop offset="1" stop-color="#96dcff"/></linearGradient><linearGradient id="Gradiente_sem_nome_41" x1="6.9579" y1="5.4629" x2="10.9084" y2="12.3054" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#343a40"/><stop offset="1" stop-color="#343a40"/></linearGradient></defs><g id="Camada_1" data-name="Camada 1"><path class="cls-1" d="M20.4551,22.91a1.4976,1.4976,0,0,1-1.1026-.4825L7.8979,10.0176a1.5,1.5,0,0,1,2.2042-2.0352l11.4555,12.41A1.5,1.5,0,0,1,20.4551,22.91Z"/><circle class="cls-2" cx="9" cy="9" r="8"/><circle class="cls-3" cx="9" cy="9" r="6"/></g><g id="Camada_5" data-name="Camada 5"><path class="cls-4" d="M9.5972,5h-1.42a.7531.7531,0,0,0-.3366.0794L6.217,5.8915A.3925.3925,0,0,0,6,6.2426V7.469a.1947.1947,0,0,0,.2631.1823L8,7v5.5972A.4027.4027,0,0,0,8.4028,13H9.5972A.4027.4027,0,0,0,10,12.5972V5.4028A.4027.4027,0,0,0,9.5972,5Z"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/view-zoom-out.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="24px" width="24px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><defs><style>.cls-1{fill:url(#Gradiente_sem_nome_29);}.cls-2{fill:url(#Gradiente_sem_nome_323);}.cls-3{fill:url(#Gradiente_sem_nome_235);}.cls-4{fill:url(#Gradiente_sem_nome_41);}</style><linearGradient id="Gradiente_sem_nome_29" x1="7.558" y1="14.5001" x2="21.4418" y2="14.5001" gradientTransform="matrix(1.0403, 0.0845, 0.0011, 1.0437, -0.3725, -1.1537)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c565e"/><stop offset="1" stop-color="#4c565e"/></linearGradient><linearGradient id="Gradiente_sem_nome_323" x1="4.9993" y1="2.0706" x2="13.0007" y2="15.9294" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8f99a1"/><stop offset="1" stop-color="#74828f"/></linearGradient><linearGradient id="Gradiente_sem_nome_235" x1="5.9995" y1="3.803" x2="12.0005" y2="14.197" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d1fffc"/><stop offset="1" stop-color="#96dcff"/></linearGradient><linearGradient id="Gradiente_sem_nome_41" x1="7.7499" y1="6.8348" x2="10.2501" y2="11.1652" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#343a40"/><stop offset="1" stop-color="#343a40"/></linearGradient></defs><g id="Camada_1" data-name="Camada 1"><path class="cls-1" d="M20.4551,22.91a1.4976,1.4976,0,0,1-1.1026-.4825L7.8979,10.0176a1.5,1.5,0,0,1,2.2042-2.0352l11.4555,12.41A1.5,1.5,0,0,1,20.4551,22.91Z"/><circle class="cls-2" cx="9" cy="9" r="8"/><circle class="cls-3" cx="9" cy="9" r="6"/></g><g id="Camada_3" data-name="Camada 3"><rect class="cls-4" x="5" y="8" width="8" height="2" rx="1"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/widget-close-light.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="12"
+   height="12"
+   id="svg2"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
+   sodipodi:docname="widget-close-light.svg"
+   inkscape:export-filename="/home/lilge/Software/octave/dev-default/libgui/src/icons/widget-close-light.png"
+   inkscape:export-xdpi="1024"
+   inkscape:export-ydpi="1024">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1024"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="13.632822"
+     inkscape:cx="1.3521061"
+     inkscape:cy="17.927867"
+     inkscape:window-x="0"
+     inkscape:window-y="30"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g15"
+     inkscape:document-rotation="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2984"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <g
+     id="g15"
+     transform="translate(-10,-10)">
+    <path
+       d="M 20,20 12,12"
+       id="path2989"
+       style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2985"
+       d="m 20,12 -8,8" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/widget-close.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="12"
+   height="12"
+   id="svg2"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
+   sodipodi:docname="widget-close.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1024"
+     id="namedview7"
+     showgrid="true"
+     inkscape:zoom="13.632822"
+     inkscape:cx="1.3521061"
+     inkscape:cy="17.927867"
+     inkscape:window-x="0"
+     inkscape:window-y="30"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g15"
+     inkscape:document-rotation="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2984"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <g
+     id="g15"
+     transform="translate(-10,-10)">
+    <g
+       id="g10">
+      <path
+         d="M 20,20 12,12"
+         id="path2989"
+         style="fill:none;stroke:#141414;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cc" />
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#141414;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2985"
+       d="m 20,12 -8,8" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/widget-dock-light.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg width="12px" height="12px" id="Camada_3" data-name="Camada 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M10.1035,1H1.8965A.8965.8965,0,0,0,1,1.8965v8.207A.8965.8965,0,0,0,1.8965,11h8.207A.8965.8965,0,0,0,11,10.1035V1.8965A.8965.8965,0,0,0,10.1035,1ZM2.3387,10A.3386.3386,0,0,1,2,9.6613V3H5v7ZM10,9.6613A.3386.3386,0,0,1,9.6613,10H6V7h4ZM6,6V3h4V6Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/widget-dock.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg width="12px" height="12px" id="Camada_2" data-name="Camada 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12"><defs><style>.cls-1{fill:#1a1a1a;}</style></defs><path class="cls-1" d="M10.1035,1H1.8965A.8965.8965,0,0,0,1,1.8965v8.207A.8965.8965,0,0,0,1.8965,11h8.207A.8965.8965,0,0,0,11,10.1035V1.8965A.8965.8965,0,0,0,10.1035,1ZM2.3387,10A.3386.3386,0,0,1,2,9.6613V3H5v7ZM10,9.6613A.3386.3386,0,0,1,9.6613,10H6V7h4ZM6,6V3h4V6Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/widget-undock-light.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg  height="12px" width="12px" id="Camada_2" data-name="Camada 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 12 12"><defs><style>.cls-1{fill:none;}.cls-2{fill:#fff;}.cls-3{clip-path:url(#clip-path);}</style><clipPath id="clip-path"><polygon class="cls-1" points="8 1 4 1 4 4 8 4 8 8 11 8 11 4 11 1 8 1"/></clipPath></defs><path class="cls-2" d="M6.7174,10H2.2826A.2826.2826,0,0,1,2,9.7174V6H7V9.7174A.2826.2826,0,0,1,6.7174,10ZM8,10.2826V4.7174A.7174.7174,0,0,0,7.2826,4H1.7174A.7174.7174,0,0,0,1,4.7174v5.5652A.7174.7174,0,0,0,1.7174,11H7.2826A.7174.7174,0,0,0,8,10.2826Z"/><g class="cls-3"><path class="cls-2" d="M9.7174,7H5.2826A.2826.2826,0,0,1,5,6.7174V3h5V6.7174A.2826.2826,0,0,1,9.7174,7ZM11,7.2826V1.7174A.7174.7174,0,0,0,10.2826,1H4.7174A.7174.7174,0,0,0,4,1.7174V7.2826A.7174.7174,0,0,0,4.7174,8h5.5652A.7174.7174,0,0,0,11,7.2826Z"/></g></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/widget-undock.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+<svg height="12px" width="12px" id="Camada_2" data-name="Camada 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 12 12"><defs><style>.cls-1{fill:none;}.cls-2{fill:#1a1a1a;}.cls-3{clip-path:url(#clip-path);}</style><clipPath id="clip-path"><polygon class="cls-1" points="8 1 4 1 4 4 8 4 8 8 11 8 11 4 11 1 8 1"/></clipPath></defs><path class="cls-2" d="M6.7174,10H2.2826A.2826.2826,0,0,1,2,9.7174V6H7V9.7174A.2826.2826,0,0,1,6.7174,10ZM8,10.2826V4.7174A.7174.7174,0,0,0,7.2826,4H1.7174A.7174.7174,0,0,0,1,4.7174v5.5652A.7174.7174,0,0,0,1.7174,11H7.2826A.7174.7174,0,0,0,8,10.2826Z"/><g class="cls-3"><path class="cls-2" d="M9.7174,7H5.2826A.2826.2826,0,0,1,5,6.7174V3h5V6.7174A.2826.2826,0,0,1,9.7174,7ZM11,7.2826V1.7174A.7174.7174,0,0,0,10.2826,1H4.7174A.7174.7174,0,0,0,4,1.7174V7.2826A.7174.7174,0,0,0,4.7174,8h5.5652A.7174.7174,0,0,0,11,7.2826Z"/></g></svg>
\ No newline at end of file
Binary file libgui/src/icons/plot-xy-curve.png has changed
--- a/libgui/src/icons/plot-xy-curve.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1214 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.0"
-   width="48"
-   height="48"
-   id="svg1307">
-  <defs
-     id="defs1309">
-    <linearGradient
-       id="linearGradient4391">
-      <stop
-         offset="0"
-         style="stop-color:#b3cce5;stop-opacity:1"
-         id="stop4393" />
-      <stop
-         offset="1"
-         style="stop-color:#f6f7f5;stop-opacity:1"
-         id="stop4395" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4348">
-      <stop
-         offset="0"
-         style="stop-color:#ff7f2a;stop-opacity:1"
-         id="stop4350" />
-      <stop
-         offset="1"
-         style="stop-color:#c4a000;stop-opacity:0"
-         id="stop4352" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4298">
-      <stop
-         offset="0"
-         style="stop-color:#e0eaf4;stop-opacity:1"
-         id="stop4300" />
-      <stop
-         offset="1"
-         style="stop-color:#f5f5f4;stop-opacity:1"
-         id="stop4302" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2817">
-      <stop
-         id="stop2819"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2821"
-         style="stop-color:#ffffff;stop-opacity:0.48453608"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2697">
-      <stop
-         id="stop2699"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2701"
-         style="stop-color:#3d556f;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2679">
-      <stop
-         id="stop2681"
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2683"
-         style="stop-color:#ccd0c7;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3081">
-      <stop
-         id="stop3083"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3085"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2112"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2122"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2124"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2137"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2139"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2725"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2727"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2729"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2731"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2733"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2745"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2747"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2749"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2751"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2753"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2791"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2793"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2795"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12,0)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2797"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(133,70.99999)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2800"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2803"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2806"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-145.0004,-97.0943)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2809"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2823"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2825"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-26.09426)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2831"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient2858"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient2860"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient2862"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient2864"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-4e-4,-0.09426)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3421"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3424"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3427"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3430"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3066"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3068"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3070"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3072"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3076"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3079"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3082"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3085"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3862"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3864"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3866"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3868"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3872"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3875"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3878"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3881"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3930"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3932"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3934"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3936"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3938"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3940"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3944"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
-    <radialGradient
-       cx="15.987216"
-       cy="1.5350308"
-       r="17.171415"
-       fx="15.987216"
-       fy="1.5350308"
-       id="radialGradient1471"
-       xlink:href="#linearGradient8650"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-2.046729,-1.55761,0,44.11559,66.93275)" />
-    <radialGradient
-       cx="35.292667"
-       cy="20.494493"
-       r="16.9562"
-       fx="35.292667"
-       fy="20.494493"
-       id="radialGradient1469"
-       xlink:href="#linearGradient1442"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-0.843022,1.020168,0,0.606436,42.58614)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient1444"
-       xlink:href="#linearGradient8662-5"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8650">
-      <stop
-         id="stop8652"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8654"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662-5">
-      <stop
-         id="stop8664-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666-5"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1442">
-      <stop
-         id="stop1444"
-         style="stop-color:#73d216;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop1446"
-         style="stop-color:#4e9a06;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient2332"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-25.12402,-17.82636)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient2322"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient2314"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient1764"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,46.1744,54.10111)" />
-    <linearGradient
-       id="linearGradient2187">
-      <stop
-         id="stop2189"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2191"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient8668"
-       xlink:href="#linearGradient8662-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8662-0">
-      <stop
-         id="stop8664-7"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666-7"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2308">
-      <stop
-         id="stop2310"
-         style="stop-color:#edd400;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2312"
-         style="stop-color:#edd400;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         id="stop2318"
-         style="stop-color:#c4a000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2320"
-         style="stop-color:#c4a000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2326">
-      <stop
-         id="stop2328"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2330"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient4285"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient4288"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4291"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4293"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4301"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient4303"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-52.912011,-6.2461712)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient4305"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient4307"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient3152"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.624337"
-       y2="12.583769"
-       id="linearGradient3155"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3158"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3160"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3932"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3935"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3938"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="172.34619"
-       y1="69.425537"
-       x2="180.32707"
-       y2="114.32904"
-       id="linearGradient3941"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3979"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3981"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3983"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3985"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <linearGradient
-       x1="174.83363"
-       y1="84.263489"
-       x2="174.74524"
-       y2="105.49083"
-       id="linearGradient3987"
-       xlink:href="#linearGradient2817"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
-    <radialGradient
-       cx="169.77171"
-       cy="100.20107"
-       r="11"
-       fx="169.77171"
-       fy="100.20107"
-       id="radialGradient3989"
-       xlink:href="#linearGradient2679"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
-    <linearGradient
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849"
-       id="linearGradient3991"
-       xlink:href="#linearGradient2697"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
-    <linearGradient
-       x1="15.089521"
-       y1="15.291994"
-       x2="14"
-       y2="52.510574"
-       id="linearGradient3993"
-       xlink:href="#linearGradient3081"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient3131"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.153309"
-       y2="11.735918"
-       id="linearGradient3134"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3137"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3139"
-       xlink:href="#linearGradient2316"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3146"
-       xlink:href="#linearGradient2308"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.81454229,-0.81454229,0,1.230254,20.368874)" />
-    <linearGradient
-       x1="26.5"
-       y1="34.25"
-       x2="26.25"
-       y2="43.571831"
-       id="linearGradient3148"
-       xlink:href="#linearGradient4348"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,0.81454229,-0.81454229,0,0.3606887,21.39061)" />
-    <linearGradient
-       x1="17.060806"
-       y1="11.39502"
-       x2="12.153309"
-       y2="11.735918"
-       id="linearGradient3150"
-       xlink:href="#linearGradient2187"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.95458329,0,0,-0.95458329,-42.837389,57.979876)" />
-    <radialGradient
-       cx="15.09403"
-       cy="13.282721"
-       r="10.16466"
-       fx="15.09403"
-       fy="13.282721"
-       id="radialGradient3153"
-       xlink:href="#linearGradient2326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0,2.0331228,-1.8740085,0,15.750578,-0.0957023)" />
-    <radialGradient
-       cx="143.31842"
-       cy="108.89388"
-       r="11"
-       fx="143.31842"
-       fy="108.89388"
-       id="radialGradient3938-5"
-       xlink:href="#linearGradient4391"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.09090829,-2.0909091,2.5430488,-0.11063222,-242.64984,363.89573)" />
-    <linearGradient
-       xlink:href="#linearGradient2697"
-       id="linearGradient4387"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
-       x1="169"
-       y1="110.33805"
-       x2="169"
-       y2="93.204849" />
-    <linearGradient
-       xlink:href="#linearGradient3081"
-       id="linearGradient4389"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
-       x1="24.674307"
-       y1="44.50301"
-       x2="24.674307"
-       y2="98.890182" />
-  </defs>
-  <metadata
-     id="metadata1312">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Lapo Calamandrei</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>media</rdf:li>
-            <rdf:li>stop</rdf:li>
-            <rdf:li>playback</rdf:li>
-            <rdf:li>video</rdf:li>
-            <rdf:li>music</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(0.9087605,1.9358855)"
-     id="g3948">
-    <path
-       d="m 1.0912395,4.0641145 0,37.0000005 43.9999995,0 0,-37.0000005 z"
-       id="path2815-2"
-       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.15;fill:none;stroke:url(#linearGradient3979);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
-    <path
-       d="m 1.517632,4.3927965 -0.4263925,36.6713185 43.9999995,0 0,-37.0000005 z"
-       id="path2827-7"
-       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3938-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" />
-    <path
-       d="m 1.0912395,4.0641145 0,37.0000005 43.9999995,0 0,-37.0000005 z"
-       id="path2762-0"
-       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient4387);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
-    <path
-       d="m 2.3764769,4.9627829 -0.2852374,35.1013321 41.9999995,0 0,-35.0000005 z"
-       id="path2811-9"
-       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient4389);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
-  </g>
-  <path
-     d="m 42,25 c 0,0 -10.037668,6.423173 -15,8 -9.617578,3.056074 -10,3 -20,5"
-     id="path4307"
-     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
-  <path
-     style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#f57900;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
-     id="path1432"
-     d="m 41,11 c 0,0 -5.646156,6.976428 -9.869568,10.021736 C 28.6595,22.803411 29,23 23.787297,25.776393 20.640255,27.452573 14.353452,28.017761 12.739128,27.17391 7.9565217,24.673913 7,23 7,23" />
-</svg>
Binary file libgui/src/icons/preferences-system.png has changed
--- a/libgui/src/icons/preferences-system.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,398 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="90.000000"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   width="48px"
-   height="48px"
-   id="svg11300"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/categories"
-   sodipodi:docname="preferences-system.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective60" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2250">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2252" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2254" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2265">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2267" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2269" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2257">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2259" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2261" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3087">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop3089" />
-      <stop
-         id="stop3095"
-         offset="0"
-         style="stop-color:#9fbce1;stop-opacity:1;" />
-      <stop
-         style="stop-color:#6b95ca;stop-opacity:1;"
-         offset="0"
-         id="stop2242" />
-      <stop
-         id="stop2244"
-         offset="0.75"
-         style="stop-color:#3d6aa5;stop-opacity:1;" />
-      <stop
-         style="stop-color:#386eb4;stop-opacity:1;"
-         offset="1"
-         id="stop3091" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3077">
-      <stop
-         style="stop-color:#98a0a9;stop-opacity:1;"
-         offset="0"
-         id="stop3079" />
-      <stop
-         style="stop-color:#c3d0dd;stop-opacity:1;"
-         offset="1"
-         id="stop3081" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3061">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3063" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop3065" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3049">
-      <stop
-         style="stop-color:#b6b6b6;stop-opacity:1;"
-         offset="0"
-         id="stop3051" />
-      <stop
-         id="stop2262"
-         offset="0.5"
-         style="stop-color:#f2f2f2;stop-opacity:1;" />
-      <stop
-         style="stop-color:#fafafa;stop-opacity:1;"
-         offset="0.67612958"
-         id="stop2264" />
-      <stop
-         id="stop2268"
-         offset="0.84051722"
-         style="stop-color:#d8d8d8;stop-opacity:1;" />
-      <stop
-         id="stop2266"
-         offset="0.875"
-         style="stop-color:#f2f2f2;stop-opacity:1;" />
-      <stop
-         style="stop-color:#dbdbdb;stop-opacity:1;"
-         offset="1"
-         id="stop3053" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3041">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3043" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop3045" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3041"
-       id="radialGradient3047"
-       cx="24.8125"
-       cy="39.125"
-       fx="24.8125"
-       fy="39.125"
-       r="17.6875"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.374558,7.194333e-15,24.47041)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3049"
-       id="linearGradient3055"
-       x1="19.648342"
-       y1="42.253601"
-       x2="20.631224"
-       y2="6.7758031"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.878270,0.000000,0.000000,0.878270,2.536988,4.967681)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3061"
-       id="linearGradient3067"
-       x1="50.152931"
-       y1="-3.6324477"
-       x2="25.291086"
-       y2="-4.3002653"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.878270,-1.375944e-15,1.375944e-15,0.878270,5.328299,1.650243)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3077"
-       id="linearGradient3083"
-       x1="38.227654"
-       y1="13.602527"
-       x2="37.53537"
-       y2="6.6285896"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.878270,0.000000,0.000000,0.878270,2.847503,5.588712)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3087"
-       id="linearGradient3093"
-       x1="9.7503242"
-       y1="32.28376"
-       x2="16.915297"
-       y2="39.443218"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.878270,0.000000,0.000000,0.878270,2.536988,4.967681)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2257"
-       id="linearGradient2263"
-       x1="12.004697"
-       y1="35.688461"
-       x2="10.650805"
-       y2="33.194965"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.007254,-2.636526e-2,2.636526e-2,1.007254,1.593411,7.919100e-2)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2265"
-       id="linearGradient2271"
-       x1="14.017542"
-       y1="36.942543"
-       x2="15.415793"
-       y2="38.268368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.878099,-1.732370e-2,1.732370e-2,0.878099,2.163687,4.067899)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2250"
-       id="linearGradient2256"
-       x1="31.177404"
-       y1="19.821514"
-       x2="40.859177"
-       y2="9.6568537"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3041"
-       id="radialGradient2260"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.374558,7.272829e-15,24.47041)"
-       cx="24.8125"
-       cy="39.125"
-       fx="24.8125"
-       fy="39.125"
-       r="17.6875" />
-  </defs>
-  <sodipodi:namedview
-     stroke="#204a87"
-     fill="#3465a4"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.25490196"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4"
-     inkscape:cx="19.425317"
-     inkscape:cy="26.37487"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="1034"
-     inkscape:window-height="818"
-     inkscape:window-x="400"
-     inkscape:window-y="30" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Preferences System</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>preferences</rdf:li>
-            <rdf:li>settings</rdf:li>
-            <rdf:li>control panel</rdf:li>
-            <rdf:li>tweaks</rdf:li>
-            <rdf:li>system</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       transform="matrix(0.751118,0.000000,0.000000,0.578703,17.04087,19.36341)"
-       d="M 42.5 39.125 A 17.6875 6.625 0 1 1  7.125,39.125 A 17.6875 6.625 0 1 1  42.5 39.125 z"
-       sodipodi:ry="6.625"
-       sodipodi:rx="17.6875"
-       sodipodi:cy="39.125"
-       sodipodi:cx="24.8125"
-       id="path2258"
-       style="opacity:0.19886367;color:#000000;fill:url(#radialGradient2260);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.3125;color:#000000;fill:url(#radialGradient3047);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path3039"
-       sodipodi:cx="24.8125"
-       sodipodi:cy="39.125"
-       sodipodi:rx="17.6875"
-       sodipodi:ry="6.625"
-       d="M 42.5 39.125 A 17.6875 6.625 0 1 1  7.125,39.125 A 17.6875 6.625 0 1 1  42.5 39.125 z"
-       transform="matrix(0.836071,0.000000,0.000000,0.685436,-7.959607,15.71781)" />
-    <path
-       style="opacity:1;color:#000000;fill:url(#linearGradient3055);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 17.906713,21.215676 L 36.899302,40.6474 C 37.667788,41.52567 40.102812,42.204461 41.729787,40.6474 C 43.300913,39.143787 42.937408,37.024536 41.400436,35.487563 L 23.176333,15.946056 C 25.426333,9.696056 20.872444,4.446488 14.997444,5.571488 L 13.73493,6.7242174 L 17.687145,10.456865 L 17.906713,13.750381 L 14.955871,16.443984 L 11.429472,16.05584 L 7.8066086,12.652544 C 7.8066086,12.652544 6.5364873,13.907448 6.5364873,13.907448 C 5.9457238,19.548765 11.844213,24.590676 17.906713,21.215676 z "
-       id="path2140"
-       sodipodi:nodetypes="cczcccccccccsc" />
-    <path
-       sodipodi:nodetypes="cczccccccccccc"
-       id="path3057"
-       d="M 18.117385,19.9401 L 37.320267,39.967712 C 37.915174,40.647605 39.800194,41.173077 41.059681,39.967712 C 42.275934,38.803723 41.994534,37.163152 40.804721,35.973338 L 22.313189,16.352183 C 23.813189,9.852183 20.454401,6.3475455 15.454401,6.4725455 L 15.18427,6.7459223 L 18.787193,9.982189 L 18.917359,14.163983 L 15.303442,17.462466 L 11.061136,17.004257 L 7.8845536,14.012776 L 7.5319165,14.442835 C 7.2194165,20.411585 14.023635,23.1276 18.117385,19.9401 z "
-       style="opacity:0.42613639;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999917;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <rect
-       style="opacity:0.17045456;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3067);stroke-width:0.9999972;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="rect3059"
-       width="23.268276"
-       height="2.0554912"
-       x="28.185335"
-       y="-2.6184492"
-       rx="0.88388073"
-       ry="0.88388073"
-       transform="matrix(0.697938,0.716158,-0.716158,0.697938,0.000000,0.000000)" />
-    <path
-       style="opacity:1;color:#000000;fill:url(#linearGradient3083);fill-opacity:1;fill-rule:nonzero;stroke:#878f9d;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 22.498794,30.12538 C 23.332335,29.410917 35.782628,16.676871 35.782628,16.676871 L 38.856573,16.457303 L 43.687058,9.7604906 L 39.662731,6.1752987 L 33.405057,11.554705 L 33.405057,14.628651 L 20.670142,27.857593 C 20.066332,28.461403 21.730308,30.784082 22.498794,30.12538 z "
-       id="path2144"
-       sodipodi:nodetypes="ccccccccc" />
-    <path
-       sodipodi:nodetypes="ccccccccc"
-       id="path3085"
-       d="M 22.401987,29.085455 C 23.04876,28.531078 35.426388,15.855648 35.426388,15.855648 L 38.354971,15.607649 L 42.568887,9.945584 L 39.679156,7.3965946 L 34.202578,12.114067 L 34.357836,14.965022 L 21.681731,28.257345 C 21.213213,28.725863 21.805692,29.596565 22.401987,29.085455 z "
-       style="opacity:0.53977272;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2256);stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="color:#000000;fill:url(#linearGradient3093);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
-       d="M 8.4653111,43.611561 C 9.7818986,45.07679 13.438996,45.739726 15.060755,42.901647 C 15.767862,41.664211 17.154698,38.198845 23.341883,32.630379 C 24.381029,31.696208 25.481792,29.559241 24.54863,28.406512 L 22.133387,25.991269 C 21.145334,24.893432 18.398973,25.40552 17.272212,26.942145 C 13.913455,31.538339 8.4261393,35.197025 7.1887023,35.638967 C 4.8207828,36.484652 5.0872917,39.975116 6.6538792,41.635454 L 8.4653111,43.611561 z "
-       id="path2142"
-       sodipodi:nodetypes="ccccccscc" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.13860166;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path2146"
-       sodipodi:cx="41.875"
-       sodipodi:cy="37.5"
-       sodipodi:rx="1.375"
-       sodipodi:ry="1.375"
-       d="M 43.25 37.5 A 1.375 1.375 0 1 1  40.5,37.5 A 1.375 1.375 0 1 1  43.25 37.5 z"
-       transform="matrix(0.878270,0.000000,0.000000,0.878270,2.427204,5.077464)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.60227272;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path3101"
-       sodipodi:cx="19.003494"
-       sodipodi:cy="28.20101"
-       sodipodi:rx="1.767767"
-       sodipodi:ry="1.767767"
-       d="M 20.771261 28.20101 A 1.767767 1.767767 0 1 1  17.235727,28.20101 A 1.767767 1.767767 0 1 1  20.771261 28.20101 z"
-       transform="matrix(0.570876,0.000000,0.000000,0.570876,9.154848,11.25111)" />
-    <path
-       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2263);stroke-width:2.29450917;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 18.678905,29.624807 C 18.678905,29.624807 11.509014,36.92442 8.1502573,38.161857"
-       id="path3103"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="csccccscc"
-       id="path2270"
-       d="M 8.8060013,42.48669 C 10.247267,44.232307 13.405535,44.647919 14.397161,42.116101 C 15.078468,40.376589 17.730783,36.450314 22.594745,32.072748 C 23.411654,31.338363 24.277003,29.658419 23.543411,28.752218 L 21.644704,26.853511 C 20.867961,25.990463 18.708951,26.393033 17.823164,27.601028 C 15.182728,31.214257 9.3398194,35.940582 7.9274145,36.406654 C 5.7406198,37.128264 6.1504221,39.627953 7.3819713,40.933203 L 8.8060013,42.48669 z "
-       style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999946;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;opacity:0.19886364" />
-    <path
-       style="opacity:0.27840911;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2271);stroke-width:2.29450917;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 20.824602,31.261024 C 20.824602,31.261024 13.501839,37.878429 11.910849,42.121069"
-       id="path2247"
-       sodipodi:nodetypes="cc" />
-  </g>
-</svg>
Binary file libgui/src/icons/right_side.png has changed
Binary file libgui/src/icons/system-run.png has changed
--- a/libgui/src/icons/system-run.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1334 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="48"
-   height="48"
-   id="svg53383"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="system-run.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview4628"
-     showgrid="false"
-     inkscape:zoom="8.022068"
-     inkscape:cx="24"
-     inkscape:cy="24"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg53383" />
-  <defs
-     id="defs3">
-    <linearGradient
-       id="linearGradient3264">
-      <stop
-         id="stop3266"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3276"
-         style="stop-color:#f8f8f8;stop-opacity:1"
-         offset="0.25" />
-      <stop
-         id="stop3272"
-         style="stop-color:#e2e2e2;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop3274"
-         style="stop-color:#b0b0b0;stop-opacity:1"
-         offset="0.75" />
-      <stop
-         id="stop3268"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="14.462892"
-       y1="12.284524"
-       x2="34.534348"
-       y2="39.684914"
-       id="linearGradient3281"
-       xlink:href="#linearGradient3264"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)" />
-    <linearGradient
-       id="linearGradient2300">
-      <stop
-         id="stop2302"
-         style="stop-color:#000000;stop-opacity:0.32673267"
-         offset="0" />
-      <stop
-         id="stop2304"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="99.777298"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311"
-       id="aigrd1"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         id="stop53300"
-         style="stop-color:#184375;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop53302"
-         style="stop-color:#c8bddc;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="99.777298"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311"
-       id="linearGradient53551"
-       xlink:href="#aigrd1"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.200685,0,0,0.200685,-0.585758,-1.050787)" />
-    <radialGradient
-       cx="14.287618"
-       cy="68.872971"
-       r="11.68987"
-       fx="14.287618"
-       fy="72.568001"
-       id="radialGradient2308"
-       xlink:href="#linearGradient2300"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.399258,-2.234445e-7,8.196178e-8,0.513264,4.365074,4.839285)" />
-    <linearGradient
-       x1="14.462892"
-       y1="12.284524"
-       x2="34.534348"
-       y2="39.684914"
-       id="linearGradient3760"
-       xlink:href="#linearGradient3264"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)" />
-    <linearGradient
-       x1="99.777298"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311"
-       id="linearGradient3773"
-       xlink:href="#aigrd1"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.200685,0,0,0.200685,-54.33576,-1.050787)" />
-    <linearGradient
-       id="linearGradient3340">
-      <stop
-         id="stop3342"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344"
-         style="stop-color:#ffffff;stop-opacity:0.62886596"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5075">
-      <stop
-         id="stop5077"
-         style="stop-color:#adb0a8;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop5079"
-         style="stop-color:#464744;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584">
-      <stop
-         id="stop2586"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2684">
-      <stop
-         id="stop2686"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2688"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3111"
-       xlink:href="#linearGradient3340-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3109"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3107"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3105"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3103"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4019"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4017"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient4015"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4013"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4011"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient4009"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4007"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3998"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3996"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3993"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3989"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3987"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3983"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3980"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3875"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3873"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3871"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3869"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3867"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3865"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3863"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3994"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3992"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3990"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3988"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3986"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3984"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3982"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3973"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3971"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3968"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3965"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3963"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3960"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3957"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3954"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3952"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3950"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3948"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3946"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3944"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3942"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3940"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3858"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3856"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3854"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3852"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3850"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3848"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3846"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3844"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3058"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3054"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3052"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3050"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3047"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3044"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3040"
-       xlink:href="#linearGradient3340-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
-    <linearGradient
-       id="linearGradient2684-4">
-      <stop
-         id="stop2686-6"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2688-6"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2584-3">
-      <stop
-         id="stop2586-5"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2588-7"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient5075-2">
-      <stop
-         id="stop5077-8"
-         style="stop-color:#a1a49b;stop-opacity:1;"
-         offset="0" />
-      <stop
-         id="stop5079-6"
-         style="stop-color:#d5be00;stop-opacity:1;"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2691-4">
-      <stop
-         id="stop2693-2"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2695-6"
-         style="stop-color:#d3d7cf;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3340-2">
-      <stop
-         id="stop3342-1"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344-3"
-         style="stop-color:#ffffff;stop-opacity:0.62886596"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient2306-0"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-45.00042,-71.09425)" />
-    <radialGradient
-       cx="107.5884"
-       cy="83.990814"
-       r="12.551644"
-       fx="107.5884"
-       fy="83.990814"
-       id="radialGradient2314-7"
-       xlink:href="#linearGradient2691-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient2690-7"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient3845"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <linearGradient
-       x1="21.702389"
-       y1="8.9115314"
-       x2="21.816015"
-       y2="35.546108"
-       id="linearGradient3843"
-       xlink:href="#linearGradient3837"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="22.5"
-       cy="28.116049"
-       r="14.537862"
-       fx="22.5"
-       fy="28.116049"
-       id="radialGradient2263"
-       xlink:href="#linearGradient2257"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient1368"
-       xlink:href="#linearGradient3340-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient2228"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop8666"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3340-3">
-      <stop
-         id="stop3342-4"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3344-6"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2257">
-      <stop
-         id="stop2259"
-         style="stop-color:#ef2929;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop2261"
-         style="stop-color:#cc0000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3837">
-      <stop
-         id="stop3839"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3841"
-         style="stop-color:#ffffff;stop-opacity:0.78350514"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3838">
-      <stop
-         id="stop3840"
-         style="stop-color:#ffe71d;stop-opacity:1;"
-         offset="0" />
-      <stop
-         id="stop3842"
-         style="stop-color:#fffbdc;stop-opacity:1;"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3362"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
-    <radialGradient
-       cx="21.929186"
-       cy="-3.2182934"
-       r="13"
-       fx="21.929186"
-       fy="-3.2182934"
-       id="radialGradient3395"
-       xlink:href="#linearGradient3340-3"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(4.1094029,0,0,2.3370305,-28.86026,-28.444851)" />
-    <radialGradient
-       cx="24.837126"
-       cy="36.421127"
-       r="15.644737"
-       fx="24.837126"
-       fy="36.421127"
-       id="radialGradient3402"
-       xlink:href="#linearGradient8662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2922213,0,0,0.34100651,38.760643,-13.207928)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3410"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient3412"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3414"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3416"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient3418"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3420"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient3422"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4212"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4215"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4218"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)" />
-    <linearGradient
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95"
-       id="linearGradient4220"
-       xlink:href="#linearGradient5075-2"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.0056752,-34.254145,-72.182713)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4223"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)" />
-    <radialGradient
-       cx="25.03499"
-       cy="24.25"
-       r="14.034989"
-       fx="25.03499"
-       fy="24.25"
-       id="radialGradient4226"
-       xlink:href="#linearGradient3838"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)" />
-    <linearGradient
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729"
-       id="linearGradient4228"
-       xlink:href="#linearGradient2684-4"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.99423209,0,0,1.1345837,-42.179159,-84.518165)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4631"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4634"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4637"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5075-2"
-       id="linearGradient4639"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.0056752,-34.254145,-72.182713)"
-       x1="71.288956"
-       y1="124.11652"
-       x2="70.826942"
-       y2="95" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4642"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3838"
-       id="radialGradient4645"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.88127002,0,0,1.1643915,5.4033759,-4.5338561)"
-       cx="25.03499"
-       cy="24.25"
-       fx="25.03499"
-       fy="24.25"
-       r="14.034989" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2684-4"
-       id="linearGradient4647"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.99423209,0,0,1.1345837,-42.179159,-84.518165)"
-       x1="70.913956"
-       y1="101.74152"
-       x2="70.951942"
-       y2="88.923729" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#aigrd1"
-       id="linearGradient4655"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.200685,0,0,0.200685,-54.33576,-1.050787)"
-       x1="99.777298"
-       y1="15.4238"
-       x2="153.0005"
-       y2="248.6311" />
-  </defs>
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz/</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>system</rdf:li>
-            <rdf:li>applications</rdf:li>
-            <rdf:li>group</rdf:li>
-            <rdf:li>category</rdf:li>
-            <rdf:li>admin</rdf:li>
-            <rdf:li>root</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer2">
-    <path
-       d="m 44.285715,38.714287 a 19.928572,9.837245 0 1 1 -39.8571433,0 19.928572,9.837245 0 1 1 39.8571433,0 z"
-       transform="matrix(1.18638,0,0,1.18638,-4.539687,-7.794678)"
-       id="path1538"
-       style="color:#000000;fill:url(#radialGradient2308);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.50000042;marker:none;visibility:visible;display:inline;overflow:visible" />
-  </g>
-  <path
-     inkscape:connector-curvature="0"
-     style="color:#000000;fill:url(#linearGradient4655);fill-opacity:1;fill-rule:nonzero;stroke:#3f4561;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path3243"
-     d="M 22.699525,0.94746963 C 22.22635,0.97984519 21.766437,1.0531317 21.301673,1.1063165 l -0.03177,0 -1.111928,6.0679506 C 18.345621,7.5870046 16.640562,8.2874574 15.106644,9.2392765 L 10.118853,5.6493371 C 8.770521,6.6961412 7.543552,7.9170049 6.465374,9.2392765 l 3.462862,5.0513305 c -1.051422,1.606783 -1.842083,3.441487 -2.287395,5.369025 -7.6e-5,0.0091 -6.2e-5,0.03018 0,0.03177 l -6.036181,0.95308 c -0.110357,0.901369 -0.158847,1.832904 -0.158847,2.763936 0,0.761753 0.021033,1.513329 0.095308,2.255625 l 6.036182,1.080159 c 0.429297,2.096161 1.244809,4.053785 2.382703,5.782026 l -3.58994,4.924254 c 1.028135,1.276384 2.215105,2.43848 3.494632,3.462861 l 5.0831,-3.494631 c 1.776475,1.133244 3.759545,1.927892 5.909103,2.319165 l 0.953082,6.004411 c 0.677254,0.06165 1.371775,0.06354 2.065009,0.06354 0.978685,-10e-7 1.91352,-0.03709 2.859244,-0.158847 l 1.143697,-6.131489 c 2.040927,-0.507904 3.958179,-1.388998 5.62318,-2.573319 l 4.892483,3.55817 c 1.26877,-1.079445 2.428987,-2.320188 3.431093,-3.653479 l -3.55817,-5.146638 c 0.963606,-1.664197 1.631298,-3.500366 1.969701,-5.464333 l 6.004412,-0.953081 c 0.05266,-0.62659 0.06354,-1.234265 0.06354,-1.874393 0,-1.1124 -0.129295,-2.203101 -0.285924,-3.272246 l -6.09972,-1.111928 c -0.478008,-1.76508 -1.262312,-3.41188 -2.255625,-4.892484 L 41.25284,9.2075071 C 40.140075,7.8466524 38.870718,6.5895264 37.472284,5.5222596 l -5.178408,3.55817 C 30.805549,8.200202 29.203897,7.5248159 27.464931,7.1424978 L 26.51185,1.1063165 C 25.644369,1.0042729 24.769749,0.94746963 23.874992,0.94746963 c -0.241826,1e-8 -0.490706,-0.007609 -0.730696,0 -0.116995,0.003709 -0.232771,-0.006806 -0.349463,0 -0.0316,0.001843 -0.06376,-0.002158 -0.09531,0 z M 23.525529,16.387386 c 0.116063,-0.0059 0.231944,0 0.349463,0 3.760606,0 6.830416,3.06981 6.830416,6.830416 1e-6,3.760605 -3.069811,6.798646 -6.830416,6.798646 -3.760605,1e-6 -6.798646,-3.038041 -6.798646,-6.798646 10e-7,-3.643086 2.851212,-6.647839 6.449183,-6.830416 z" />
-  <path
-     inkscape:connector-curvature="0"
-     style="opacity:0.64772728;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.99999899;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path3283"
-     d="m 31.727052,23.203357 a 7.8480112,7.8480112 0 0 1 -15.696022,0 7.8480112,7.8480112 0 1 1 15.696022,0 z" />
-  <path
-     inkscape:connector-curvature="0"
-     style="opacity:0.34659089;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.99999923;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path3285"
-     d="m 21.995808,2.1484671 -0.892784,5.8750572 c -1.69877,0.3868703 -4.823582,1.5700792 -6.261367,2.4622467 L 10.091975,6.9406268 C 8.828145,7.9218257 8.741474,7.9883656 7.730867,9.2277688 l 3.434196,5.0932192 c -0.985526,1.506083 -2.169267,4.189994 -2.594285,6.107942 0,0 -6.01779,1.014425 -6.01779,1.014425 -0.103441,0.844879 -0.053728,2.653173 0.015892,3.348948 l 5.748217,1.035517 c 0.402393,1.96479 1.908227,5.127412 2.974807,6.747341 l -3.635002,4.802558 c 0.963699,1.196391 1.156572,1.30587 2.355908,2.266051 l 4.860631,-3.561037 c 1.66514,1.062221 4.970289,2.354376 6.98513,2.721127 l 0.797728,5.801092 c 0.63481,0.05778 2.38853,0.219875 3.274984,0.105749 l 0.892783,-6.03888 c 1.913018,-0.476072 5.218473,-1.832925 6.779125,-2.943023 l 4.855433,3.50816 c 1.189254,-1.011792 1.199909,-1.164249 2.139211,-2.41398 l -3.59802,-5.114311 c 0.903215,-1.5599 2.071087,-4.610599 2.388282,-6.45148 l 5.890949,-0.977443 c 0.04935,-0.58732 0.05176,-2.225166 -0.09506,-3.227305 L 39.182092,20.016922 C 38.73404,18.362463 37.196418,15.381153 36.265359,13.993342 L 40.080075,9.1907857 C 39.037052,7.915218 38.64924,7.7402002 37.338448,6.7398212 L 32.313994,10.337839 C 30.918941,9.5127782 28.137095,8.2550417 26.507114,7.8966842 L 25.619528,2.1484671 c -0.813114,-0.095648 -3.15904,-0.053175 -3.62372,0 z" />
-  <path
-     inkscape:connector-curvature="0"
-     style="opacity:0.5;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path3767"
-     d="M 10.102903,6.2970655 C 8.7545689,7.3438694 8.1656464,7.9719226 7.0874684,9.2941942 l 3.4024586,4.9649588 c -1.0514198,1.598602 -2.1582995,4.166961 -2.3475411,5.728553 0,0 -6.0625,1.044194 -6.0625,1.044194 C 2.0109129,21.595256 1.90625,22.884803 1.90625,22.884803 l 0.1767767,1.5625 c 0.42773,0.08833 0.840155,0.170515 1.28125,0.21875 l 0.5,-1.53125 c 0.344041,0.02848 0.679653,0.0625 1.03125,0.0625 0.351208,0 0.718458,-0.03383 1.0625,-0.0625 l 0.46875,1.53125 c 0.441288,-0.04824 0.884772,-0.130415 1.3125,-0.21875 l 0,-1.5625 c 0.685757,-0.159623 1.332001,-0.387758 1.96875,-0.65625 l 0.9375003,1.28125 c 0.402351,-0.182094 0.775596,-0.375819 1.15625,-0.59375 l -0.5,-1.5 c 0.597233,-0.36225 1.161752,-0.795347 1.6875,-1.25 l 1.28125,0.9375 c 0.325635,-0.29658 0.641113,-0.611862 0.9375,-0.9375 l -0.9375,-1.25 c 0.454846,-0.525748 0.8565,-1.089882 1.21875,-1.6875 l 1.5,0.46875 c 0.217931,-0.380847 0.443294,-0.754094 0.625,-1.15625 l -1.28125,-0.9375 c 0.26849,-0.636749 0.464989,-1.282992 0.625,-1.96875 l 1.59375,0 c 0.08833,-0.427727 0.139459,-0.871212 0.1875,-1.3125 l -1.5,-0.46875 c 0.02886,-0.343848 0.0625,-0.711097 0.0625,-1.0625 -1e-6,-0.351403 -0.03402,-0.687014 -0.0625,-1.0312496 l 1.5,-0.46875 c -0.04555,-0.4198872 -0.105591,-0.8419986 -0.1875,-1.25 -1.147428,0.399301 -2.55266,1.1531195 -3.568512,1.7834709 L 10.102903,6.2970655 z" />
-  <path
-     inkscape:connector-curvature="0"
-     style="opacity:0.5;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path3770"
-     d="m 37.236641,17.217754 c -0.383781,0.181376 -0.746638,0.385755 -1.113405,0.595541 l 0.56965,1.734841 c -0.697094,0.4223 -1.35473,0.919689 -1.967878,1.450015 l -1.475909,-1.087512 c -0.380086,0.345899 -0.741772,0.707584 -1.087511,1.087512 l 1.087511,1.475908 c -0.530326,0.613312 -1.027552,1.270943 -1.450015,1.967878 l -0.543756,-0.181252 c -0.04768,0.700283 -0.236379,1.361485 -0.517862,1.967878 l 0.103572,0.07768 c -0.313157,0.74268 -0.564548,1.530398 -0.750901,2.330382 l -1.475908,0 c -0.136283,0.08545 -0.270553,0.18506 -0.414291,0.258931 -0.07837,0.415267 -0.134912,0.817326 -0.181251,1.242871 l 1.760733,0.569648 c -0.03339,0.401276 -0.05179,0.807195 -0.05179,1.216978 -2e-6,0.409941 0.0184,0.815701 0.05179,1.216977 l -1.760733,0.569648 c 0.05602,0.514755 0.129991,1.02867 0.233038,1.527695 l 1.838412,-0.02589 c 0.128118,0.549987 0.303065,1.107439 0.49197,1.631267 0.744916,-0.28728 1.473833,-0.630185 2.149129,-1.035725 -0.411587,-1.216041 -0.647328,-2.529108 -0.647328,-3.883969 10e-7,-5.197933 3.292381,-9.636655 7.897405,-11.341191 l -1.087511,-0.181253 c -0.222788,-0.822662 -0.511324,-1.628591 -0.880367,-2.382167 -0.01085,-0.02216 -0.01492,-0.05558 -0.02589,-0.07768 l -0.05179,-0.05179 -0.699115,-0.673221 z" />
-  <g
-     style="fill:url(#radialGradient3362);fill-opacity:1;display:inline"
-     id="layer4-1"
-     transform="matrix(-0.68905195,0,0,0.8954059,93.73874,-31.255459)" />
-  <path
-     inkscape:connector-curvature="0"
-     style="opacity:0.15;color:#000000;fill:url(#radialGradient4645);fill-opacity:1;stroke:url(#linearGradient4647);stroke-width:4.27993584;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path2682-2"
-     d="m 15.978616,39.039184 0,-30.6730942 22.974692,14.9011692 -22.974692,15.771925 z" />
-  <path
-     inkscape:connector-curvature="0"
-     style="color:#000000;fill:url(#radialGradient4642);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path3375-6"
-     d="m 16.418775,37.341091 0,-27.9693214 21.241504,13.9846624 -21.241504,13.984659 z" />
-  <path
-     inkscape:connector-curvature="0"
-     style="color:#000000;fill:url(#radialGradient4637);fill-opacity:1;stroke:url(#linearGradient4639);stroke-width:2.499;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path2479-2"
-     d="m 16.418775,37.341091 0,-27.9693214 21.241504,13.9846624 -21.241504,13.984659 z" />
-  <path
-     inkscape:connector-curvature="0"
-     style="color:#000000;fill:url(#radialGradient4634);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible"
-     id="path2481-3"
-     d="m 16.85941,10.251218 0,26.210411 L 36.770605,23.356423 16.85941,10.251218 z m 0.88127,1.759932 17.239845,11.345273 -17.239845,11.345274 0,-22.690547 z" />
-  <path
-     inkscape:connector-curvature="0"
-     style="opacity:0.5;color:#000000;fill:url(#radialGradient4631);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
-     id="path2339-1"
-     d="m 17.686077,11.948807 0,11.75383 c 3.762316,-0.04504 8.076096,-0.347525 15.036669,-1.885641 L 17.686077,11.948807 z" />
-</svg>
Binary file libgui/src/icons/tango/128x128/applications-system.png has changed
Binary file libgui/src/icons/tango/128x128/bookmark-new.png has changed
Binary file libgui/src/icons/tango/128x128/bp-next.png has changed
Binary file libgui/src/icons/tango/128x128/bp-prev.png has changed
Binary file libgui/src/icons/tango/128x128/bp-rm-all.png has changed
Binary file libgui/src/icons/tango/128x128/bp-toggle.png has changed
Binary file libgui/src/icons/tango/128x128/db-cont.png has changed
Binary file libgui/src/icons/tango/128x128/db-step-in.png has changed
Binary file libgui/src/icons/tango/128x128/db-step-out.png has changed
Binary file libgui/src/icons/tango/128x128/db-step.png has changed
Binary file libgui/src/icons/tango/128x128/db-stop.png has changed
Binary file libgui/src/icons/tango/128x128/dialog-error.png has changed
Binary file libgui/src/icons/tango/128x128/dialog-information.png has changed
Binary file libgui/src/icons/tango/128x128/dialog-warning.png has changed
Binary file libgui/src/icons/tango/128x128/document-new.png has changed
Binary file libgui/src/icons/tango/128x128/document-open.png has changed
Binary file libgui/src/icons/tango/128x128/document-print.png has changed
Binary file libgui/src/icons/tango/128x128/document-save-as.png has changed
Binary file libgui/src/icons/tango/128x128/document-save.png has changed
Binary file libgui/src/icons/tango/128x128/edit-copy.png has changed
Binary file libgui/src/icons/tango/128x128/edit-cut.png has changed
Binary file libgui/src/icons/tango/128x128/edit-delete.png has changed
Binary file libgui/src/icons/tango/128x128/edit-find-replace.png has changed
Binary file libgui/src/icons/tango/128x128/edit-find.png has changed
Binary file libgui/src/icons/tango/128x128/edit-paste.png has changed
Binary file libgui/src/icons/tango/128x128/edit-redo.png has changed
Binary file libgui/src/icons/tango/128x128/edit-undo.png has changed
Binary file libgui/src/icons/tango/128x128/folder-new.png has changed
Binary file libgui/src/icons/tango/128x128/folder.png has changed
Binary file libgui/src/icons/tango/128x128/go-down.png has changed
Binary file libgui/src/icons/tango/128x128/go-first.png has changed
Binary file libgui/src/icons/tango/128x128/go-home.png has changed
Binary file libgui/src/icons/tango/128x128/go-last.png has changed
Binary file libgui/src/icons/tango/128x128/go-next.png has changed
Binary file libgui/src/icons/tango/128x128/go-previous.png has changed
Binary file libgui/src/icons/tango/128x128/go-up.png has changed
Binary file libgui/src/icons/tango/128x128/preferences-system.png has changed
Binary file libgui/src/icons/tango/128x128/user-home.png has changed
Binary file libgui/src/icons/tango/128x128/view-refresh.png has changed
Binary file libgui/src/icons/tango/128x128/view-zoom-in.png has changed
Binary file libgui/src/icons/tango/128x128/view-zoom-original.png has changed
Binary file libgui/src/icons/tango/128x128/view-zoom-out.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/index.theme	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,18 @@
+[Icon Theme]
+Name=Tango-icons
+Comment=icon theme tango
+
+# Directory list
+Directories=scalable,128
+
+[scalable]
+Size=48
+MinSize=16
+MaxSize=512
+Type=Scalable
+
+[128x128]
+Size=128
+MinSize=16
+MaxSize=512
+Type=Scalable
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/applications-system.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg53383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/categories"
+   sodipodi:docname="applications-system.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective31" />
+    <linearGradient
+       id="linearGradient3264">
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="0"
+         id="stop3266" />
+      <stop
+         id="stop3276"
+         offset="0.25"
+         style="stop-color:#f8f8f8;stop-opacity:1;" />
+      <stop
+         id="stop3272"
+         offset="0.5"
+         style="stop-color:#e2e2e2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#b0b0b0;stop-opacity:1;"
+         offset="0.75"
+         id="stop3274" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop3268" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3264"
+       id="linearGradient3281"
+       gradientUnits="userSpaceOnUse"
+       x1="14.462892"
+       y1="12.284524"
+       x2="34.534348"
+       y2="39.684914"
+       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)" />
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.32673267;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd1"
+       gradientUnits="userSpaceOnUse"
+       x1="99.7773"
+       y1="15.4238"
+       x2="153.0005"
+       y2="248.6311">
+      <stop
+         offset="0"
+         style="stop-color:#184375"
+         id="stop53300" />
+      <stop
+         offset="1"
+         style="stop-color:#C8BDDC"
+         id="stop53302" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd1"
+       id="linearGradient53551"
+       gradientUnits="userSpaceOnUse"
+       x1="99.7773"
+       y1="15.4238"
+       x2="153.0005"
+       y2="248.6311"
+       gradientTransform="matrix(0.200685,0.000000,0.000000,0.200685,-0.585758,-1.050787)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="11.689870"
+       fy="72.568001"
+       fx="14.287618"
+       cy="68.872971"
+       cx="14.287618"
+       gradientTransform="matrix(1.399258,-2.234445e-7,8.196178e-8,0.513264,4.365074,4.839285)"
+       id="radialGradient2308"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3264"
+       id="linearGradient3760"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)"
+       x1="14.462892"
+       y1="12.284524"
+       x2="34.534348"
+       y2="39.684914" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd1"
+       id="linearGradient3773"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.200685,0,0,0.200685,-54.33576,-1.050787)"
+       x1="99.7773"
+       y1="15.4238"
+       x2="153.0005"
+       y2="248.6311" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:showpageshadow="false"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.11764706"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.6568542"
+     inkscape:cx="43.652227"
+     inkscape:cy="21.164787"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="697"
+     inkscape:window-x="562"
+     inkscape:window-y="151" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>System Applications</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>system</rdf:li>
+            <rdf:li>applications</rdf:li>
+            <rdf:li>group</rdf:li>
+            <rdf:li>category</rdf:li>
+            <rdf:li>admin</rdf:li>
+            <rdf:li>root</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="shadow"
+     id="layer2"
+     inkscape:groupmode="layer">
+    <path
+       transform="matrix(1.186380,0.000000,0.000000,1.186380,-4.539687,-7.794678)"
+       d="M 44.285715 38.714287 A 19.928572 9.8372450 0 1 1  4.4285717,38.714287 A 19.928572 9.8372450 0 1 1  44.285715 38.714287 z"
+       sodipodi:ry="9.8372450"
+       sodipodi:rx="19.928572"
+       sodipodi:cy="38.714287"
+       sodipodi:cx="24.357143"
+       id="path1538"
+       style="color:#000000;fill:url(#radialGradient2308);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.50000042;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+  </g>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       style="opacity:1;color:#000000;fill:url(#linearGradient3773);fill-opacity:1;fill-rule:nonzero;stroke:#3f4561;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 22.699525,0.94746963 C 22.22635,0.97984519 21.766437,1.0531317 21.301673,1.1063165 L 21.269903,1.1063165 L 20.157975,7.1742671 C 18.345621,7.5870046 16.640562,8.2874574 15.106644,9.2392765 L 10.118853,5.6493371 C 8.770521,6.6961412 7.543552,7.9170049 6.465374,9.2392765 L 9.928236,14.290607 C 8.876814,15.89739 8.086153,17.732094 7.640841,19.659632 C 7.640765,19.668743 7.640779,19.689813 7.640841,19.691401 L 1.60466,20.644482 C 1.494303,21.545851 1.445813,22.477386 1.445813,23.408418 C 1.445813,24.170171 1.466846,24.921747 1.541121,25.664043 L 7.577303,26.744202 C 8.0066,28.840363 8.822112,30.797987 9.960006,32.526228 L 6.370066,37.450482 C 7.398201,38.726866 8.585171,39.888962 9.864698,40.913343 L 14.947798,37.418712 C 16.724273,38.551956 18.707343,39.346604 20.856901,39.737877 L 21.809983,45.742288 C 22.487237,45.803935 23.181758,45.805827 23.874992,45.805827 C 24.853677,45.805826 25.788512,45.768738 26.734236,45.64698 L 27.877933,39.515491 C 29.91886,39.007587 31.836112,38.126493 33.501113,36.942172 L 38.393596,40.500342 C 39.662366,39.420897 40.822583,38.180154 41.824689,36.846863 L 38.266519,31.700225 C 39.230125,30.036028 39.897817,28.199859 40.23622,26.235892 L 46.240632,25.282811 C 46.29329,24.656221 46.30417,24.048546 46.30417,23.408418 C 46.30417,22.296018 46.174875,21.205317 46.018246,20.136172 L 39.918526,19.024244 C 39.440518,17.259164 38.656214,15.612364 37.662901,14.13176 L 41.25284,9.2075071 C 40.140075,7.8466524 38.870718,6.5895264 37.472284,5.5222596 L 32.293876,9.0804296 C 30.805549,8.200202 29.203897,7.5248159 27.464931,7.1424978 L 26.51185,1.1063165 C 25.644369,1.0042729 24.769749,0.94746963 23.874992,0.94746963 C 23.633166,0.94746964 23.384286,0.93986063 23.144296,0.94746963 C 23.027301,0.95117908 22.911525,0.94066346 22.794833,0.94746963 C 22.763228,0.94931296 22.73107,0.94531125 22.699525,0.94746963 z M 23.525529,16.387386 C 23.641592,16.381497 23.757473,16.387386 23.874992,16.387386 C 27.635598,16.387386 30.705408,19.457196 30.705408,23.217802 C 30.705409,26.978407 27.635597,30.016448 23.874992,30.016448 C 20.114387,30.016449 17.076346,26.978407 17.076346,23.217802 C 17.076347,19.574716 19.927558,16.569963 23.525529,16.387386 z "
+       id="path3243" />
+    <path
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       sodipodi:type="arc"
+       style="opacity:0.64772728;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.62180054;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path3283"
+       sodipodi:cx="23.511301"
+       sodipodi:cy="23.781593"
+       sodipodi:rx="12.727922"
+       sodipodi:ry="12.727922"
+       d="M 36.239223 23.781593 A 12.727922 12.727922 0 1 1  10.783379,23.781593 A 12.727922 12.727922 0 1 1  36.239223 23.781593 z"
+       transform="matrix(0.616598,0,0,0.616598,9.38202,8.539674)" />
+    <path
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       id="path3285"
+       d="M 21.995808,2.1484671 L 21.103024,8.0235243 C 19.404254,8.4103946 16.279442,9.5936035 14.841657,10.485771 L 10.091975,6.9406268 C 8.828145,7.9218257 8.741474,7.9883656 7.730867,9.2277688 L 11.165063,14.320988 C 10.179537,15.827071 8.995796,18.510982 8.570778,20.42893 C 8.570778,20.42893 2.552988,21.443355 2.552988,21.443355 C 2.449547,22.288234 2.49926,24.096528 2.56888,24.792303 L 8.317097,25.82782 C 8.71949,27.79261 10.225324,30.955232 11.291904,32.575161 L 7.656902,37.377719 C 8.620601,38.57411 8.813474,38.683589 10.01281,39.64377 L 14.873441,36.082733 C 16.538581,37.144954 19.84373,38.437109 21.858571,38.80386 L 22.656299,44.604952 C 23.291109,44.662736 25.044829,44.824827 25.931283,44.710701 L 26.824066,38.671821 C 28.737084,38.195749 32.042539,36.838896 33.603191,35.728798 L 38.458624,39.236958 C 39.647878,38.225166 39.658533,38.072709 40.597835,36.822978 L 36.999815,31.708667 C 37.90303,30.148767 39.070902,27.098068 39.388097,25.257187 L 45.279046,24.279744 C 45.328399,23.692424 45.330802,22.054578 45.18399,21.052439 L 39.182092,20.016922 C 38.73404,18.362463 37.196418,15.381153 36.265359,13.993342 L 40.080075,9.1907857 C 39.037052,7.915218 38.64924,7.7402002 37.338448,6.7398212 L 32.313994,10.337839 C 30.918941,9.5127782 28.137095,8.2550417 26.507114,7.8966842 L 25.619528,2.1484671 C 24.806414,2.0528187 22.460488,2.0952921 21.995808,2.1484671 z "
+       style="opacity:0.34659089;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999923;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:nodetypes="ccccccccccccccccccccccccccccccccc" />
+    <path
+       style="opacity:0.5;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.102903,6.2970655 C 8.7545689,7.3438694 8.1656464,7.9719226 7.0874684,9.2941942 L 10.489927,14.259153 C 9.4385072,15.857755 8.3316275,18.426114 8.1423859,19.987706 C 8.1423859,19.987706 2.0798859,21.0319 2.0798859,21.0319 C 2.0109129,21.595256 1.90625,22.884803 1.90625,22.884803 L 2.0830267,24.447303 C 2.5107567,24.535638 2.9231817,24.617818 3.3642767,24.666053 L 3.8642767,23.134803 C 4.2083177,23.163279 4.5439297,23.197303 4.8955267,23.197303 C 5.2467347,23.197303 5.6139847,23.163473 5.9580267,23.134803 L 6.4267767,24.666053 C 6.8680647,24.617818 7.3115487,24.535638 7.7392767,24.447303 L 7.7392767,22.884803 C 8.4250337,22.72518 9.0712777,22.497045 9.7080267,22.228553 L 10.645527,23.509803 C 11.047878,23.327709 11.421123,23.133984 11.801777,22.916053 L 11.301777,21.416053 C 11.89901,21.053803 12.463529,20.620706 12.989277,20.166053 L 14.270527,21.103553 C 14.596162,20.806973 14.91164,20.491691 15.208027,20.166053 L 14.270527,18.916053 C 14.725373,18.390305 15.127027,17.826171 15.489277,17.228553 L 16.989277,17.697303 C 17.207208,17.316456 17.432571,16.943209 17.614277,16.541053 L 16.333027,15.603553 C 16.601517,14.966804 16.798016,14.320561 16.958027,13.634803 L 18.551777,13.634803 C 18.640112,13.207076 18.691236,12.763591 18.739277,12.322303 L 17.239277,11.853553 C 17.268139,11.509705 17.301777,11.142456 17.301777,10.791053 C 17.301776,10.43965 17.267753,10.104039 17.239277,9.7598034 L 18.739277,9.2910534 C 18.69373,8.8711662 18.633686,8.4490548 18.551777,8.0410534 C 17.404349,8.4403544 15.999117,9.1941729 14.983265,9.8245243 L 10.102903,6.2970655 z "
+       id="path3767"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="cccccccccsccccccccccccccccccccsccccc" />
+    <path
+       style="opacity:0.5;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 37.236641,17.217754 C 36.85286,17.39913 36.490003,17.603509 36.123236,17.813295 L 36.692886,19.548136 C 35.995792,19.970436 35.338156,20.467825 34.725008,20.998151 L 33.249099,19.910639 C 32.869013,20.256538 32.507327,20.618223 32.161588,20.998151 L 33.249099,22.474059 C 32.718773,23.087371 32.221547,23.745002 31.799084,24.441937 L 31.255328,24.260685 C 31.207646,24.960968 31.018949,25.62217 30.737466,26.228563 L 30.841038,26.306242 C 30.527881,27.048922 30.27649,27.83664 30.090137,28.636624 L 28.614229,28.636624 C 28.477946,28.722076 28.343676,28.821684 28.199938,28.895555 C 28.121568,29.310822 28.065026,29.712881 28.018687,30.138426 L 29.77942,30.708074 C 29.746033,31.10935 29.727633,31.515269 29.727633,31.925052 C 29.727631,32.334993 29.746034,32.740753 29.77942,33.142029 L 28.018687,33.711677 C 28.074705,34.226432 28.148678,34.740347 28.251725,35.239372 L 30.090137,35.213479 C 30.218255,35.763466 30.393202,36.320918 30.582107,36.844746 C 31.327023,36.557466 32.05594,36.214561 32.731236,35.809021 C 32.319649,34.59298 32.083908,33.279913 32.083908,31.925052 C 32.083909,26.727119 35.376289,22.288397 39.981313,20.583861 L 38.893802,20.402608 C 38.671014,19.579946 38.382478,18.774017 38.013435,18.020441 C 38.002581,17.998277 37.99851,17.96486 37.987542,17.942761 L 37.935756,17.890975 L 37.236641,17.217754 z "
+       id="path3770"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/bookmark-new.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,672 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="240.00000"
+   inkscape:export-xdpi="240.00000"
+   inkscape:export-filename="/home/jimmac/gfx/novell/pdes/trunk/docs/BIGmime-text.png"
+   sodipodi:docname="bookmark-new.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg249"
+   height="48.000000px"
+   width="48.000000px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective100" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2906">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2908" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2910" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2896">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2898" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop2900" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2598">
+      <stop
+         style="stop-color:#859dbc;stop-opacity:1;"
+         offset="0"
+         id="stop2600" />
+      <stop
+         style="stop-color:#547299;stop-opacity:1;"
+         offset="1"
+         id="stop2602" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2590">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2592" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2594" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5897">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5899" />
+      <stop
+         id="stop5905"
+         offset="0.50000000"
+         style="stop-color:#000000;stop-opacity:0.56701028;" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5901" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5866">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop5868" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop5870" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4404">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4406" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4408" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4542">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4544" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4546" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop15666"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop271"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop261"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop12517"
+         offset="0.50000000"
+         style="stop-color:#fff520;stop-opacity:0.89108908;" />
+      <stop
+         id="stop12514"
+         offset="1.0000000"
+         style="stop-color:#fff300;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <radialGradient
+       r="14.375000"
+       fy="125.00000"
+       fx="55.000000"
+       cy="125.00000"
+       cx="55.000000"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient278"
+       xlink:href="#linearGradient12512"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient269"
+       id="radialGradient15656"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0.000000,0.000000,1.036374,3.250000,0.489522)"
+       cx="8.8244190"
+       cy="3.7561285"
+       fx="8.8244190"
+       fy="3.7561285"
+       r="37.751713" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="radialGradient15658"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.960493,0.000000,0.000000,1.044769,-0.103553,-0.159183)"
+       cx="33.966679"
+       cy="35.736916"
+       fx="33.966679"
+       fy="35.736916"
+       r="86.708450" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15662"
+       id="radialGradient15668"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.973033,0.000000,0.000000,1.034937,3.168754,0.555277)"
+       cx="8.1435566"
+       cy="7.2678967"
+       fx="8.1435566"
+       fy="7.2678967"
+       r="38.158695" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4542"
+       id="radialGradient4548"
+       cx="24.306795"
+       cy="42.07798"
+       fx="24.306795"
+       fy="42.07798"
+       r="15.821514"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4404"
+       id="linearGradient4410"
+       x1="16.812500"
+       y1="1.8750000"
+       x2="16.812500"
+       y2="4.7187500"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.319549,0.000000,0.000000,1.362060,40.38853,-0.362057)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5866"
+       id="linearGradient5872"
+       x1="19.452349"
+       y1="13.174174"
+       x2="19.685436"
+       y2="27.095339"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.224255,0.000000,0.000000,1.282176,0.371569,0.264657)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5897"
+       id="linearGradient5903"
+       x1="19.000000"
+       y1="9.7738247"
+       x2="19.000000"
+       y2="15.635596"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.319549,0.000000,0.000000,2.133926,-4.476133,-14.64845)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2590"
+       id="linearGradient2596"
+       x1="19.970377"
+       y1="6.1167107"
+       x2="19.970377"
+       y2="2.53125"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.319549,0.000000,0.000000,1.280356,-5.745298,0.249007)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2598"
+       id="linearGradient2604"
+       x1="18.431311"
+       y1="19.119474"
+       x2="18.402472"
+       y2="4.2702327"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.319549,0.000000,0.000000,1.299013,-3.106200,-1.336165)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2896"
+       id="linearGradient2902"
+       x1="14.584077"
+       y1="1.6392649"
+       x2="14.552828"
+       y2="2.4912448"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,1.594214,0.000000,-0.790249)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2906"
+       id="linearGradient2912"
+       x1="13.354311"
+       y1="1.4866425"
+       x2="14.075844"
+       y2="2.4017651"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,1.184816,0.000000,-0.727880)" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="158"
+     inkscape:window-x="433"
+     inkscape:window-height="690"
+     inkscape:window-width="872"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer6"
+     inkscape:cy="16.785697"
+     inkscape:cx="-154.12746"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:showpageshadow="false"
+     showguides="true"
+     inkscape:guide-bbox="true" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>New Bookmark</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>bookmark</rdf:li>
+            <rdf:li>remember</rdf:li>
+            <rdf:li>favorite</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+        <dc:description>create bookmark action</dc:description>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Shadow">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.165152e-2,0,0,1.485743e-2,43.0076,42.68539)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     inkscape:label="Base"
+     id="layer1">
+    <rect
+       style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
+       id="rect15391"
+       width="34.875000"
+       height="41.063431"
+       x="6.5000000"
+       y="3.5000000"
+       ry="1.1490481"
+       rx="1.1490486" />
+    <rect
+       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:0.99999958;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
+       id="rect15660"
+       width="32.937012"
+       height="39.028210"
+       x="7.5024552"
+       y="4.5010486"
+       ry="0.14904849"
+       rx="0.14904852" />
+    <path
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854"
+       d="M 11.505723,5.4942766 L 11.505723,43.400869"
+       id="path15672"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831"
+       d="M 12.500000,5.0205154 L 12.500000,43.038228"
+       id="path15674"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Text"
+     style="display:inline">
+    <g
+       id="g2188">
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15686"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999994"
+         y="9.0000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15688"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999994"
+         y="11.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15690"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999994"
+         y="13.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15692"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999994"
+         y="15.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15694"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999994"
+         y="17.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15696"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999994"
+         y="19.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15698"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999994"
+         y="21.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15700"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999994"
+         y="23.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15732"
+         width="9.0000057"
+         height="1.0000000"
+         x="15.999986"
+         y="25.000000"
+         rx="0.062003858"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15736"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999986"
+         y="29.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15738"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999986"
+         y="31.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15740"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999986"
+         y="33.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15742"
+         width="20.000006"
+         height="1.0000000"
+         x="15.999986"
+         y="35.000000"
+         rx="0.13778631"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;visibility:visible;display:block;overflow:visible"
+         id="rect15744"
+         width="14.000014"
+         height="1.0000000"
+         x="15.999986"
+         y="37.000000"
+         rx="0.096450485"
+         ry="0.065390877" />
+    </g>
+    <path
+       style="opacity:0.28021976;fill:url(#linearGradient5872);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 28.245858,31.324906 L 21.147869,27.133701 L 14.30757,30.8838 L 13.761859,3.9475667 L 28.549598,3.9475667 L 28.245858,31.324906 z "
+       id="path5138"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="fill:url(#linearGradient2604);fill-opacity:1;fill-rule:evenodd;stroke:#364878;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline"
+       d="M 12.427339,3.5180202 C 12.427339,3.5180202 12.240033,0.60520607 15.107867,0.54270607 L 25.119343,0.50728624 C 26.277287,0.50728624 26.581888,1.1910178 26.581888,2.1095589 L 26.581888,29.729916 L 20.545426,24.533862 L 14.674346,29.729916 L 14.591655,3.519629 L 12.427339,3.5180202 z "
+       id="path2204"
+       sodipodi:nodetypes="ccccccccc" />
+    <path
+       style="opacity:0.4450549;fill:url(#linearGradient4410);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 13.030252,3.0117919 C 13.011046,2.225362 13.312918,1.0801307 15.375418,1.0176307 L 25.027906,1 C 25.640922,1 26.090152,1.1674319 26.090152,1.7994802 L 26.060994,10.491851 L 15.317102,10.491851 L 15.192102,2.9993251 C 15.192102,2.9993251 13.030252,3.0117919 13.030252,3.0117919 z "
+       id="path3668"
+       sodipodi:nodetypes="cccccccs" />
+    <rect
+       style="opacity:0.28021976;fill:url(#linearGradient5903);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect5895"
+       width="10.556392"
+       height="12.803556"
+       x="15.317101"
+       y="6.6907959"
+       rx="0.062003858"
+       ry="0.065390877" />
+    <path
+       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2596);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.19125683;display:inline"
+       d="M 24.476832,2.2095507 L 25.575535,3.113139 L 25.547445,27.511911 L 20.497463,23.203758 L 15.704084,27.415203 L 15.699081,2.7495618 L 24.476832,2.2095507 z "
+       id="path5969"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient278);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+       id="path12511"
+       sodipodi:cx="55"
+       sodipodi:cy="125"
+       sodipodi:rx="14.375"
+       sodipodi:ry="14.375"
+       d="M 69.375 125 A 14.375 14.375 0 1 1  40.625,125 A 14.375 14.375 0 1 1  69.375 125 z"
+       transform="matrix(0.611127,0.000000,0.000000,0.611127,5.632438,-67.28175)"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
+       inkscape:export-xdpi="33.852203"
+       inkscape:export-ydpi="33.852203" />
+    <path
+       style="opacity:0.48295456;color:#000000;fill:url(#linearGradient2912);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.10533953;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 15.158602,3.9384083 L 15.114407,1.0335178 C 12.983906,1.0335178 12.993087,2.9680775 12.993087,3.9384083 L 15.158602,3.9384083 z "
+       id="path2894"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path2904"
+       d="M 15.158602,3.9384086 L 15.114407,1.8247593 C 12.81631,1.8426926 12.993087,3.9384086 12.993087,3.9384086 L 15.158602,3.9384086 z "
+       style="opacity:0.35795455;color:#000000;fill:url(#linearGradient2902);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.10533953;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/bp-next.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1072 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="48"
+   height="48"
+   id="svg1307"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="bp-next.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="480"
+     id="namedview113"
+     showgrid="false"
+     inkscape:zoom="6.2802734"
+     inkscape:cx="24"
+     inkscape:cy="24"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg1307" />
+  <defs
+     id="defs1309">
+    <linearGradient
+       id="linearGradient3838">
+      <stop
+         id="stop3840"
+         style="stop-color:#edd400;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3842"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3837">
+      <stop
+         id="stop3839"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3841"
+         style="stop-color:#ffffff;stop-opacity:0.78350514"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2257">
+      <stop
+         id="stop2259"
+         style="stop-color:#ef2929;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2261"
+         style="stop-color:#cc0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3340">
+      <stop
+         id="stop3342"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3344"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2228"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient1368"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient2263"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3843"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3845"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient2690"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <radialGradient
+       cx="107.5884"
+       cy="83.990814"
+       r="12.551644"
+       fx="107.5884"
+       fy="83.990814"
+       id="radialGradient2314"
+       xlink:href="#linearGradient2691"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient2306"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <linearGradient
+       id="linearGradient3340-2">
+      <stop
+         id="stop3342-1"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3344-3"
+         style="stop-color:#ffffff;stop-opacity:0.62886596"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2691">
+      <stop
+         id="stop2693"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2695"
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5075">
+      <stop
+         id="stop5077"
+         style="stop-color:#adb0a8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5079"
+         style="stop-color:#ae9b00;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2588"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2684">
+      <stop
+         id="stop2686"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2688"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient3040"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3044"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient3047"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3050"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3052"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3054"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3058"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3844"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3846"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3848"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3850"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3852"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3854"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3856"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3858"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3940"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3942"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3944"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3946"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3948"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3950"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3952"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3954"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3957"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3960"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3963"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3965"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3968"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3971"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3973"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3982"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3984"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3986"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3988"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3990"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3992"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3994"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3863"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3865"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3867"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3869"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3871"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3873"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3875"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3980"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3983"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3987"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3989"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3993"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3996"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3998"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4007"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient4009"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4011"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4013"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient4015"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4017"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4019"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3103"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)"
+       cx="22.5"
+       cy="28.116049"
+       fx="22.5"
+       fy="28.116049"
+       r="14.537862" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3837"
+       id="linearGradient3105"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)"
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient3107"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3109"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)"
+       cx="22.5"
+       cy="28.116049"
+       fx="22.5"
+       fy="28.116049"
+       r="14.537862" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3340"
+       id="radialGradient3111"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)"
+       cx="21.929186"
+       cy="-3.2182934"
+       fx="21.929186"
+       fy="-3.2182934"
+       r="13" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3113"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2684"
+       id="linearGradient3115"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3117"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3119"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5075"
+       id="linearGradient3121"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3123"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3125"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3340"
+       id="radialGradient3134"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.1094029,0,0,2.3370305,-73.764431,10.35981)"
+       cx="21.929186"
+       cy="-3.2182934"
+       fx="21.929186"
+       fy="-3.2182934"
+       r="13" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3138"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.377542,0,0,2.3892631,-30.211602,-38.123458)"
+       cx="22.5"
+       cy="28.116049"
+       fx="22.5"
+       fy="28.116049"
+       r="14.537862" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient3141"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2922213,0,0,0.34100651,-6.8343259,25.695418)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3144"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4461825,0,0,2.4582417,-31.301145,-40.340245)"
+       cx="22.5"
+       cy="28.116049"
+       fx="22.5"
+       fy="28.116049"
+       r="14.537862" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3837"
+       id="linearGradient3146"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0340809,0,0,1.1159395,0.47116784,-2.1305226)"
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108" />
+  </defs>
+  <metadata
+     id="metadata1312">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Lapo Calamandrei</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>media</rdf:li>
+            <rdf:li>player</rdf:li>
+            <rdf:li>record</rdf:li>
+            <rdf:li>music</rdf:li>
+            <rdf:li>sound</rdf:li>
+            <rdf:li>video</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(-0.68905195,0,0,0.8954059,48.834569,7.5492018)"
+     id="layer4"
+     style="fill:url(#radialGradient3846);fill-opacity:1;display:inline" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 38.215122,22.420146 a 14.477133,14.507213 0 0 1 -28.9542657,0 14.477133,14.507213 0 1 1 28.9542657,0 z"
+     id="path3835"
+     style="opacity:0.15;color:#000000;fill:url(#radialGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3146);stroke-width:3.36944985;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 45.477198,38.115266 a 20.216462,5.3349602 0 0 1 -40.4329242,0 20.216462,5.3349602 0 1 1 40.4329242,0 z"
+     id="path2226"
+     style="opacity:0.03999999;color:#000000;fill:url(#radialGradient3141);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 37.354019,22.875867 a 14.070901,14.100139 0 0 1 -28.1418019,0 14.070901,14.100139 0 1 1 28.1418019,0 z"
+     id="path2525"
+     style="color:#000000;fill:url(#radialGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.12315083;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 36.209731,22.87587 a 12.916233,12.916233 0 0 1 -25.832466,0 12.916233,12.916233 0 1 1 25.832466,0 z"
+     id="path2527"
+     style="color:#000000;fill:none;stroke:#f77d7d;stroke-width:1.12315106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     inkscape:connector-curvature="0"
+     d="M 23.117991,9.3980567 C 16.065134,9.4874482 10.309113,15.004888 9.8507809,21.963298 16.722014,24.79002 25.429344,20.333357 35.842726,18.164933 35.069538,15.077877 30.727092,9.3980567 23.293484,9.3980567 c -0.05808,0 -0.117591,-7.335e-4 -0.175493,0 z"
+     id="path2529"
+     style="opacity:0.6;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+  <g
+     transform="matrix(-1.1231501,0,0,1.1231501,69.253277,-3.6162014)"
+     id="g4000">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 40.565946,42.917735 0,-27.30988 -17.963571,13.2673 17.963571,14.04258 z"
+       id="path2682"
+       style="opacity:0.15;color:#000000;fill:url(#radialGradient3113);fill-opacity:1;stroke:url(#linearGradient3115);stroke-width:3.5710001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 40.221792,41.405833 0,-24.902568 -16.608417,12.451285 16.608417,12.451283 z"
+       id="path3375"
+       style="color:#000000;fill:url(#radialGradient3117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 40.221792,41.405833 0,-24.902568 -16.608417,12.451285 16.608417,12.451283 z"
+       id="path2479"
+       style="color:#000000;fill:url(#radialGradient3119);fill-opacity:1;stroke:url(#linearGradient3121);stroke-width:2.08500004;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 39.877266,17.286284 0,23.336517 L 24.308998,28.954542 39.877266,17.286284 z m -0.689052,1.566961 -13.479579,10.101297 13.479579,10.101298 0,-20.202595 z"
+       id="path2481"
+       style="color:#000000;fill:url(#radialGradient3123);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 39.230907,18.797738 0,10.465057 c -2.941699,-0.0401 -6.314579,-0.30942 -11.756948,-1.678886 l 11.756948,-8.786171 z"
+       id="path2339"
+       style="opacity:0.5;color:#000000;fill:url(#radialGradient3125);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/bp-prev.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1147 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="48"
+   height="48"
+   id="svg1307"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="bp-next.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="480"
+     id="namedview113"
+     showgrid="false"
+     inkscape:zoom="6.2802734"
+     inkscape:cx="24"
+     inkscape:cy="24"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg1307" />
+  <defs
+     id="defs1309">
+    <linearGradient
+       id="linearGradient3838">
+      <stop
+         id="stop3840"
+         style="stop-color:#edd400;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3842"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3837">
+      <stop
+         id="stop3839"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3841"
+         style="stop-color:#ffffff;stop-opacity:0.78350514"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2257">
+      <stop
+         id="stop2259"
+         style="stop-color:#ef2929;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2261"
+         style="stop-color:#cc0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3340">
+      <stop
+         id="stop3342"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3344"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2228"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient1368"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient2263"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3843"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3845"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient2690"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <radialGradient
+       cx="107.5884"
+       cy="83.990814"
+       r="12.551644"
+       fx="107.5884"
+       fy="83.990814"
+       id="radialGradient2314"
+       xlink:href="#linearGradient2691"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient2306"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <linearGradient
+       id="linearGradient3340-2">
+      <stop
+         id="stop3342-1"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3344-3"
+         style="stop-color:#ffffff;stop-opacity:0.62886596"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2691">
+      <stop
+         id="stop2693"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2695"
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5075">
+      <stop
+         id="stop5077"
+         style="stop-color:#adb0a8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5079"
+         style="stop-color:#ae9b00;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2588"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2684">
+      <stop
+         id="stop2686"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2688"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient3040"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3044"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient3047"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3050"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3052"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3054"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3058"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3844"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3846"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3848"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3850"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3852"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3854"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3856"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3858"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3940"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3942"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3944"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3946"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3948"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3950"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3952"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3954"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3957"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3960"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3963"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3965"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3968"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3971"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3973"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3982"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3984"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3986"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3988"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3990"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3992"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3994"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3863"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3865"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3867"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3869"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3871"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3873"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3875"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3980"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3983"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3987"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3989"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3993"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3996"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3998"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4007"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient4009"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4011"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4013"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient4015"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4017"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4019"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3103"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)"
+       cx="22.5"
+       cy="28.116049"
+       fx="22.5"
+       fy="28.116049"
+       r="14.537862" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3837"
+       id="linearGradient3105"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)"
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient3107"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3109"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)"
+       cx="22.5"
+       cy="28.116049"
+       fx="22.5"
+       fy="28.116049"
+       r="14.537862" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3340"
+       id="radialGradient3111"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)"
+       cx="21.929186"
+       cy="-3.2182934"
+       fx="21.929186"
+       fy="-3.2182934"
+       r="13" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3113"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2684"
+       id="linearGradient3115"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3117"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3119"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5075"
+       id="linearGradient3121"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3123"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3125"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3340"
+       id="radialGradient3134"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.1094029,0,0,2.3370305,-73.764431,10.35981)"
+       cx="21.929186"
+       cy="-3.2182934"
+       fx="21.929186"
+       fy="-3.2182934"
+       r="13" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3138"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.377542,0,0,2.3892631,-30.211602,-38.123458)"
+       cx="22.5"
+       cy="28.116049"
+       fx="22.5"
+       fy="28.116049"
+       r="14.537862" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient3141"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2922213,0,0,0.34100651,-6.8343259,25.695418)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3144"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4461825,0,0,2.4582417,-31.301145,-40.340245)"
+       cx="22.5"
+       cy="28.116049"
+       fx="22.5"
+       fy="28.116049"
+       r="14.537862" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3837"
+       id="linearGradient3146"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0340809,0,0,1.1159395,0.47116784,-2.1305226)"
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3148"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2684"
+       id="linearGradient3150"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5075"
+       id="linearGradient3156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3158"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3160"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+  </defs>
+  <metadata
+     id="metadata1312">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Lapo Calamandrei</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>media</rdf:li>
+            <rdf:li>player</rdf:li>
+            <rdf:li>record</rdf:li>
+            <rdf:li>music</rdf:li>
+            <rdf:li>sound</rdf:li>
+            <rdf:li>video</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(-0.68905195,0,0,0.8954059,48.834569,7.5492018)"
+     id="layer4"
+     style="fill:url(#radialGradient3846);fill-opacity:1;display:inline" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 38.215122,22.420146 a 14.477133,14.507213 0 0 1 -28.9542657,0 14.477133,14.507213 0 1 1 28.9542657,0 z"
+     id="path3835"
+     style="opacity:0.15;color:#000000;fill:url(#radialGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3146);stroke-width:3.36944985;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 45.477198,38.115266 a 20.216462,5.3349602 0 0 1 -40.4329242,0 20.216462,5.3349602 0 1 1 40.4329242,0 z"
+     id="path2226"
+     style="opacity:0.03999999;color:#000000;fill:url(#radialGradient3141);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 37.354019,22.875867 a 14.070901,14.100139 0 0 1 -28.1418019,0 14.070901,14.100139 0 1 1 28.1418019,0 z"
+     id="path2525"
+     style="color:#000000;fill:url(#radialGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.12315083;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     inkscape:connector-curvature="0"
+     d="m 36.209731,22.87587 a 12.916233,12.916233 0 0 1 -25.832466,0 12.916233,12.916233 0 1 1 25.832466,0 z"
+     id="path2527"
+     style="color:#000000;fill:none;stroke:#f77d7d;stroke-width:1.12315106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     inkscape:connector-curvature="0"
+     d="M 23.117991,9.3980567 C 16.065134,9.4874482 10.309113,15.004888 9.8507809,21.963298 16.722014,24.79002 25.429344,20.333357 35.842726,18.164933 35.069538,15.077877 30.727092,9.3980567 23.293484,9.3980567 c -0.05808,0 -0.117591,-7.335e-4 -0.175493,0 z"
+     id="path2529"
+     style="opacity:0.6;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+  <g
+     transform="matrix(1.1231501,0,0,1.1231501,-1.694229,-3.6162014)"
+     id="g4000">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 40.565946,42.917735 0,-27.30988 -17.963571,13.2673 17.963571,14.04258 z"
+       id="path2682"
+       style="opacity:0.15;color:#000000;fill:url(#radialGradient3148);fill-opacity:1;stroke:url(#linearGradient3150);stroke-width:3.5710001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 40.221792,41.405833 0,-24.902568 -16.608417,12.451285 16.608417,12.451283 z"
+       id="path3375"
+       style="color:#000000;fill:url(#radialGradient3152);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 40.221792,41.405833 0,-24.902568 -16.608417,12.451285 16.608417,12.451283 z"
+       id="path2479"
+       style="color:#000000;fill:url(#radialGradient3154);fill-opacity:1;stroke:url(#linearGradient3156);stroke-width:2.08500004;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 39.877266,17.286284 0,23.336517 L 24.308998,28.954542 39.877266,17.286284 z m -0.689052,1.566961 -13.479579,10.101297 13.479579,10.101298 0,-20.202595 z"
+       id="path2481"
+       style="color:#000000;fill:url(#radialGradient3158);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       inkscape:connector-curvature="0"
+       d="m 39.230907,18.797738 0,10.465057 c -2.941699,-0.0401 -6.314579,-0.30942 -11.756948,-1.678886 l 11.756948,-8.786171 z"
+       id="path2339"
+       style="opacity:0.5;color:#000000;fill:url(#radialGradient3160);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/bp-rm-all.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1243 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="48"
+   height="48"
+   id="svg1307">
+  <defs
+     id="defs1309">
+    <linearGradient
+       id="linearGradient3838">
+      <stop
+         id="stop3840"
+         style="stop-color:#edd400;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3842"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3837">
+      <stop
+         id="stop3839"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3841"
+         style="stop-color:#ffffff;stop-opacity:0.78350514"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2257">
+      <stop
+         id="stop2259"
+         style="stop-color:#ef2929;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2261"
+         style="stop-color:#cc0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3340">
+      <stop
+         id="stop3342"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3344"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2228"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient1368"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient2263"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3843"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3845"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient2690"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <radialGradient
+       cx="107.5884"
+       cy="83.990814"
+       r="12.551644"
+       fx="107.5884"
+       fy="83.990814"
+       id="radialGradient2314"
+       xlink:href="#linearGradient2691"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient2306"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <linearGradient
+       id="linearGradient3340-2">
+      <stop
+         id="stop3342-1"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3344-3"
+         style="stop-color:#ffffff;stop-opacity:0.62886596"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2691">
+      <stop
+         id="stop2693"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2695"
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5075">
+      <stop
+         id="stop5077"
+         style="stop-color:#adb0a8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5079"
+         style="stop-color:#ae9b00;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2588"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2684">
+      <stop
+         id="stop2686"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2688"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient3040"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3044"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient3047"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3050"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3052"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3054"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3058"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3844"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3846"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3848"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3850"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3852"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3854"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3856"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3858"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3940"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3942"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3944"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3946"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3948"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3950"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3952"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3954"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3957"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3960"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3963"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3965"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3968"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3971"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3973"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3982"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3984"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3986"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3988"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3990"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3992"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3994"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3863"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3865"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3867"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3869"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3871"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3873"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3875"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3980"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3983"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3987"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3989"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3993"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3996"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3998"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4007"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient4009"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4011"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4013"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient4015"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4017"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4019"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient3134"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.1094029,0,0,2.3370305,-73.764431,10.35981)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3138"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.377542,0,0,2.3892631,-30.211602,-38.123458)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient3141"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2922213,0,0,0.34100651,-6.8343259,25.695418)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3144"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4461825,0,0,2.4582417,-31.301145,-40.340245)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3146"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0340809,0,0,1.1159395,0.47116784,-2.1305226)" />
+    <linearGradient
+       x1="9.5621576"
+       y1="6.952559"
+       x2="14.766725"
+       y2="14.200403"
+       id="linearGradient2249"
+       xlink:href="#linearGradient2243"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="20.764477"
+       cy="19.540945"
+       r="14.799585"
+       fx="20.764477"
+       fy="19.540945"
+       id="radialGradient9318"
+       xlink:href="#linearGradient9320"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.449398,-0.216492,0.564416,1.171617,-1.432288,2.546108)" />
+    <linearGradient
+       x1="11.996646"
+       y1="19.591736"
+       x2="17.774033"
+       y2="16.234594"
+       id="linearGradient8582"
+       xlink:href="#linearGradient8576"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.014891,0,0,1.00592,-0.331699,-0.140188)" />
+    <linearGradient
+       x1="10.615304"
+       y1="28.122555"
+       x2="2.0069747"
+       y2="27.234833"
+       id="linearGradient15309"
+       xlink:href="#linearGradient15303"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1767,0,0,1.176702,-0.819769,-5.307055)" />
+    <linearGradient
+       x1="12.233433"
+       y1="12.363223"
+       x2="16.870909"
+       y2="17.110941"
+       id="linearGradient11653"
+       xlink:href="#linearGradient11647"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.965926,0.262102,-0.258819,0.978177,2.957072,-5.939741)" />
+    <linearGradient
+       x1="16.92873"
+       y1="34.010502"
+       x2="14.045431"
+       y2="29"
+       id="linearGradient7996"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.861487,1.49214,-17.87951,-13.91085)" />
+    <linearGradient
+       x1="14.045431"
+       y1="37.57589"
+       x2="14.045431"
+       y2="29"
+       id="linearGradient7994"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.801305,1.3879,-12.8183,-11.14456)" />
+    <linearGradient
+       x1="15.096997"
+       y1="36.96777"
+       x2="14.045431"
+       y2="29"
+       id="linearGradient7992"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.843479,1.460948,-19.74053,-11.13423)" />
+    <linearGradient
+       x1="19.616243"
+       y1="39.252983"
+       x2="18.485983"
+       y2="29.909071"
+       id="linearGradient7990"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.797961,1.38211,-15.72934,-9.277499)" />
+    <linearGradient
+       x1="9.1053896"
+       y1="38.828144"
+       x2="10.146956"
+       y2="30.140831"
+       id="linearGradient7988"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.797491,1.381294,-15.69909,-9.225099)" />
+    <linearGradient
+       id="linearGradient5739">
+      <stop
+         id="stop5741"
+         style="stop-color:#c4a000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5743"
+         style="stop-color:#c4a000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11647">
+      <stop
+         id="stop11649"
+         style="stop-color:#c17d10;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop11651"
+         style="stop-color:#9b650c;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15303">
+      <stop
+         id="stop15305"
+         style="stop-color:#b30000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop15311"
+         style="stop-color:#ff5c5c;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop15307"
+         style="stop-color:#c30000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="22.571428"
+       cy="30.857143"
+       r="15.571428"
+       fx="22.571428"
+       fy="30.857143"
+       id="radialGradient3564"
+       xlink:href="#linearGradient3558"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.651376,0,10.75754)" />
+    <linearGradient
+       id="linearGradient3558">
+      <stop
+         id="stop3560"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3562"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8576">
+      <stop
+         id="stop8578"
+         style="stop-color:#dac203;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8584"
+         style="stop-color:#fdec69;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop8580"
+         style="stop-color:#fdef7e;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9320">
+      <stop
+         id="stop9322"
+         style="stop-color:#fef088;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop9324"
+         style="stop-color:#fde63a;stop-opacity:1"
+         offset="0.5" />
+      <stop
+         id="stop9326"
+         style="stop-color:#dac203;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2243">
+      <stop
+         id="stop2245"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2247"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="10.615304"
+       y1="28.122555"
+       x2="2.0069747"
+       y2="27.234833"
+       id="linearGradient3478"
+       xlink:href="#linearGradient15303"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1767002,0,0,1.1767026,-3.1134726,-7.1721388)" />
+    <linearGradient
+       x1="11.996646"
+       y1="19.591736"
+       x2="17.774033"
+       y2="16.234594"
+       id="linearGradient3482"
+       xlink:href="#linearGradient8576"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.014891,0,0,1.00592,-3.2506433,-0.60854196)" />
+    <linearGradient
+       x1="16.92873"
+       y1="34.010502"
+       x2="14.045431"
+       y2="29"
+       id="linearGradient3485"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.861487,1.49214,-20.798454,-14.379204)" />
+    <linearGradient
+       x1="14.045431"
+       y1="37.57589"
+       x2="14.045431"
+       y2="29"
+       id="linearGradient3488"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.801305,1.3879,-15.737244,-11.612914)" />
+    <linearGradient
+       x1="15.096997"
+       y1="36.96777"
+       x2="14.045431"
+       y2="29"
+       id="linearGradient3491"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.843479,1.460948,-22.659474,-11.602584)" />
+    <linearGradient
+       x1="19.616243"
+       y1="39.252983"
+       x2="18.485983"
+       y2="29.909071"
+       id="linearGradient3494"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.797961,1.38211,-18.648284,-9.745853)" />
+    <linearGradient
+       x1="9.1053896"
+       y1="38.828144"
+       x2="10.146956"
+       y2="30.140831"
+       id="linearGradient3498"
+       xlink:href="#linearGradient5739"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.866026,-0.5,0.797491,1.381294,-18.618034,-9.693453)" />
+    <radialGradient
+       cx="20.764477"
+       cy="19.540945"
+       r="14.799585"
+       fx="20.764477"
+       fy="19.540945"
+       id="radialGradient3501"
+       xlink:href="#linearGradient9320"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.449398,-0.216492,0.564416,1.171617,-4.3512323,2.077754)" />
+    <linearGradient
+       x1="9.5621576"
+       y1="6.952559"
+       x2="14.766725"
+       y2="14.200403"
+       id="linearGradient3504"
+       xlink:href="#linearGradient2243"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-2.9189443,-0.46835396)" />
+    <linearGradient
+       x1="12.233433"
+       y1="12.363223"
+       x2="16.870909"
+       y2="17.110941"
+       id="linearGradient3507"
+       xlink:href="#linearGradient11647"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.965926,0.262102,-0.258819,0.978177,0.0381277,-6.408095)" />
+  </defs>
+  <metadata
+     id="metadata1312">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Lapo Calamandrei</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>media</rdf:li>
+            <rdf:li>player</rdf:li>
+            <rdf:li>record</rdf:li>
+            <rdf:li>music</rdf:li>
+            <rdf:li>sound</rdf:li>
+            <rdf:li>video</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(-0.68905195,0,0,0.8954059,48.834569,7.5492018)"
+     id="layer4"
+     style="fill:url(#radialGradient3846);fill-opacity:1;display:inline" />
+  <path
+     d="m 38.215122,22.420146 a 14.477133,14.507213 0 0 1 -28.9542657,0 14.477133,14.507213 0 1 1 28.9542657,0 z"
+     id="path3835"
+     style="opacity:0.15;color:#000000;fill:url(#radialGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3146);stroke-width:3.36944985;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     d="m 45.477198,38.115266 a 20.216462,5.3349602 0 0 1 -40.4329242,0 20.216462,5.3349602 0 1 1 40.4329242,0 z"
+     id="path2226"
+     style="opacity:0.03999999;color:#000000;fill:url(#radialGradient3141);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     d="m 37.354019,22.875867 a 14.070901,14.100139 0 0 1 -28.1418019,0 14.070901,14.100139 0 1 1 28.1418019,0 z"
+     id="path2525"
+     style="color:#000000;fill:url(#radialGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.12315083;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     d="m 36.209731,22.87587 a 12.916233,12.916233 0 0 1 -25.832466,0 12.916233,12.916233 0 1 1 25.832466,0 z"
+     id="path2527"
+     style="color:#000000;fill:none;stroke:#f77d7d;stroke-width:1.12315106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     d="M 23.117991,9.3980567 C 16.065134,9.4874482 10.309113,15.004888 9.8507809,21.963298 16.722014,24.79002 25.429344,20.333357 35.842726,18.164933 35.069538,15.077877 30.727092,9.3980567 23.293484,9.3980567 c -0.05808,0 -0.117591,-7.335e-4 -0.175493,0 z"
+     id="path2529"
+     style="opacity:0.6;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+  <path
+     d="m 3.9973675,1.3096646 c 1.7297758,-0.87805946 4.1259252,0.0035 5.0117902,1.5573199 l 4.1702393,9.4847145 c 0.885865,1.55382 0.633416,3.369304 -0.566029,4.070586 -1.199445,0.701283 -2.8782333,0.01494 -3.7640993,-1.538881 L 2.9308059,6.5276765 C 2.0449411,4.9738526 2.3018093,2.1703547 3.9973675,1.3096646 z"
+     id="path7966"
+     style="fill:url(#linearGradient3507);fill-opacity:1;fill-rule:evenodd;stroke:#8f5902;stroke-width:1.00632107;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
+  <path
+     d="M 4.5273258,2.2675564 C 5.9492788,1.4817366 7.3480307,2.0748153 8.2226237,3.6069441 L 12.670762,13.693669 10.239241,15.113531 3.9426298,6.2931951 C 3.0680368,4.7610665 3.0663828,3.0749226 4.5273258,2.2675564 z"
+     id="path14575"
+     style="opacity:0.42307691;fill:none;stroke:url(#linearGradient3504);stroke-width:1.00569046;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
+  <path
+     d="M 11.861904,22.325213 C 11.066409,26.612048 12.49587,36.277714 18.121137,42.01921 22.467891,42.160501 32.111228,38.601529 38.652232,31.822172 29.416056,27.305462 23.115703,16.099195 18.216925,18.539498 l -6.355021,3.785715 z"
+     id="path7968"
+     style="fill:url(#radialGradient3501);fill-opacity:1;fill-rule:evenodd;stroke:#c4a000;stroke-width:1.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  <path
+     d="m 13.419415,23.89892 c 2.349016,6.270271 2.489443,12.788302 7.183783,17.919884"
+     id="path7972"
+     style="fill:none;stroke:url(#linearGradient3498);stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  <path
+     d="M 12.999836,22.94577 C 12.087743,23.453874 12.839457,35.465984 18.58409,40.946137 25.970076,40.75924 34.107806,34.54995 36.977042,32.108291 27.477626,26.124169 22.052239,17.346522 18.496252,19.534707 l -5.496416,3.411063 z"
+     id="path7970"
+     style="opacity:0.46153846;fill:none;stroke:#ffffff;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  <path
+     d="m 20.929541,21.804978 c 0.866361,-0.749 5.75002,6.087667 14.998501,12.381801"
+     id="path7974"
+     style="fill:none;stroke:url(#linearGradient3494);stroke-width:0.9999997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  <path
+     d="m 15.093949,22.395567 c 3.71231,5.347495 2.96299,12.424255 8.840816,18.08111"
+     id="path7976"
+     style="fill:none;stroke:url(#linearGradient3491);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  <path
+     d="m 20.064954,22.307467 c 0,0 8.17673,13.071629 11.181934,15.104561"
+     id="path7978"
+     style="fill:none;stroke:url(#linearGradient3488);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  <path
+     d="m 16.381364,21.732341 c 3.447146,2.916815 8.702557,14.163188 11.310014,17.47775"
+     id="path7980"
+     style="fill:none;stroke:url(#linearGradient3485);stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  <path
+     d="M 5.5900009,17.593512 17.051672,11.034606 c 0.59865,2.382571 -0.34184,3.240585 1.79595,7.147713 l -7.910292,4.52664 C 9.4839017,19.231539 7.3724437,19.298661 5.5900009,17.593512 z"
+     id="path7982"
+     style="fill:url(#linearGradient3482);fill-opacity:1;fill-rule:evenodd;stroke:#c4a000;stroke-width:1.01039541;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+  <path
+     d="M 11.124505,20.777335 C 10.310544,19.356118 8.5621917,18.540993 7.4451857,17.650106 l 8.7574223,-4.933738 c -0.01959,1.480968 0.566905,3.088206 0.875611,4.518667 l -5.953714,3.5423 z"
+     id="path11655"
+     style="opacity:0.2472527;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  <rect
+     width="13.015025"
+     height="3.4598923"
+     rx="0.99999756"
+     ry="0.99999857"
+     x="-3.7064905"
+     y="22.30971"
+     transform="matrix(0.86602487,-0.50000092,0.49999974,0.86602555,0,0)"
+     id="rect7984"
+     style="fill:url(#linearGradient3478);fill-opacity:1;fill-rule:evenodd;stroke:#690000;stroke-width:0.99999839;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+  <path
+     d="m -17.172594,4.0836182 a 2.1465743,2.1465743 0 1 1 -4.293148,0 2.1465743,2.1465743 0 1 1 4.293148,0 z"
+     transform="matrix(0.583557,0.156364,-0.156364,0.583557,17.538876,4.690428)"
+     id="path10193"
+     style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#8f5902;stroke-width:1.65524161;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+  <path
+     d="m 24.81589,40.086885 c 0,0 1.506584,-0.500648 2.176098,-0.941755 -1.237437,-1.944544 -3.403341,-5.895665 -5.403126,-8.87592 1.193243,6.540738 3.227028,9.817675 3.227028,9.817675 z"
+     id="path3558"
+     style="opacity:0.31730772;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+  <path
+     d="m 28.222861,38.589916 2.025998,-1.08517 C 28.304315,35.648591 22.780362,27.388848 22.780362,27.388848 l 5.442499,11.201068 z"
+     id="path3560"
+     style="opacity:0.31730772;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+  <path
+     d="m 32.739578,35.919455 2.436371,-1.743752 c -3.181981,-1.325825 -11.58654,-9.880449 -11.58654,-9.880449 2.382935,3.011895 6.767234,8.612306 9.150169,11.624201 z"
+     id="path3562"
+     style="opacity:0.31730772;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+  <path
+     d="m 36.234745,33.448854 1.692313,-1.409508 c -3.314563,-1.502602 -12.495677,-9.912017 -12.495677,-9.912017 0,0 6.074587,9.200205 10.803364,11.321525 z"
+     id="path3565"
+     style="opacity:0.31730772;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+  <path
+     d="m 21.457132,41.103351 c 0,0 1.197225,-0.279677 2.043516,-0.455619 -1.458408,-1.237437 -3.801089,-4.437257 -5.093767,-8.610755 0.530331,6.894292 3.050251,9.066374 3.050251,9.066374 z"
+     id="path2265"
+     style="opacity:0.31730766;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+  <path
+     d="m 18.451928,41.501098 c 0,0 1.24802,-0.01368 1.24802,-0.01368 -2.298097,-2.519069 -3.138175,-5.365335 -4.430854,-9.40625 -0.132581,4.684583 3.182834,9.419926 3.182834,9.419926 z"
+     id="path2267"
+     style="opacity:0.31730766;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/bp-toggle.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,948 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   width="48"
+   height="48"
+   id="svg1307">
+  <defs
+     id="defs1309">
+    <linearGradient
+       id="linearGradient3838">
+      <stop
+         id="stop3840"
+         style="stop-color:#edd400;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3842"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3837">
+      <stop
+         id="stop3839"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3841"
+         style="stop-color:#ffffff;stop-opacity:0.78350514"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2257">
+      <stop
+         id="stop2259"
+         style="stop-color:#ef2929;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2261"
+         style="stop-color:#cc0000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3340">
+      <stop
+         id="stop3342"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3344"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2228"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient1368"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient2263"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3843"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3845"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient2690"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <radialGradient
+       cx="107.5884"
+       cy="83.990814"
+       r="12.551644"
+       fx="107.5884"
+       fy="83.990814"
+       id="radialGradient2314"
+       xlink:href="#linearGradient2691"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient2306"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <linearGradient
+       id="linearGradient3340-2">
+      <stop
+         id="stop3342-1"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3344-3"
+         style="stop-color:#ffffff;stop-opacity:0.62886596"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2691">
+      <stop
+         id="stop2693"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2695"
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5075">
+      <stop
+         id="stop5077"
+         style="stop-color:#adb0a8;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop5079"
+         style="stop-color:#ae9b00;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2588"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2684">
+      <stop
+         id="stop2686"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2688"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient3040"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3044"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient3047"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3050"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3052"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3054"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3058"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3844"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3846"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3848"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3850"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3852"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3854"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3856"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3858"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3940"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3942"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3944"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3946"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3948"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-45.00042,-71.09425)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3950"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3952"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3954"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3957"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3960"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3963"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3965"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3968"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3971"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3973"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3982"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3984"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3986"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3988"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3990"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3992"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3994"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3863"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3865"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3867"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3869"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3871"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3873"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3875"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3980"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3983"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3987"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3989"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3993"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3996"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3998"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4007"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient4009"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4011"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4013"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient4015"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4017"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient4019"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="21.929186"
+       cy="-3.2182934"
+       r="13"
+       fx="21.929186"
+       fy="-3.2182934"
+       id="radialGradient3134"
+       xlink:href="#linearGradient3340"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.1094029,0,0,2.3370305,-73.764431,10.35981)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3138"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.377542,0,0,2.3892631,-30.211602,-38.123458)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient3141"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2922213,0,0,0.34100651,-6.8343259,25.695418)" />
+    <radialGradient
+       cx="22.5"
+       cy="28.116049"
+       r="14.537862"
+       fx="22.5"
+       fy="28.116049"
+       id="radialGradient3144"
+       xlink:href="#linearGradient2257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4461825,0,0,2.4582417,-31.301145,-40.340245)" />
+    <linearGradient
+       x1="21.702389"
+       y1="8.9115314"
+       x2="21.816015"
+       y2="35.546108"
+       id="linearGradient3146"
+       xlink:href="#linearGradient3837"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0340809,0,0,1.1159395,0.47116784,-2.1305226)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3148"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729"
+       id="linearGradient3150"
+       xlink:href="#linearGradient2684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3152"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3154"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <linearGradient
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95"
+       id="linearGradient3156"
+       xlink:href="#linearGradient5075"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3158"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+    <radialGradient
+       cx="25.03499"
+       cy="24.25"
+       r="14.034989"
+       fx="25.03499"
+       fy="24.25"
+       id="radialGradient3160"
+       xlink:href="#linearGradient3838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)" />
+  </defs>
+  <metadata
+     id="metadata1312">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Lapo Calamandrei</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>media</rdf:li>
+            <rdf:li>player</rdf:li>
+            <rdf:li>record</rdf:li>
+            <rdf:li>music</rdf:li>
+            <rdf:li>sound</rdf:li>
+            <rdf:li>video</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(-0.68905195,0,0,0.8954059,48.834569,7.5492018)"
+     id="layer4"
+     style="fill:url(#radialGradient3846);fill-opacity:1;display:inline" />
+  <path
+     d="m 38.215122,22.420146 a 14.477133,14.507213 0 0 1 -28.9542657,0 14.477133,14.507213 0 1 1 28.9542657,0 z"
+     id="path3835"
+     style="opacity:0.15;color:#000000;fill:url(#radialGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3146);stroke-width:3.36944985;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     d="m 45.477198,38.115266 a 20.216462,5.3349602 0 0 1 -40.4329242,0 20.216462,5.3349602 0 1 1 40.4329242,0 z"
+     id="path2226"
+     style="opacity:0.03999999;color:#000000;fill:url(#radialGradient3141);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     d="m 37.354019,22.875867 a 14.070901,14.100139 0 0 1 -28.1418019,0 14.070901,14.100139 0 1 1 28.1418019,0 z"
+     id="path2525"
+     style="color:#000000;fill:url(#radialGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1.12315083;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     d="m 36.209731,22.87587 a 12.916233,12.916233 0 0 1 -25.832466,0 12.916233,12.916233 0 1 1 25.832466,0 z"
+     id="path2527"
+     style="color:#000000;fill:none;stroke:#f77d7d;stroke-width:1.12315106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+  <path
+     d="M 23.117991,9.3980567 C 16.065134,9.4874482 10.309113,15.004888 9.8507809,21.963298 16.722014,24.79002 25.429344,20.333357 35.842726,18.164933 35.069538,15.077877 30.727092,9.3980567 23.293484,9.3980567 c -0.05808,0 -0.117591,-7.335e-4 -0.175493,0 z"
+     id="path2529"
+     style="opacity:0.6;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/db-cont.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1162 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg53383"
+   sodipodi:version="0.32"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="db-cont.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   version="1.1">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective31" />
+    <linearGradient
+       id="linearGradient3264">
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="0"
+         id="stop3266" />
+      <stop
+         id="stop3276"
+         offset="0.25"
+         style="stop-color:#f8f8f8;stop-opacity:1;" />
+      <stop
+         id="stop3272"
+         offset="0.5"
+         style="stop-color:#e2e2e2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#b0b0b0;stop-opacity:1;"
+         offset="0.75"
+         id="stop3274" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="1"
+         id="stop3268" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3264"
+       id="linearGradient3281"
+       gradientUnits="userSpaceOnUse"
+       x1="14.462892"
+       y1="12.284524"
+       x2="34.534348"
+       y2="39.684914"
+       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)" />
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.32673267;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd1"
+       gradientUnits="userSpaceOnUse"
+       x1="99.7773"
+       y1="15.4238"
+       x2="153.0005"
+       y2="248.6311">
+      <stop
+         offset="0"
+         style="stop-color:#184375"
+         id="stop53300" />
+      <stop
+         offset="1"
+         style="stop-color:#C8BDDC"
+         id="stop53302" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd1"
+       id="linearGradient53551"
+       gradientUnits="userSpaceOnUse"
+       x1="99.7773"
+       y1="15.4238"
+       x2="153.0005"
+       y2="248.6311"
+       gradientTransform="matrix(0.200685,0.000000,0.000000,0.200685,-0.585758,-1.050787)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3264"
+       id="linearGradient3760"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)"
+       x1="14.462892"
+       y1="12.284524"
+       x2="34.534348"
+       y2="39.684914" />
+    <linearGradient
+       id="linearGradient3340">
+      <stop
+         id="stop3342"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop3344"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0.62886596;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5075">
+      <stop
+         id="stop5077"
+         offset="0"
+         style="stop-color:#adb0a8;stop-opacity:1;" />
+      <stop
+         id="stop5079"
+         offset="1"
+         style="stop-color:#464744;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop2588"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2684">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2686" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop2688" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective49"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <radialGradient
+       r="13"
+       fy="-3.2182934"
+       fx="21.929186"
+       cy="-3.2182934"
+       cx="21.929186"
+       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3111"
+       xlink:href="#linearGradient3340-3"
+       inkscape:collect="always" />
+    <radialGradient
+       r="14.537862"
+       fy="28.116049"
+       fx="22.5"
+       cy="28.116049"
+       cx="22.5"
+       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3109"
+       xlink:href="#linearGradient2257"
+       inkscape:collect="always" />
+    <radialGradient
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3107"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.546108"
+       x2="21.816015"
+       y1="8.9115314"
+       x1="21.702389"
+       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3105"
+       xlink:href="#linearGradient3837"
+       inkscape:collect="always" />
+    <radialGradient
+       r="14.537862"
+       fy="28.116049"
+       fx="22.5"
+       cy="28.116049"
+       cx="22.5"
+       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3103"
+       xlink:href="#linearGradient2257"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4019"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4017"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient4015"
+       y2="95"
+       x2="70.826942"
+       y1="124.11652"
+       x1="71.288956" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4013"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4011"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient4009"
+       y2="88.923729"
+       x2="70.951942"
+       y1="101.74152"
+       x1="70.913956" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4007"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient3998"
+       y2="88.923729"
+       x2="70.951942"
+       y1="101.74152"
+       x1="70.913956" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3996"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3993"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient3989"
+       y2="95"
+       x2="70.826942"
+       y1="124.11652"
+       x1="71.288956" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3987"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3983"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3980"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3875"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3873"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(0.68905195,0,0,0.8954059,-16.673875,-56.109009)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient3871"
+       y2="95"
+       x2="70.826942"
+       y1="124.11652"
+       x1="71.288956" />
+    <radialGradient
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3869"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3867"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(0.77737532,0,0,1.0101799,-22.870326,-67.091915)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient3865"
+       y2="88.923729"
+       x2="70.951942"
+       y1="101.74152"
+       x1="70.913956" />
+    <radialGradient
+       gradientTransform="matrix(0.68905195,0,0,1.0367194,14.333752,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3863"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3994"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3992"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient3990"
+       y2="95"
+       x2="70.826942"
+       y1="124.11652"
+       x1="71.288956" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3988"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3986"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient3984"
+       y2="88.923729"
+       x2="70.951942"
+       y1="101.74152"
+       x1="70.913956" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3982"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(-0.77737532,0,0,1.0101799,86.038647,-67.091915)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient3973"
+       y2="88.923729"
+       x2="70.951942"
+       y1="101.74152"
+       x1="70.913956" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3971"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3968"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(-0.68905195,0,0,0.8954059,79.842196,-56.109009)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient3965"
+       y2="95"
+       x2="70.826942"
+       y1="124.11652"
+       x1="71.288956" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3963"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3960"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(-0.68905195,0,0,1.0367194,48.834569,4.1223502)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3957"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3954"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3952"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3950"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="translate(-45.00042,-71.09425)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient3948"
+       y2="95"
+       x2="70.826942"
+       y1="124.11652"
+       x1="71.288956" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3946"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3944"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient3942"
+       y2="88.923729"
+       x2="70.951942"
+       y1="101.74152"
+       x1="70.913956" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3940"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3858"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3856"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3854"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3852"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3850"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3848"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3846"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3844"
+       fy="24.25"
+       fx="25.03499"
+       r="14.034989"
+       cy="24.25"
+       cx="25.03499" />
+    <linearGradient
+       gradientTransform="translate(-45.00042,-71.09425)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient3058"
+       y2="95"
+       x2="70.826942"
+       y1="124.11652"
+       x1="71.288956" />
+    <linearGradient
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient3054"
+       y2="88.923729"
+       x2="70.951942"
+       y1="101.74152"
+       x1="70.913956" />
+    <linearGradient
+       gradientTransform="matrix(0.920697,0,0,0.99358,1.9279679,1.3227785)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3837"
+       id="linearGradient3052"
+       y2="35.546108"
+       x2="21.816015"
+       y1="8.9115314"
+       x1="21.702389" />
+    <radialGradient
+       gradientTransform="matrix(2.1779658,0,0,2.1887027,-26.360604,-32.69736)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3050"
+       fy="28.116049"
+       fx="22.5"
+       r="14.537862"
+       cy="28.116049"
+       cx="22.5" />
+    <radialGradient
+       gradientTransform="matrix(1.150533,0,0,0.30361615,-4.5765,26.097687)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient8662"
+       id="radialGradient3047"
+       fy="36.421127"
+       fx="24.837126"
+       r="15.644737"
+       cy="36.421127"
+       cx="24.837126" />
+    <radialGradient
+       gradientTransform="matrix(2.1168515,0,0,2.1272874,-25.390527,-30.723638)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3044"
+       fy="28.116049"
+       fx="22.5"
+       r="14.537862"
+       cy="28.116049"
+       cx="22.5" />
+    <radialGradient
+       gradientTransform="matrix(3.658819,0,0,2.080782,-64.167916,12.443583)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3340-3"
+       id="radialGradient3040"
+       fy="-3.2182934"
+       fx="21.929186"
+       r="13"
+       cy="-3.2182934"
+       cx="21.929186" />
+    <linearGradient
+       id="linearGradient2684-4">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop2686-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop2688-6" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop2586-5" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0"
+         id="stop2588-7" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5075-2">
+      <stop
+         offset="0"
+         style="stop-color:#adb0a8;stop-opacity:1"
+         id="stop5077-8" />
+      <stop
+         offset="1"
+         style="stop-color:#ae9b00;stop-opacity:1"
+         id="stop5079-6" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2691-4">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop2693-2" />
+      <stop
+         offset="1"
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         id="stop2695-6" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3340-2">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop3342-1" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0.62886596"
+         id="stop3344-3" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-45.00042,-71.09425)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient2306-0"
+       y2="95"
+       x2="70.826942"
+       y1="124.11652"
+       x1="71.288956" />
+    <radialGradient
+       gradientTransform="matrix(0.05324342,-0.836238,2.019473,0.128568,-151.9195,108.0768)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2691-4"
+       id="radialGradient2314-7"
+       fy="83.990814"
+       fx="107.5884"
+       r="12.551644"
+       cy="83.990814"
+       cx="107.5884" />
+    <linearGradient
+       gradientTransform="matrix(1.128181,0,0,1.128181,-53.99314,-83.36009)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient2690-7"
+       y2="88.923729"
+       x2="70.951942"
+       y1="101.74152"
+       x1="70.913956" />
+    <radialGradient
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2257"
+       id="radialGradient3845"
+       fy="28.116049"
+       fx="22.5"
+       r="14.537862"
+       cy="28.116049"
+       cx="22.5" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3837"
+       id="linearGradient3843"
+       y2="35.546108"
+       x2="21.816015"
+       y1="8.9115314"
+       x1="21.702389" />
+    <radialGradient
+       gradientTransform="matrix(2.365562,0,0,2.202845,-30.72517,-34.23996)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2257"
+       id="radialGradient2263"
+       fy="28.116049"
+       fx="22.5"
+       r="14.537862"
+       cy="28.116049"
+       cx="22.5" />
+    <radialGradient
+       gradientTransform="matrix(3.658819,0,0,2.080782,-62.4164,12.76204)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3340-3"
+       id="radialGradient1368"
+       fy="-3.2182934"
+       fx="21.929186"
+       r="13"
+       cy="-3.2182934"
+       cx="21.929186" />
+    <radialGradient
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient8662"
+       id="radialGradient2228"
+       fy="36.421127"
+       fx="24.837126"
+       r="15.644737"
+       cy="36.421127"
+       cx="24.837126" />
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop8664" />
+      <stop
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0"
+         id="stop8666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3340-3">
+      <stop
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1"
+         id="stop3342-4" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0"
+         id="stop3344-6" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2257">
+      <stop
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1"
+         id="stop2259" />
+      <stop
+         offset="1"
+         style="stop-color:#cc0000;stop-opacity:1"
+         id="stop2261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3837">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1"
+         id="stop3839" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0.78350514"
+         id="stop3841" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3838">
+      <stop
+         offset="0"
+         style="stop-color:#ccb600;stop-opacity:1;"
+         id="stop3840" />
+      <stop
+         offset="1"
+         style="stop-color:#fff59d;stop-opacity:1;"
+         id="stop3842" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient3362"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1578206,0,-3.8271488)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4215"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4218"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5075-2"
+       id="linearGradient4220"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.88127002,0,0,1.0056752,-36.819966,-72.182713)"
+       x1="71.288956"
+       y1="124.11652"
+       x2="70.826942"
+       y2="95" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4223"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3838"
+       id="radialGradient4226"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.88127002,0,0,1.1643915,2.8375548,-4.5338561)"
+       cx="25.03499"
+       cy="24.25"
+       fx="25.03499"
+       fy="24.25"
+       r="14.034989" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2684-4"
+       id="linearGradient4228"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.99423209,0,0,1.1345837,-44.74498,-84.518165)"
+       x1="70.913956"
+       y1="101.74152"
+       x2="70.951942"
+       y2="88.923729" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:showpageshadow="false"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.11764706"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="10.133209"
+     inkscape:cx="30.849263"
+     inkscape:cy="22.600978"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1074"
+     inkscape:window-height="718"
+     inkscape:window-x="151"
+     inkscape:window-y="37"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>system</rdf:li>
+            <rdf:li>applications</rdf:li>
+            <rdf:li>group</rdf:li>
+            <rdf:li>category</rdf:li>
+            <rdf:li>admin</rdf:li>
+            <rdf:li>root</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="shadow"
+     id="layer2"
+     inkscape:groupmode="layer" />
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       sodipodi:type="arc"
+       style="opacity:0.64772728;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.62180054;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path3283"
+       sodipodi:cx="23.511301"
+       sodipodi:cy="23.781593"
+       sodipodi:rx="12.727922"
+       sodipodi:ry="12.727922"
+       d="m 36.239223,23.781593 a 12.727922,12.727922 0 1 1 -25.455844,0 12.727922,12.727922 0 1 1 25.455844,0 z"
+       transform="matrix(0.616598,0,0,0.616598,6.8161989,8.539674)" />
+    <g
+       transform="matrix(-0.68905195,0,0,0.8954059,93.73874,-31.255459)"
+       id="layer4-1"
+       style="fill:url(#radialGradient3362);fill-opacity:1;display:inline" />
+    <path
+       style="opacity:0.15;color:#000000;fill:url(#radialGradient4226);fill-opacity:1;stroke:url(#linearGradient4228);stroke-width:4.27993584;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path2682-2"
+       d="m 13.412795,39.039184 0,-30.6730942 22.974692,14.9011692 -22.974692,15.771925 z"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;fill:url(#radialGradient4223);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path3375-6"
+       d="m 13.852954,37.341091 0,-27.9693214 21.241504,13.9846624 -21.241504,13.984659 z"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;fill:url(#radialGradient4218);fill-opacity:1;stroke:url(#linearGradient4220);stroke-width:2.4989264;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path2479-2"
+       d="m 13.852954,37.341091 0,-27.9693214 21.241504,13.9846624 -21.241504,13.984659 z"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;fill:url(#radialGradient4215);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path2481-3"
+       d="m 14.293589,10.251218 0,26.210411 L 34.204784,23.356423 14.293589,10.251218 z m 0.88127,1.759932 17.239845,11.345273 -17.239845,11.345274 0,-22.690547 z"
+       inkscape:connector-curvature="0" />
+    <path
+       style="opacity:0.5;color:#000000;fill:url(#radialGradient4212);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
+       id="path2339-1"
+       d="m 15.120256,11.948807 0,11.75383 c 3.762316,-0.04504 8.076096,-0.347525 15.036669,-1.885641 L 15.120256,11.948807 z"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/db-step-in.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1185 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg1307"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="db-step-in.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="942"
+     inkscape:window-height="732"
+     id="namedview153"
+     showgrid="false"
+     inkscape:zoom="11.120117"
+     inkscape:cx="45.398399"
+     inkscape:cy="24"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg1307" />
+  <defs
+     id="defs1309">
+    <linearGradient
+       id="linearGradient2817">
+      <stop
+         id="stop2819"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2821"
+         style="stop-color:#ffffff;stop-opacity:0.48453608"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2588"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2697">
+      <stop
+         id="stop2699"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2701"
+         style="stop-color:#3d556f;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2679">
+      <stop
+         id="stop2681"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2683"
+         style="stop-color:#ccd0c7;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3081">
+      <stop
+         id="stop3083"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3085"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2112"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2122"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2124"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2137"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2139"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2725"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2727"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2729"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2731"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2733"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2745"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2747"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2749"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2751"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2753"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2791"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2793"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2795"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2797"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2800"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-0.09426)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2803"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2806"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-145.0004,-97.0943)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2809"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient2823"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2825"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-26.09426)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2831"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient2858"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2860"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2862"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2864"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-0.09426)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3421"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3424"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3427"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3430"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3066"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3068"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3070"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3072"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3076"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3079"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3082"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3085"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3862"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3864"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3866"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3868"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3872"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3875"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3878"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3881"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3930"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3932"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3934"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3936"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3938"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3940"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3942"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3944"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <radialGradient
+       cx="15.987216"
+       cy="1.5350308"
+       r="17.171415"
+       fx="15.987216"
+       fy="1.5350308"
+       id="radialGradient1471"
+       xlink:href="#linearGradient8650"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-2.046729,-1.55761,0,44.11559,66.93275)" />
+    <radialGradient
+       cx="35.292667"
+       cy="20.494493"
+       r="16.9562"
+       fx="35.292667"
+       fy="20.494493"
+       id="radialGradient1469"
+       xlink:href="#linearGradient1442"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-0.843022,1.020168,0,0.606436,42.58614)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient1444"
+       xlink:href="#linearGradient8662-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <linearGradient
+       id="linearGradient8650">
+      <stop
+         id="stop8652"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8654"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662-5">
+      <stop
+         id="stop8664-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1442">
+      <stop
+         id="stop1444"
+         style="stop-color:#73d216;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1446"
+         style="stop-color:#4e9a06;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient2332"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-25.12402,-17.82636)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient2322"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient2314"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient1764"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,46.1744,54.10111)" />
+    <linearGradient
+       id="linearGradient2187">
+      <stop
+         id="stop2189"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2191"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <linearGradient
+       id="linearGradient8662-0">
+      <stop
+         id="stop8664-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666-7"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2308">
+      <stop
+         id="stop2310"
+         style="stop-color:#edd400;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2312"
+         style="stop-color:#edd400;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2316">
+      <stop
+         id="stop2318"
+         style="stop-color:#c4a000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2320"
+         style="stop-color:#c4a000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2326">
+      <stop
+         id="stop2328"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2330"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient4285"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient4288"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4291"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4293"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4301"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4303"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient4305"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient4307"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient3152"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient3155"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient3158"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient3160"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3932"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3935"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3938"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3941"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3979"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3981"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3983"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3985"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3987"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3989"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3991"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3993"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2326"
+       id="radialGradient3131"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)"
+       cx="15.09403"
+       cy="13.282721"
+       fx="15.09403"
+       fy="13.282721"
+       r="10.16466" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient3134"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)"
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.153309"
+       y2="11.735918" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2308"
+       id="linearGradient3137"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)"
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2316"
+       id="linearGradient3139"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)"
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831" />
+  </defs>
+  <metadata
+     id="metadata1312">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Lapo Calamandrei</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>media</rdf:li>
+            <rdf:li>stop</rdf:li>
+            <rdf:li>playback</rdf:li>
+            <rdf:li>video</rdf:li>
+            <rdf:li>music</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3948">
+    <path
+       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
+       id="path2815"
+       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3941);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
+       id="path2827"
+       style="color:#000000;fill:url(#radialGradient3938);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
+       id="path2762"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3935);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
+       id="path2811"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3932);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
+       id="path2479"
+       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
+  </g>
+  <g
+     id="g3141">
+    <path
+       sodipodi:nodetypes="ccccccc"
+       d="M 44.117176,3.2163465 C 47.943214,0.52153449 51.42355,28.446295 33.745367,28.819609 l 0,7.636668 -13.560892,-11.881386 13.560892,-12.460485 0,7.875305 C 45.200365,20.467008 41.087781,0.5535716 44.117176,3.2163465 z"
+       id="path1432"
+       style="color:#000000;fill:url(#linearGradient3137);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3139);stroke-width:1.61500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       d="M 44.143119,3.1084549 C 46.587837,2.3052332 49.373587,28.33916 32.919657,27.962459 l 0,6.597052 -11.442476,-9.989319 11.442476,-10.543459 0,6.742487 C 45.09727,23.660786 44.003867,1.5647582 44.143119,3.1084549 z"
+       id="path2177"
+       style="opacity:0.69886361;color:#000000;fill:none;stroke:url(#linearGradient3134);stroke-width:0.81454206;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 20.848487,24.596087 4.607747,-4.391758 c 5.111719,0.143992 2.807846,5.183715 11.951344,7.703577 l -4.031779,0.503973 -0.072,7.055612 -12.455316,-10.871404 z"
+       id="path2324"
+       style="opacity:0.51136361;color:#000000;fill:url(#radialGradient3131);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     transform="translate(0,28.820401)"
+     id="g3955">
+    <path
+       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
+       id="path3957"
+       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3987);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
+       id="path3959"
+       style="color:#000000;fill:url(#radialGradient3989);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
+       id="path3961"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3991);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
+       id="path3963"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3993);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
+       id="path3965"
+       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/db-step-out.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1190 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg1307">
+  <defs
+     id="defs1309">
+    <linearGradient
+       id="linearGradient2817">
+      <stop
+         id="stop2819"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2821"
+         style="stop-color:#ffffff;stop-opacity:0.48453608"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2588"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2697">
+      <stop
+         id="stop2699"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2701"
+         style="stop-color:#3d556f;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2679">
+      <stop
+         id="stop2681"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2683"
+         style="stop-color:#ccd0c7;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3081">
+      <stop
+         id="stop3083"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3085"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2112"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2122"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2124"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2137"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2139"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2725"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2727"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2729"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2731"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2733"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2745"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2747"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2749"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2751"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2753"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2791"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2793"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2795"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2797"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2800"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-0.09426)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2803"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2806"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-145.0004,-97.0943)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2809"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient2823"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2825"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-26.09426)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2831"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient2858"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2860"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2862"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2864"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-0.09426)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3421"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3424"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3427"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3430"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3066"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3068"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3070"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3072"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3076"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3079"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3082"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3085"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3862"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3864"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3866"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3868"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3872"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3875"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3878"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3881"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3930"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3932"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3934"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3936"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3938"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3940"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3942"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3944"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <radialGradient
+       cx="15.987216"
+       cy="1.5350308"
+       r="17.171415"
+       fx="15.987216"
+       fy="1.5350308"
+       id="radialGradient1471"
+       xlink:href="#linearGradient8650"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-2.046729,-1.55761,0,44.11559,66.93275)" />
+    <radialGradient
+       cx="35.292667"
+       cy="20.494493"
+       r="16.9562"
+       fx="35.292667"
+       fy="20.494493"
+       id="radialGradient1469"
+       xlink:href="#linearGradient1442"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-0.843022,1.020168,0,0.606436,42.58614)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient1444"
+       xlink:href="#linearGradient8662-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <linearGradient
+       id="linearGradient8650">
+      <stop
+         id="stop8652"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8654"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662-5">
+      <stop
+         id="stop8664-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1442">
+      <stop
+         id="stop1444"
+         style="stop-color:#73d216;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1446"
+         style="stop-color:#4e9a06;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient2332"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-25.12402,-17.82636)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient2322"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient2314"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient1764"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,46.1744,54.10111)" />
+    <linearGradient
+       id="linearGradient2187">
+      <stop
+         id="stop2189"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2191"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <linearGradient
+       id="linearGradient8662-0">
+      <stop
+         id="stop8664-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666-7"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2308">
+      <stop
+         id="stop2310"
+         style="stop-color:#edd400;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2312"
+         style="stop-color:#edd400;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2316">
+      <stop
+         id="stop2318"
+         style="stop-color:#c4a000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2320"
+         style="stop-color:#c4a000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2326">
+      <stop
+         id="stop2328"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2330"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient4285"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient4288"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4291"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4293"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4301"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4303"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient4305"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient4307"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient3152"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient3155"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient3158"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient3160"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3932"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3935"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3938"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3941"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3979"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3981"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3983"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3985"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3987"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3989"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3991"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3993"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)" />
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient3131"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.153309"
+       y2="11.735918"
+       id="linearGradient3134"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient3137"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient3139"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient3146"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient3148"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.153309"
+       y2="11.735918"
+       id="linearGradient3150"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)" />
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient3153"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)" />
+  </defs>
+  <metadata
+     id="metadata1312">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Lapo Calamandrei</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>media</rdf:li>
+            <rdf:li>stop</rdf:li>
+            <rdf:li>playback</rdf:li>
+            <rdf:li>video</rdf:li>
+            <rdf:li>music</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3948">
+    <path
+       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
+       id="path2815"
+       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3941);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
+       id="path2827"
+       style="color:#000000;fill:url(#radialGradient3938);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
+       id="path2762"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3935);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
+       id="path2811"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3932);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
+       id="path2479"
+       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
+  </g>
+  <g
+     transform="matrix(0,-1,1,0,9.8491719,66.812383)"
+     id="g3141">
+    <path
+       d="M 44.117176,3.2163465 C 47.943214,0.52153449 51.42355,28.446295 33.745367,28.819609 l 0,7.636668 -13.560892,-11.881386 13.560892,-12.460485 0,7.875305 C 45.200365,20.467008 41.087781,0.5535716 44.117176,3.2163465 z"
+       id="path1432"
+       style="color:#000000;fill:url(#linearGradient3146);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3148);stroke-width:1.61500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+    <path
+       d="M 44.143119,3.1084549 C 46.587837,2.3052332 49.373587,28.33916 32.919657,27.962459 l 0,6.597052 -11.442476,-9.989319 11.442476,-10.543459 0,6.742487 C 45.09727,23.660786 44.003867,1.5647582 44.143119,3.1084549 z"
+       id="path2177"
+       style="opacity:0.69886361;color:#000000;fill:none;stroke:url(#linearGradient3150);stroke-width:0.81454206;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
+    <path
+       d="m 20.848487,24.596087 4.607747,-4.391758 c 5.111719,0.143992 2.807846,5.183715 11.951344,7.703577 l -4.031779,0.503973 -0.072,7.055612 -12.455316,-10.871404 z"
+       id="path2324"
+       style="opacity:0.51136361;color:#000000;fill:url(#radialGradient3153);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+  </g>
+  <g
+     transform="translate(0,28.820401)"
+     id="g3955">
+    <path
+       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
+       id="path3957"
+       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3987);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
+       id="path3959"
+       style="color:#000000;fill:url(#radialGradient3989);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
+       id="path3961"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3991);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
+       id="path3963"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3993);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+    <path
+       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
+       id="path3965"
+       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/db-step.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1197 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg1307"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="db-step.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="480"
+     id="namedview144"
+     showgrid="false"
+     inkscape:zoom="6.2802734"
+     inkscape:cx="24"
+     inkscape:cy="24"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg1307" />
+  <defs
+     id="defs1309">
+    <linearGradient
+       id="linearGradient2817">
+      <stop
+         id="stop2819"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2821"
+         style="stop-color:#ffffff;stop-opacity:0.48453608"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2588"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2697">
+      <stop
+         id="stop2699"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2701"
+         style="stop-color:#3d556f;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2679">
+      <stop
+         id="stop2681"
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2683"
+         style="stop-color:#ccd0c7;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3081">
+      <stop
+         id="stop3083"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3085"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2112"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2122"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2124"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2137"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2139"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2725"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2727"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2729"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2731"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2733"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2745"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2747"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2749"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2751"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2753"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2791"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2793"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2795"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2797"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2800"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-0.09426)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2803"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2806"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-145.0004,-97.0943)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2809"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient2823"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2825"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-26.09426)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2831"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient2858"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2860"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2862"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2864"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-0.09426)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3421"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3424"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3427"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3430"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3066"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3068"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3070"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3072"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3076"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3079"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3082"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3085"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3862"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3864"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3866"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3868"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3872"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3875"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3878"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3881"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3930"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3932"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3934"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3936"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3938"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3506486,0,0,0.54288762,-227.80734,-41.066722)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient3940"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.583141e-6,-0.5517047,2.5629708,-6.4362101e-7,-255.94569,107.6634)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3942"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2859905,0,0,0.51688203,-216.46493,-38.571363)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3944"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5439796,0,0,0.51462591,-37.861026,-1.8434169)" />
+    <radialGradient
+       cx="15.987216"
+       cy="1.5350308"
+       r="17.171415"
+       fx="15.987216"
+       fy="1.5350308"
+       id="radialGradient1471"
+       xlink:href="#linearGradient8650"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-2.046729,-1.55761,0,44.11559,66.93275)" />
+    <radialGradient
+       cx="35.292667"
+       cy="20.494493"
+       r="16.9562"
+       fx="35.292667"
+       fy="20.494493"
+       id="radialGradient1469"
+       xlink:href="#linearGradient1442"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-0.843022,1.020168,0,0.606436,42.58614)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient1444"
+       xlink:href="#linearGradient8662-5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <linearGradient
+       id="linearGradient8650">
+      <stop
+         id="stop8652"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8654"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662-5">
+      <stop
+         id="stop8664-5"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666-5"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1442">
+      <stop
+         id="stop1444"
+         style="stop-color:#73d216;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop1446"
+         style="stop-color:#4e9a06;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient2332"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-25.12402,-17.82636)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient2322"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient2314"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient1764"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,46.1744,54.10111)" />
+    <linearGradient
+       id="linearGradient2187">
+      <stop
+         id="stop2189"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2191"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <linearGradient
+       id="linearGradient8662-0">
+      <stop
+         id="stop8664-7"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666-7"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2308">
+      <stop
+         id="stop2310"
+         style="stop-color:#edd400;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2312"
+         style="stop-color:#edd400;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2316">
+      <stop
+         id="stop2318"
+         style="stop-color:#c4a000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2320"
+         style="stop-color:#c4a000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2326">
+      <stop
+         id="stop2328"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2330"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient4285"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient4288"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4291"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4293"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4301"
+       xlink:href="#linearGradient2308"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       id="linearGradient4303"
+       xlink:href="#linearGradient2316"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-52.912011,-6.2461712)" />
+    <linearGradient
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769"
+       id="linearGradient4305"
+       xlink:href="#linearGradient2187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,-1.171926,-1.171926,0,-6.737611,47.854939)" />
+    <radialGradient
+       cx="15.09403"
+       cy="13.282721"
+       r="10.16466"
+       fx="15.09403"
+       fy="13.282721"
+       id="radialGradient4307"
+       xlink:href="#linearGradient2326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.496031,0,0,2.300689,-78.036031,-24.072531)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2326"
+       id="radialGradient3152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.0331228,0,0,-1.8740085,-5.0157934,53.519798)"
+       cx="15.09403"
+       cy="13.282721"
+       fx="15.09403"
+       fy="13.282721"
+       r="10.16466" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient3155"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,0.95458329,-0.95458329,0,53.059785,-5.0681686)"
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2308"
+       id="linearGradient3158"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)"
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2316"
+       id="linearGradient3160"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.81454229,0,0,-0.81454229,15.448783,38.999474)"
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3081"
+       id="linearGradient3932"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2697"
+       id="linearGradient3935"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2679"
+       id="radialGradient3938"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)"
+       cx="169.77171"
+       cy="100.20107"
+       fx="169.77171"
+       fy="100.20107"
+       r="11" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2817"
+       id="linearGradient3941"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)"
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2817"
+       id="linearGradient3979"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)"
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2679"
+       id="radialGradient3981"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)"
+       cx="169.77171"
+       cy="100.20107"
+       fx="169.77171"
+       fy="100.20107"
+       r="11" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2697"
+       id="linearGradient3983"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3081"
+       id="linearGradient3985"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2817"
+       id="linearGradient3987"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2553876,0,0,0.60128935,-385.70745,-46.744834)"
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2679"
+       id="radialGradient3989"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.6531818e-6,-0.61105494,4.2797901,-7.1285925e-7,-432.69442,117.98509)"
+       cx="169.77171"
+       cy="100.20107"
+       fx="169.77171"
+       fy="100.20107"
+       r="11" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2697"
+       id="linearGradient3991"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.1474179,0,0,0.57248618,-366.76727,-43.981034)"
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3081"
+       id="linearGradient3993"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5782224,0,0,0.56998736,-68.52461,-3.3020389)"
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574" />
+  </defs>
+  <metadata
+     id="metadata1312">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Lapo Calamandrei</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>media</rdf:li>
+            <rdf:li>stop</rdf:li>
+            <rdf:li>playback</rdf:li>
+            <rdf:li>video</rdf:li>
+            <rdf:li>music</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3948">
+    <path
+       inkscape:connector-curvature="0"
+       style="opacity:0.14999999999999999;color:#000000;fill:none;stroke:url(#linearGradient3941);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path2815"
+       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;fill:url(#radialGradient3938);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path2827"
+       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3935);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path2762"
+       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3932);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path2811"
+       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
+       id="path2479"
+       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z" />
+  </g>
+  <g
+     id="g3943">
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;fill:url(#linearGradient3158);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3160);stroke-width:1.615;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+       id="path1432"
+       d="M 23.254087,2.3170754 C 55.8568,1.240951 50.704133,28.985857 33.745367,28.819609 l 0,7.636668 L 20.184475,24.574891 33.745367,12.114406 c 0,0 0,7.875305 0,7.875305 C 45.200365,20.467008 48.551732,2.5319679 23.254087,2.3170754 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="opacity:0.69886361;color:#000000;fill:none;stroke:url(#linearGradient3155);stroke-width:0.81454206;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+       id="path2177"
+       d="m 40.725889,6.9753206 c 9.54896,4.9521134 6.669302,21.3638394 -7.806232,20.9871384 l 0,6.597052 c 0,0 -11.442476,-9.989319 -11.442476,-9.989319 L 32.919657,14.026733 c 0,0 0,6.742487 0,6.742487 12.087686,0.28368 11.533846,-10.391605 7.806232,-13.7938994 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="opacity:0.51136361;color:#000000;fill:url(#radialGradient3152);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path2324"
+       d="m 20.848487,24.596087 4.607747,-4.391758 c 5.111719,0.143992 2.807846,5.183715 11.951344,7.703577 l -4.031779,0.503973 -0.072,7.055612 -12.455316,-10.871404 z" />
+  </g>
+  <g
+     id="g3955"
+     transform="translate(0,28.820401)">
+    <path
+       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z"
+       id="path3957"
+       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3987);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z"
+       id="path3959"
+       style="color:#000000;fill:url(#radialGradient3989);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z"
+       id="path3961"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3991);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z"
+       id="path3963"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3993);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z"
+       id="path3965"
+       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g3967"
+     transform="translate(0,14.489816)">
+    <path
+       inkscape:connector-curvature="0"
+       style="opacity:0.15;color:#000000;fill:none;stroke:url(#linearGradient3979);stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path3969"
+       d="m 1.0912395,4.0641145 0,12.6270745 18.0430855,0 0,-12.6270745 -18.0430855,0 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;fill:url(#radialGradient3981);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path3971"
+       d="m 1.517632,4.3927965 0,11.9697345 17.187014,0 0,-11.9697345 -17.187014,0 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3983);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path3973"
+       d="m 1.5148283,4.3940481 0,12.0222089 17.1793407,0 0,-12.0222089 -17.1793407,0 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;fill:none;stroke:url(#linearGradient3985);stroke-width:0.70037949;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="path3975"
+       d="m 2.3764769,4.9627829 0,10.8297601 15.4693311,0 0,-10.8297601 -15.4693311,0 z" />
+    <path
+       inkscape:connector-curvature="0"
+       style="opacity:0.5;color:#000000;fill:#f7f7f7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible"
+       id="path3977"
+       d="m 2.8066584,5.2688715 0,6.0174935 14.6089616,-1.590452 0,-4.4774218 -14.6089616,0.050384 z" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/db-stop.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,677 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg1307"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="db-stop.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="480"
+     id="namedview93"
+     showgrid="false"
+     inkscape:zoom="6.2802734"
+     inkscape:cx="24"
+     inkscape:cy="24"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg1307" />
+  <defs
+     id="defs1309">
+    <linearGradient
+       id="linearGradient2817">
+      <stop
+         id="stop2819"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2821"
+         style="stop-color:#ffffff;stop-opacity:0.48453608"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2584">
+      <stop
+         id="stop2586"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2588"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2697">
+      <stop
+         id="stop2699"
+         style="stop-color:#babdb6;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2701"
+         style="stop-color:#555753;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2679">
+      <stop
+         id="stop2681"
+         style="stop-color:#f7f7f7;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2683"
+         style="stop-color:#ccd0c7;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3081">
+      <stop
+         id="stop3083"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3085"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop8666"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2112"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2122"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2124"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2137"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2139"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2725"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2727"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2729"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2731"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2733"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2745"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="24.837126"
+       cy="36.421127"
+       r="15.644737"
+       fx="24.837126"
+       fy="36.421127"
+       id="radialGradient2747"
+       xlink:href="#linearGradient8662"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2749"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2751"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2753"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2791"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2793"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2795"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12,0)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2797"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(133,70.99999)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2800"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-0.09426)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2803"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2806"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-145.0004,-97.0943)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2809"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient2823"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2825"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-26.09426)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2831"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient2858"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)" />
+    <radialGradient
+       cx="169.77171"
+       cy="100.20107"
+       r="11"
+       fx="169.77171"
+       fy="100.20107"
+       id="radialGradient2860"
+       xlink:href="#linearGradient2679"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient2862"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient2864"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-4e-4,-0.09426)" />
+    <linearGradient
+       x1="15.089521"
+       y1="15.291994"
+       x2="14"
+       y2="52.510574"
+       id="linearGradient3421"
+       xlink:href="#linearGradient3081"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.000198,0,0,1,-67.006,-0.09426)" />
+    <linearGradient
+       x1="169"
+       y1="110.33805"
+       x2="169"
+       y2="93.204849"
+       id="linearGradient3424"
+       xlink:href="#linearGradient2697"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.498884,0,0,1.004384,-414.0618,-71.4625)" />
+    <linearGradient
+       x1="174.83363"
+       y1="84.263489"
+       x2="174.74524"
+       y2="105.49083"
+       id="linearGradient3430"
+       xlink:href="#linearGradient2817"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.624525,0,0,1.054917,-436.1019,-76.31138)" />
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3489">
+      <feColorMatrix
+         result="result2"
+         type="saturate"
+         in="SourceGraphic"
+         values="1"
+         id="feColorMatrix3491" />
+      <feFlood
+         result="result1"
+         flood-opacity="1"
+         flood-color="rgb(254,102,0)"
+         id="feFlood3493" />
+      <feBlend
+         in2="result2"
+         mode="multiply"
+         in="result1"
+         result="result3"
+         id="feBlend3495" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         result="result4"
+         id="feComposite3497" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3499">
+      <feColorMatrix
+         result="result2"
+         type="saturate"
+         in="SourceGraphic"
+         values="1"
+         id="feColorMatrix3501" />
+      <feFlood
+         result="result1"
+         flood-opacity="1"
+         flood-color="rgb(254,102,0)"
+         id="feFlood3503" />
+      <feBlend
+         in2="result2"
+         mode="multiply"
+         in="result1"
+         result="result3"
+         id="feBlend3505" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         result="result4"
+         id="feComposite3507" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3509">
+      <feColorMatrix
+         result="result2"
+         type="saturate"
+         in="SourceGraphic"
+         values="1"
+         id="feColorMatrix3511" />
+      <feFlood
+         result="result1"
+         flood-opacity="1"
+         flood-color="rgb(254,102,0)"
+         id="feFlood3513" />
+      <feBlend
+         in2="result2"
+         mode="multiply"
+         in="result1"
+         result="result3"
+         id="feBlend3515" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         result="result4"
+         id="feComposite3517" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3519">
+      <feColorMatrix
+         result="result2"
+         type="saturate"
+         in="SourceGraphic"
+         values="1"
+         id="feColorMatrix3521" />
+      <feFlood
+         result="result1"
+         flood-opacity="1"
+         flood-color="rgb(254,102,0)"
+         id="feFlood3523" />
+      <feBlend
+         in2="result2"
+         mode="multiply"
+         in="result1"
+         result="result3"
+         id="feBlend3525" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         result="result4"
+         id="feComposite3527" />
+    </filter>
+    <filter
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       color-interpolation-filters="sRGB"
+       id="filter3529">
+      <feColorMatrix
+         result="result2"
+         type="saturate"
+         in="SourceGraphic"
+         values="1"
+         id="feColorMatrix3531" />
+      <feFlood
+         result="result1"
+         flood-opacity="1"
+         flood-color="rgb(254,102,0)"
+         id="feFlood3533" />
+      <feBlend
+         in2="result2"
+         mode="multiply"
+         in="result1"
+         result="result3"
+         id="feBlend3535" />
+      <feComposite
+         in2="SourceGraphic"
+         operator="in"
+         result="result4"
+         id="feComposite3537" />
+    </filter>
+    <radialGradient
+       cx="23.070683"
+       cy="35.127438"
+       r="10.31934"
+       fx="23.070683"
+       fy="35.127438"
+       id="radialGradient2097"
+       xlink:href="#linearGradient2091"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.914812,0.01265023,-0.00821502,0.213562,2.253914,27.18889)" />
+    <linearGradient
+       id="linearGradient2091">
+      <stop
+         id="stop2093"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop2095"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       cx="23.070683"
+       cy="35.127438"
+       r="10.31934"
+       fx="23.070683"
+       fy="35.127438"
+       id="radialGradient3774"
+       xlink:href="#linearGradient2091"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.914812,0.01265023,-0.00821502,0.213562,2.253914,27.18889)" />
+  </defs>
+  <metadata
+     id="metadata1312">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Lapo Calamandrei</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>media</rdf:li>
+            <rdf:li>stop</rdf:li>
+            <rdf:li>playback</rdf:li>
+            <rdf:li>video</rdf:li>
+            <rdf:li>music</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     style="display:inline"
+     transform="matrix(1.0709833,0,0,1.0709833,-1.8743797,-2.0804371)">
+    <path
+       d="m 14.00382,12.829103 0,22.153256 20.996184,0 0,-22.153256 -20.996184,0 z"
+       id="path2815"
+       style="opacity:0.15;color:#000000;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3430);stroke-width:1.99999952;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3529)"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 14.5,13.40575 0,21 20,0 0,-21 -20,0 z"
+       id="path2827"
+       style="color:#000000;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3519)"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 14.496737,13.407946 0,21.092064 19.991071,0 0,-21.092064 -19.991071,0 z"
+       id="path2762"
+       style="color:#000000;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3424);stroke-width:0.99999952;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3509)"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 15.499412,14.40575 0,19 18.001183,0 0,-19 -18.001183,0 z"
+       id="path2811"
+       style="color:#000000;fill:#d40000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3421);stroke-width:0.99999976;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3499)"
+       inkscape:connector-curvature="0" />
+    <path
+       d="M 16,14.942758 16,25.5 l 17,-2.79033 0,-7.8553 -17,0.08839 z"
+       id="path2479"
+       style="opacity:0.5;color:#000000;fill:#d40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:block;overflow:visible;filter:url(#filter3489)"
+       inkscape:connector-curvature="0" />
+    <path
+       d="m 33.278212,34.94062 a 10.31934,2.320194 0 1 1 -20.63868,0 10.31934,2.320194 0 1 1 20.63868,0 z"
+       transform="matrix(1.5216388,0,0,1.3064015,-10.77236,-6.2589442)"
+       id="path1361"
+       style="opacity:0.10439561;fill:url(#radialGradient3774);fill-opacity:1;stroke:none"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/dialog-error.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,330 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg1306"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
+   sodipodi:docname="dialog-error.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs1308">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective40" />
+    <linearGradient
+       id="linearGradient3957">
+      <stop
+         style="stop-color:#fffeff;stop-opacity:0.33333334;"
+         offset="0"
+         id="stop3959" />
+      <stop
+         style="stop-color:#fffeff;stop-opacity:0.21568628;"
+         offset="1"
+         id="stop3961" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2536">
+      <stop
+         style="stop-color:#a40000;stop-opacity:1;"
+         offset="0"
+         id="stop2538" />
+      <stop
+         style="stop-color:#ff1717;stop-opacity:1;"
+         offset="1"
+         id="stop2540" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2479">
+      <stop
+         style="stop-color:#ffe69b;stop-opacity:1;"
+         offset="0"
+         id="stop2481" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="1"
+         id="stop2483" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4126"
+       inkscape:collect="always">
+      <stop
+         id="stop4128"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4130"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4126"
+       id="radialGradient2169"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,1.899196e-14,20.00000)"
+       cx="23.857143"
+       cy="40.000000"
+       fx="23.857143"
+       fy="40.000000"
+       r="17.142857" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2479"
+       id="linearGradient2485"
+       x1="43.93581"
+       y1="53.835983"
+       x2="20.064686"
+       y2="-8.5626707"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2536"
+       id="linearGradient2542"
+       x1="36.917976"
+       y1="66.288063"
+       x2="19.071495"
+       y2="5.5410109"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2536"
+       id="linearGradient3046"
+       gradientUnits="userSpaceOnUse"
+       x1="36.917976"
+       y1="66.288063"
+       x2="19.071495"
+       y2="5.5410109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2479"
+       id="linearGradient3048"
+       gradientUnits="userSpaceOnUse"
+       x1="43.93581"
+       y1="53.835983"
+       x2="20.064686"
+       y2="-8.5626707" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2536"
+       id="linearGradient3064"
+       gradientUnits="userSpaceOnUse"
+       x1="36.917976"
+       y1="66.288063"
+       x2="19.071495"
+       y2="5.5410109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2479"
+       id="linearGradient3066"
+       gradientUnits="userSpaceOnUse"
+       x1="43.93581"
+       y1="53.835983"
+       x2="20.064686"
+       y2="-8.5626707" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3957"
+       id="linearGradient3963"
+       x1="21.993773"
+       y1="33.955299"
+       x2="20.917078"
+       y2="15.814602"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4126"
+       id="radialGradient3976"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.5,1.893048e-14,20)"
+       cx="23.857143"
+       cy="40.000000"
+       fx="23.857143"
+       fy="40.000000"
+       r="17.142857" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2536"
+       id="linearGradient3978"
+       gradientUnits="userSpaceOnUse"
+       x1="36.917976"
+       y1="66.288063"
+       x2="19.071495"
+       y2="5.5410109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2479"
+       id="linearGradient3980"
+       gradientUnits="userSpaceOnUse"
+       x1="43.93581"
+       y1="53.835983"
+       x2="20.064686"
+       y2="-8.5626707" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3957"
+       id="linearGradient3982"
+       gradientUnits="userSpaceOnUse"
+       x1="21.993773"
+       y1="33.955299"
+       x2="20.917078"
+       y2="15.814602" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.21568627"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="-134.9567"
+     inkscape:cy="20.463852"
+     inkscape:current-layer="layer2"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="925"
+     inkscape:window-height="818"
+     inkscape:window-x="234"
+     inkscape:window-y="30"
+     inkscape:showpageshadow="false"
+     fill="#ef2929">
+    <inkscape:grid
+       id="GridFromPre046Settings"
+       type="xygrid"
+       originx="0px"
+       originy="0px"
+       spacingx="1px"
+       spacingy="1px"
+       color="#0000ff"
+       empcolor="#0000ff"
+       opacity="0.2"
+       empopacity="0.4"
+       empspacing="4" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata1311">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Rodney Dawes</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner, Garrett LeSage</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Dialog Error</dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Shadow">
+    <path
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       transform="matrix(1.070555,0,0,0.525,-0.892755,22.5)"
+       d="M 41 40 A 17.142857 8.5714283 0 1 1  6.7142868,40 A 17.142857 8.5714283 0 1 1  41 40 z"
+       sodipodi:ry="8.5714283"
+       sodipodi:rx="17.142857"
+       sodipodi:cy="40"
+       sodipodi:cx="23.857143"
+       id="path6548"
+       style="opacity:0.6;color:#000000;fill:url(#radialGradient3976);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       sodipodi:type="arc" />
+  </g>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       id="g4006">
+      <path
+         transform="matrix(0.920488,0,0,0.920488,2.368532,0.97408)"
+         d="M 46.857143 23.928572 A 23.357143 23.357143 0 1 1  0.1428566,23.928572 A 23.357143 23.357143 0 1 1  46.857143 23.928572 z"
+         sodipodi:ry="23.357143"
+         sodipodi:rx="23.357143"
+         sodipodi:cy="23.928572"
+         sodipodi:cx="23.5"
+         id="path1314"
+         style="fill:url(#linearGradient3978);fill-opacity:1;fill-rule:nonzero;stroke:#b20000;stroke-width:1.08638;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         sodipodi:type="arc"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="matrix(0.856093,0,0,0.856093,1.818275,0.197769)"
+         d="M 49.901535 26.635273 A 23.991123 23.991123 0 1 1  1.9192886,26.635273 A 23.991123 23.991123 0 1 1  49.901535 26.635273 z"
+         sodipodi:ry="23.991123"
+         sodipodi:rx="23.991123"
+         sodipodi:cy="26.635273"
+         sodipodi:cx="25.910412"
+         id="path3560"
+         style="opacity:0.34659089;fill:#cc0000;fill-opacity:0;stroke:url(#linearGradient3980);stroke-width:1.16809607;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         sodipodi:type="arc"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Error Box">
+    <rect
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       style="fill:#efefef;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.73876643;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.8627451"
+       id="rect2070"
+       width="27.836435"
+       height="7.1735945"
+       x="10.078821"
+       y="19.164932"
+       transform="matrix(1.005876,0,0,1.115201,-0.138045,-2.372708)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Glossy Shine">
+    <path
+       transform="matrix(1.002994,0,0,1.002994,-7.185874e-2,1.968356e-2)"
+       sodipodi:nodetypes="czssc"
+       id="path3955"
+       d="M 43.370686,21.715486 C 43.370686,32.546102 33.016357,15.449178 24.695948,22.101874 C 16.569626,28.599385 4.0989837,34.292422 4.0989837,23.461806 C 4.0989837,12.377753 12.79438,2.0948032 23.625,2.0948032 C 34.455619,2.0948032 43.370686,10.884868 43.370686,21.715486 z "
+       style="fill:url(#linearGradient3982);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/dialog-information.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1159 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="dialog-information.svg"
+   sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg19655"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/jimmac/Desktop/poing.png"
+   inkscape:export-xdpi="392.72742"
+   inkscape:export-ydpi="392.72742"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective155" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3300">
+      <stop
+         style="stop-color:#4c4c28;stop-opacity:1;"
+         offset="0"
+         id="stop3302" />
+      <stop
+         style="stop-color:#4c4c28;stop-opacity:0;"
+         offset="1"
+         id="stop3304" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3311">
+      <stop
+         id="stop3313"
+         offset="0"
+         style="stop-color:#d6d7a5;stop-opacity:1;" />
+      <stop
+         id="stop3315"
+         offset="1.0000000"
+         style="stop-color:#8e8f6d;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3265">
+      <stop
+         id="stop3267"
+         offset="0"
+         style="stop-color:#929470;stop-opacity:1;" />
+      <stop
+         style="stop-color:#60614a;stop-opacity:1.0000000;"
+         offset="0.26470590"
+         id="stop3269" />
+      <stop
+         id="stop3271"
+         offset="0.63235295"
+         style="stop-color:#f3f5ba;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3273"
+         offset="1.0000000"
+         style="stop-color:#929470;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3175"
+       inkscape:collect="always">
+      <stop
+         id="stop3177"
+         offset="0"
+         style="stop-color:#f1f3ff;stop-opacity:1;" />
+      <stop
+         id="stop3179"
+         offset="1"
+         style="stop-color:#f1f3ff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2399">
+      <stop
+         style="stop-color:#929470;stop-opacity:1;"
+         offset="0"
+         id="stop2401" />
+      <stop
+         id="stop2407"
+         offset="0.26470590"
+         style="stop-color:#fcffc1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#f3f5ba;stop-opacity:1.0000000;"
+         offset="0.63235295"
+         id="stop2409" />
+      <stop
+         style="stop-color:#929470;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2403" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6339">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop6341" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6343" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient20428">
+      <stop
+         id="stop20430"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop20432"
+         offset="1"
+         style="stop-color:#b5b5b5;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient20393">
+      <stop
+         id="stop20395"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.44117647;"
+         offset="0.41176471"
+         id="stop2427" />
+      <stop
+         id="stop20397"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.48039216;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient20210">
+      <stop
+         id="stop20212"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.51546389;" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.14432989;"
+         offset="0.55172414"
+         id="stop20218" />
+      <stop
+         id="stop20214"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="11.4873"
+       fx="17.8335"
+       r="22.7093"
+       cy="11.4873"
+       cx="17.8335"
+       id="aigrd7">
+      <stop
+         id="stop19512"
+         style="stop-color:#ffffff;stop-opacity:0.17525773;"
+         offset="0.0000000" />
+      <stop
+         id="stop19514"
+         style="stop-color:#709ac8;stop-opacity:1.0000000;"
+         offset="0.88200003" />
+      <stop
+         id="stop19516"
+         style="stop-color:#6f96dd;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       y2="43.165"
+       x2="26.4785"
+       y1="43.165"
+       x1="23.124"
+       gradientUnits="userSpaceOnUse"
+       id="aigrd1">
+      <stop
+         id="stop19415"
+         style="stop-color:#686868"
+         offset="5.618000e-003" />
+      <stop
+         id="stop19417"
+         style="stop-color:#777777"
+         offset="3.012137e-002" />
+      <stop
+         id="stop19419"
+         style="stop-color:#929292"
+         offset="8.366583e-002" />
+      <stop
+         id="stop19421"
+         style="stop-color:#A7A7A7"
+         offset="0.1422" />
+      <stop
+         id="stop19423"
+         style="stop-color:#B6B6B6"
+         offset="0.2074" />
+      <stop
+         id="stop19425"
+         style="stop-color:#BEBEBE"
+         offset="0.2846" />
+      <stop
+         id="stop19427"
+         style="stop-color:#C1C1C1"
+         offset="0.4045" />
+      <stop
+         id="stop19429"
+         style="stop-color:#BCBCBC"
+         offset="0.4962" />
+      <stop
+         id="stop19431"
+         style="stop-color:#ADADAD"
+         offset="0.6057" />
+      <stop
+         id="stop19433"
+         style="stop-color:#959595"
+         offset="0.7245" />
+      <stop
+         id="stop19435"
+         style="stop-color:#747474"
+         offset="0.8497" />
+      <stop
+         id="stop19437"
+         style="stop-color:#494949"
+         offset="0.9789" />
+      <stop
+         id="stop19439"
+         style="stop-color:#414141"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19894"
+       gradientUnits="userSpaceOnUse"
+       x1="18.995100"
+       y1="37.226601"
+       x2="30.169901"
+       y2="37.226601">
+      <stop
+         offset="5.618000e-003"
+         style="stop-color:#A3A349"
+         id="stop19896" />
+      <stop
+         offset="2.078677e-002"
+         style="stop-color:#ACAC54"
+         id="stop19898" />
+      <stop
+         offset="6.600059e-002"
+         style="stop-color:#C1C172"
+         id="stop19900" />
+      <stop
+         offset="0.1148"
+         style="stop-color:#D4D68E"
+         id="stop19902" />
+      <stop
+         offset="0.1677"
+         style="stop-color:#E2E4A6"
+         id="stop19904" />
+      <stop
+         offset="0.2265"
+         style="stop-color:#EDF0B8"
+         id="stop19906" />
+      <stop
+         offset="0.2963"
+         style="stop-color:#F3F6C3"
+         id="stop19908" />
+      <stop
+         offset="0.4045"
+         style="stop-color:#F5F8C7"
+         id="stop19910" />
+      <stop
+         offset="0.5239"
+         style="stop-color:#EEF0BE"
+         id="stop19912" />
+      <stop
+         offset="0.6666"
+         style="stop-color:#DBDDA9"
+         id="stop19914" />
+      <stop
+         offset="0.8211"
+         style="stop-color:#BEBD88"
+         id="stop19916" />
+      <stop
+         offset="0.9832"
+         style="stop-color:#989564"
+         id="stop19918" />
+      <stop
+         offset="1"
+         style="stop-color:#949160"
+         id="stop19920" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(1.639127,0,0,1.639127,-15.97035,-29.79355)"
+       y2="43.165"
+       x2="26.4785"
+       y1="43.165"
+       x1="23.124"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient20109"
+       xlink:href="#aigrd1"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.8289826"
+       fy="74.209934"
+       fx="14.772334"
+       cy="74.209934"
+       cx="14.772334"
+       gradientTransform="scale(1.764278,0.566804)"
+       id="radialGradient20216"
+       xlink:href="#linearGradient20210"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="36.726292"
+       x2="32.096882"
+       y1="10.061084"
+       x1="16.998856"
+       gradientTransform="matrix(1.140494,0.000000,0.000000,0.926002,0.272330,-3.247170)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7708"
+       xlink:href="#linearGradient6339"
+       inkscape:collect="always" />
+    <radialGradient
+       r="33.934090"
+       fy="29.869318"
+       fx="68.137589"
+       cy="29.869318"
+       cx="68.137589"
+       gradientTransform="matrix(0.551290,1.265592e-16,-1.355720e-16,0.766034,-10.48701,3.514312)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7720"
+       xlink:href="#aigrd7"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="3.8557322"
+       x2="-5.2517161"
+       y1="16.651863"
+       x1="37.940434"
+       gradientTransform="matrix(0.894129,0.000000,0.000000,0.985230,1.515981,2.449800e-2)"
+       id="linearGradient3181"
+       xlink:href="#linearGradient3175"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20393"
+       id="linearGradient1700"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.6293,0,0,1.589068,50.68808,3.804378)"
+       x1="30.620375"
+       y1="10.313651"
+       x2="32.166080"
+       y2="18.162935" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20393"
+       id="linearGradient1702"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6293,0,0,1.589068,1.411612,3.929378)"
+       x1="30.620375"
+       y1="10.313651"
+       x2="32.166080"
+       y2="18.162935" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20428"
+       id="linearGradient1704"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.985083,0,0,0.503757,1.786612,4.554378)"
+       x1="14.637301"
+       y1="31.504122"
+       x2="9.3648205"
+       y2="32.250980" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient1725"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.026450,0.974232)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient1727"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.026450,0.974232)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient1729"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.026450,0.974232)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient1731"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.026450,0.974232)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3311"
+       id="linearGradient2516"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.603440,0.000000,0.000000,0.549396,0.614167,2.449800e-2)"
+       x1="17.879995"
+       y1="55.362793"
+       x2="11.906206"
+       y2="54.863026" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3265"
+       id="linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.905728,-4.386156e-2,0.189510,-0.963437,0.614167,2.449800e-2)"
+       x1="-29.007195"
+       y1="-29.799353"
+       x2="-37.641232"
+       y2="-29.598314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient2522"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.300410)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient2524"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.300410)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient2529"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient2531"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3300"
+       id="linearGradient3306"
+       gradientTransform="scale(1.002656,0.997352)"
+       x1="24.613028"
+       y1="31.146202"
+       x2="24.613028"
+       y2="26.739624"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3311"
+       id="linearGradient3127"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.60344,0,0,0.549396,0.614167,2.4498e-2)"
+       x1="17.879995"
+       y1="55.362793"
+       x2="11.906206"
+       y2="54.863026" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3265"
+       id="linearGradient3129"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.905728,-4.386156e-2,0.18951,-0.963437,0.614167,2.4498e-2)"
+       x1="-29.007195"
+       y1="-29.799353"
+       x2="-37.641232"
+       y2="-29.598314" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd7"
+       id="radialGradient3131"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.55129,1.265592e-16,-1.35572e-16,0.766034,-10.48701,3.514312)"
+       cx="68.137589"
+       cy="29.869318"
+       fx="68.137589"
+       fy="29.869318"
+       r="33.934090" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6339"
+       id="linearGradient3133"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.140494,0,0,0.926002,0.27233,-3.24717)"
+       x1="16.998856"
+       y1="10.061084"
+       x2="32.096882"
+       y2="36.726292" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3175"
+       id="linearGradient3135"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.894129,0,0,0.98523,1.515981,2.4498e-2)"
+       x1="37.940434"
+       y1="16.651863"
+       x2="-5.2517161"
+       y2="3.8557322" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3311"
+       id="linearGradient3157"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.60344,0,0,0.549396,0.614167,2.4498e-2)"
+       x1="17.879995"
+       y1="55.362793"
+       x2="11.906206"
+       y2="54.863026" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3265"
+       id="linearGradient3159"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.905728,-4.386156e-2,0.18951,-0.963437,0.614167,2.4498e-2)"
+       x1="-29.007195"
+       y1="-29.799353"
+       x2="-37.641232"
+       y2="-29.598314" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd7"
+       id="radialGradient3161"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.55129,1.265592e-16,-1.35572e-16,0.766034,-10.48701,3.514312)"
+       cx="68.137589"
+       cy="29.869318"
+       fx="68.137589"
+       fy="29.869318"
+       r="33.934090" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3175"
+       id="linearGradient3163"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.894129,0,0,0.98523,1.515981,2.4498e-2)"
+       x1="37.940434"
+       y1="16.651863"
+       x2="-5.2517161"
+       y2="3.8557322" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20393"
+       id="linearGradient3165"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.6293,0,0,1.589068,50.68808,3.804378)"
+       x1="30.620375"
+       y1="10.313651"
+       x2="32.166080"
+       y2="18.162935" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20393"
+       id="linearGradient3167"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6293,0,0,1.589068,1.411612,3.929378)"
+       x1="30.620375"
+       y1="10.313651"
+       x2="32.166080"
+       y2="18.162935" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20428"
+       id="linearGradient3169"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.985083,0,0,0.503757,1.786612,4.554378)"
+       x1="14.637301"
+       y1="31.504122"
+       x2="9.3648205"
+       y2="32.250980" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6339"
+       id="linearGradient3171"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.140494,0,0,0.926002,0.27233,-3.24717)"
+       x1="16.998856"
+       y1="10.061084"
+       x2="32.096882"
+       y2="36.726292" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3300"
+       id="linearGradient3185"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.002656,0.997352)"
+       x1="24.613028"
+       y1="31.146202"
+       x2="24.613028"
+       y2="26.739624" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient3187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient3189"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient3191"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.02645,0.974232)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient3193"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.02645,0.974232)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient3195"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.02645,0.974232)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient3197"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.02645,0.974232)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient3199"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.30041)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient3201"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.30041)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd1"
+       id="linearGradient4100"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.639127,0,0,1.639127,-15.97035,-29.79355)"
+       x1="23.124"
+       y1="43.165"
+       x2="26.4785"
+       y2="43.165" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3300"
+       id="linearGradient4102"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.002656,0.997352)"
+       x1="24.613028"
+       y1="31.146202"
+       x2="24.613028"
+       y2="26.739624" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient4104"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient4106"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.566621,2.988977e-2,-0.118557,0.656541,36.18544,20.08311)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient4108"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.02645,0.974232)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient4110"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.02645,0.974232)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient4112"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.02645,0.974232)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient4114"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.02645,0.974232)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19894"
+       id="linearGradient4116"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.30041)"
+       x1="-22.874170"
+       y1="38.675991"
+       x2="-4.3908315"
+       y2="38.675991" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2399"
+       id="linearGradient4118"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.618682,-0.132027,6.262726e-2,0.741184,31.12021,8.30041)"
+       x1="-10.480865"
+       y1="39.033951"
+       x2="-23.851389"
+       y2="39.142845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3311"
+       id="linearGradient4120"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.60344,0,0,0.549396,0.614167,2.4498e-2)"
+       x1="17.879995"
+       y1="55.362793"
+       x2="11.906206"
+       y2="54.863026" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3265"
+       id="linearGradient4122"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.905728,-4.386156e-2,0.18951,-0.963437,0.614167,2.4498e-2)"
+       x1="-29.007195"
+       y1="-29.799353"
+       x2="-37.641232"
+       y2="-29.598314" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd7"
+       id="radialGradient4124"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.55129,1.265592e-16,-1.35572e-16,0.766034,-10.48701,3.514312)"
+       cx="68.137589"
+       cy="29.869318"
+       fx="68.137589"
+       fy="29.869318"
+       r="33.934090" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3175"
+       id="linearGradient4126"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.894129,0,0,0.98523,1.515981,2.4498e-2)"
+       x1="37.940434"
+       y1="16.651863"
+       x2="-5.2517161"
+       y2="3.8557322" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20393"
+       id="linearGradient4128"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.6293,0,0,1.589068,50.68808,3.804378)"
+       x1="30.620375"
+       y1="10.313651"
+       x2="32.166080"
+       y2="18.162935" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20393"
+       id="linearGradient4130"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6293,0,0,1.589068,1.411612,3.929378)"
+       x1="30.620375"
+       y1="10.313651"
+       x2="32.166080"
+       y2="18.162935" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient20428"
+       id="linearGradient4132"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.985083,0,0,0.503757,1.786612,4.554378)"
+       x1="14.637301"
+       y1="31.504122"
+       x2="9.3648205"
+       y2="32.250980" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6339"
+       id="linearGradient4134"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.140494,0,0,0.926002,0.27233,-3.24717)"
+       x1="16.998856"
+       y1="10.061084"
+       x2="32.096882"
+       y2="36.726292" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="1060"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="true"
+     inkscape:current-layer="layer1"
+     inkscape:cy="19.729332"
+     inkscape:cx="-132.96706"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.55294118"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:showpageshadow="false">
+    <inkscape:grid
+       id="GridFromPre046Settings"
+       type="xygrid"
+       originx="0px"
+       originy="0px"
+       spacingx="1px"
+       spacingy="1px"
+       color="#0000ff"
+       empcolor="#0000ff"
+       opacity="0.2"
+       empopacity="0.4"
+       empspacing="4" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Info</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>dialog</rdf:li>
+            <rdf:li>info</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Garrett LeSage</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(1.197183,0,0,1.098591,-6.201582,-3.209507)"
+       d="M 39.875 42.0625 A 13.8125 4.4375 0 1 1  12.25,42.0625 A 13.8125 4.4375 0 1 1  39.875 42.0625 z"
+       sodipodi:ry="4.4375"
+       sodipodi:rx="13.8125"
+       sodipodi:cy="42.0625"
+       sodipodi:cx="26.0625"
+       id="path20208"
+       style="color:#000000;fill:url(#radialGradient20216);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;opacity:0.8"
+       sodipodi:type="arc"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <g
+       id="g4076"
+       transform="translate(0,1)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         transform="matrix(1.075823,0,0,0.937493,-2.551335,3.047213)"
+         id="path19509"
+         d="M 21.893504,38.885945 L 21.893504,40.36116 C 21.893504,41.836375 23.204807,43.147679 24.680022,43.147679 C 26.155237,43.147679 27.466539,41.836375 27.466539,40.36116 L 27.466539,38.885945 L 21.893504,38.885945 z "
+         style="fill:url(#linearGradient4100);fill-rule:nonzero;stroke:#565656;stroke-miterlimit:4;stroke-opacity:1" />
+      <g
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         transform="matrix(0.989073,0,0,0.993556,-0.408739,7.920479e-3)"
+         id="g3173">
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           sodipodi:nodetypes="cccccccscccccccs"
+           id="path3209"
+           d="M 24.511725,27.668867 C 21.208844,27.660897 17.463275,28.632054 19.492913,30.467931 C 18.98969,30.670934 18.270371,31.124313 18.355167,32.185222 C 18.401983,32.739286 18.989243,33.079394 19.79236,33.32911 C 18.881908,33.967722 18.302581,34.642557 18.355167,35.264921 C 18.401438,35.812525 18.976334,36.187531 19.76303,36.43814 C 18.875519,37.069403 18.303301,37.760121 18.355167,38.373951 C 18.434436,39.312088 20.457743,40.362928 24.838928,40.2419 C 27.993329,40.155914 30.776913,39.590514 30.996599,38.373951 C 31.082862,37.896248 30.691907,37.450531 30.087355,37.05408 C 30.539926,36.597918 30.85698,36.135242 30.820616,35.704878 C 30.774128,35.154694 30.205993,34.781923 29.412754,34.53166 C 30.300265,33.900397 30.872482,33.209679 30.820616,32.595849 C 30.774128,32.045664 30.205993,31.702225 29.412754,31.45196 C 30.310848,30.817288 30.872816,30.133928 30.820616,29.516149 C 30.762593,28.829446 27.61599,27.676358 24.511725,27.668867 z "
+           style="color:#000000;fill:#aeae57;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4102);stroke-width:2.01752925;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           sodipodi:nodetypes="csccc"
+           id="path3183"
+           d="M 30.920208,38.329767 C 30.700522,39.546331 27.591422,40.232861 22.615132,39.983673 C 19.463507,39.825856 19.283163,38.944055 19.502848,37.727491 C 19.722534,36.510926 22.458318,35.65848 25.609509,35.824708 C 28.7607,35.990936 31.139893,37.113203 30.920208,38.329767 z "
+           style="color:#000000;fill:url(#linearGradient4104);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4106);stroke-width:0.08906282;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           sodipodi:type="arc"
+           style="color:#000000;fill:url(#linearGradient4108);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4110);stroke-width:0.13035245;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           id="path1603"
+           sodipodi:cx="-13.87697"
+           sodipodi:cy="27.228739"
+           sodipodi:rx="10.341436"
+           sodipodi:ry="3.2703688"
+           d="M -3.5355339 27.228739 A 10.341436 3.2703688 0 1 1  -24.218407,27.228739 A 10.341436 3.2703688 0 1 1  -3.5355339 27.228739 z"
+           transform="matrix(0.60274,-0.128625,6.428372e-2,0.760788,31.12021,14.49141)" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           transform="matrix(0.60274,-0.128625,6.428372e-2,0.760788,31.12021,11.39591)"
+           d="M -3.5355339 27.228739 A 10.341436 3.2703688 0 1 1  -24.218407,27.228739 A 10.341436 3.2703688 0 1 1  -3.5355339 27.228739 z"
+           sodipodi:ry="3.2703688"
+           sodipodi:rx="10.341436"
+           sodipodi:cy="27.228739"
+           sodipodi:cx="-13.87697"
+           id="path2364"
+           style="color:#000000;fill:url(#linearGradient4112);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4114);stroke-width:0.13035245;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           sodipodi:type="arc" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           sodipodi:nodetypes="cccss"
+           id="path2366"
+           d="M 30.698087,29.636386 C 30.698087,31.014688 28.157326,32.55444 24.716601,33.288693 C 21.275876,34.022945 18.38922,33.50421 18.273172,32.130802 C 18.157124,30.757395 20.509679,29.155466 23.952388,28.968827 C 27.422379,28.780711 30.698087,28.924901 30.698087,29.636386 z "
+           style="color:#000000;fill:url(#linearGradient4116);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4118);stroke-width:0.08906286;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           transform="matrix(0.335464,0,0,0.335464,11.74678,27.2261)"
+           d="M 31 22.375 A 3.25 3.25 0 1 1  24.5,22.375 A 3.25 3.25 0 1 1  31 22.375 z"
+           sodipodi:ry="3.25"
+           sodipodi:rx="3.25"
+           sodipodi:cy="22.375"
+           sodipodi:cx="27.75"
+           id="path20372"
+           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           sodipodi:type="arc" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           sodipodi:nodetypes="cscc"
+           id="path3241"
+           d="M 19.342183,33.378865 C 22.736592,33.883533 26.320992,33.346192 29.214315,31.470807 C 30.025582,30.944962 30.147604,30.343945 30.520921,29.873844 C 29.09679,31.000705 25.494982,34.035625 19.342183,33.378865 z "
+           style="fill:#000000;fill-opacity:0.23391807;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           sodipodi:type="arc"
+           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           id="path2435"
+           sodipodi:cx="27.75"
+           sodipodi:cy="22.375"
+           sodipodi:rx="3.25"
+           sodipodi:ry="3.25"
+           d="M 31 22.375 A 3.25 3.25 0 1 1  24.5,22.375 A 3.25 3.25 0 1 1  31 22.375 z"
+           transform="matrix(0.335464,0,0,0.335464,11.74678,30.23376)" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           sodipodi:nodetypes="cscc"
+           id="path3237"
+           d="M 19.466621,39.517838 C 22.86103,40.022506 26.44543,39.485165 29.338753,37.60978 C 30.15002,37.083935 30.272043,36.482919 30.645359,36.012817 C 29.221228,37.139678 25.61942,40.174598 19.466621,39.517838 z "
+           style="fill:#000000;fill-opacity:0.23391807;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           style="fill:#000000;fill-opacity:0.23391807;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 19.487361,36.406872 C 22.88177,36.91154 26.46617,36.374199 29.359492,34.498814 C 30.17076,33.972969 30.292782,33.371953 30.666099,32.901851 C 29.241968,34.028712 25.64016,37.063632 19.487361,36.406872 z "
+           id="path3239"
+           sodipodi:nodetypes="cscc" />
+      </g>
+      <g
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         transform="translate(-0.988797,0)"
+         id="g3146">
+        <g
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           id="g3141">
+          <path
+             transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)"
+             sodipodi:nodetypes="csscs"
+             id="path3243"
+             d="M 18.87103,29.628128 C 18.87103,28.836695 20.445135,27.889988 24.419234,27.942972 C 28.101154,27.992059 30.526608,28.83866 30.526608,30.105404 C 30.526608,31.345281 27.307242,32.174416 23.874677,32.008188 C 20.442113,31.84196 18.87103,30.868005 18.87103,29.628128 z "
+             style="color:#000000;fill:url(#linearGradient4120);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4122);stroke-width:0.09083303;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+             inkscape:r_cx="true"
+             inkscape:r_cy="true" />
+          <path
+             transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)"
+             sodipodi:nodetypes="csssssc"
+             id="path6305"
+             d="M 24.680021,0.8622936 C 16.858005,0.8622936 10.506261,6.8372628 10.506261,14.195288 C 10.506261,21.737851 16.247826,22.573217 16.247826,25.352995 C 16.247826,28.619061 19.614103,32.322687 25.149309,32.188995 C 31.035159,32.046835 33.464182,28.825655 33.464182,25.352995 C 33.464182,22.384064 38.853781,22.304889 38.853781,14.195288 C 38.853781,6.8372628 32.502038,0.8622936 24.680021,0.8622936 z "
+             style="color:#000000;fill:url(#radialGradient4124);fill-opacity:1;fill-rule:nonzero;stroke:#616471;stroke-width:1.01595449;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+             inkscape:r_cx="true"
+             inkscape:r_cy="true" />
+          <path
+             transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)"
+             style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4126);stroke-width:0.94685698;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+             d="M 24.680021,1.9277146 C 17.389999,1.9277146 11.470252,7.4963123 11.470252,14.353901 C 11.470252,21.383476 16.82132,22.162027 16.82132,24.752746 C 16.82132,27.79668 19.958648,31.248413 25.117392,31.123813 C 30.602931,30.991321 32.866751,27.989222 32.866751,24.752746 C 32.866751,21.98574 37.889791,21.911948 37.889791,14.353901 C 37.889791,7.4963123 31.970044,1.9277146 24.680021,1.9277146 z "
+             id="path2429"
+             sodipodi:nodetypes="csssssc"
+             inkscape:r_cx="true"
+             inkscape:r_cy="true" />
+        </g>
+        <g
+           id="g1695"
+           transform="matrix(0.9375,0,0,0.926938,0.569221,0.25176)"
+           inkscape:r_cx="true"
+           inkscape:r_cy="true">
+          <path
+             style="fill:url(#linearGradient4128);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+             d="M 31.947292,19.22274 C 32.260034,19.326988 32.468529,19.63973 32.364281,19.952471 L 28.507134,31.523913 C 28.402887,31.836655 28.090145,32.045149 27.777403,31.940902 C 27.464662,31.836655 27.256168,31.523913 27.360415,31.211172 L 31.217562,19.63973 C 31.321809,19.326988 31.634551,19.118493 31.947292,19.22274 z "
+             id="path1691"
+             inkscape:r_cx="true"
+             inkscape:r_cy="true" />
+          <path
+             id="path19612"
+             d="M 20.152404,19.34774 C 19.839662,19.451988 19.631167,19.76473 19.735415,20.077471 L 23.592562,31.648913 C 23.696809,31.961655 24.009551,32.170149 24.322293,32.065902 C 24.635034,31.961655 24.843528,31.648913 24.739281,31.336172 L 20.882134,19.76473 C 20.777887,19.451988 20.465145,19.243493 20.152404,19.34774 z "
+             style="fill:url(#linearGradient4130);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+             inkscape:r_cx="true"
+             inkscape:r_cy="true" />
+          <path
+             style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4132);stroke-width:0.21454535;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+             d="M 20.255362,19.273128 C 20.009452,19.315194 19.816806,19.507772 19.774653,19.753667 C 19.732499,19.999562 19.850004,20.245309 20.067862,20.366878 C 20.067862,20.366878 21.910084,21.447747 24.317862,21.991878 C 26.72564,22.536009 29.806763,22.571305 32.130362,20.304378 C 32.305608,20.165345 32.386854,19.938963 32.340007,19.720224 C 32.29316,19.501485 32.126325,19.328233 31.909509,19.273168 C 31.692693,19.218103 31.463406,19.290751 31.317862,19.460628 C 29.367326,21.36359 26.773024,21.36522 24.567862,20.866878 C 22.3627,20.368536 20.661612,19.366878 20.661612,19.366878 C 20.542178,19.287089 20.397682,19.253744 20.255362,19.273128 z "
+             id="path19614"
+             inkscape:r_cx="true"
+             inkscape:r_cy="true" />
+        </g>
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           style="opacity:0.5977654;color:#000000;fill:url(#linearGradient4134);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.98750001;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           d="M 25.001158,3.5644322 C 18.737608,3.5644322 13.655359,7.5900329 13.655359,12.547843 C 13.655359,14.527956 14.632918,16.261758 16.006008,17.747035 C 17.558672,18.378895 19.249827,18.832941 21.114752,18.832941 C 27.378302,18.832941 32.460549,14.807341 32.460551,9.849528 C 32.460551,7.857476 31.466744,6.1074629 30.07856,4.6174331 C 28.533139,3.9930601 26.854241,3.5644321 25.001158,3.5644322 z "
+           id="path6334"
+           transform="matrix(0.954439,0,0,0.989869,1.433222,0.639881)" />
+      </g>
+    </g>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/dialog-warning.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg1377"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/status"
+   sodipodi:docname="dialog-warning.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs1379">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective48" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6719"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6717"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient6715"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       y2="56.0523"
+       x2="47.3197"
+       y1="11.1133"
+       x1="4.1914"
+       gradientUnits="userSpaceOnUse"
+       id="aigrd1">
+      <stop
+         id="stop6490"
+         style="stop-color:#D4D4D4"
+         offset="0" />
+      <stop
+         id="stop6492"
+         style="stop-color:#E2E2E2"
+         offset="0.3982" />
+      <stop
+         id="stop6494"
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="56.0523"
+       x2="47.3197"
+       y1="11.1133"
+       x1="4.1914"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7451"
+       xlink:href="#aigrd1"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4126"
+       inkscape:collect="always">
+      <stop
+         id="stop4128"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4130"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       r="17.142857"
+       fy="40.000000"
+       fx="23.857143"
+       cy="40.000000"
+       cx="23.857143"
+       gradientTransform="matrix(1,0,0,0.5,2.139286e-14,20)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7449"
+       xlink:href="#linearGradient4126"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6525"
+       id="linearGradient5250"
+       x1="8.5469341"
+       y1="30.281681"
+       x2="30.85088"
+       y2="48.301884"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.899009,0,0,0.934235,1.875108,1.193645)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd1"
+       id="linearGradient3922"
+       gradientUnits="userSpaceOnUse"
+       x1="4.1914"
+       y1="11.1133"
+       x2="47.3197"
+       y2="56.0523" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6525"
+       id="linearGradient3924"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.899009,0,0,0.934235,1.875108,1.193645)"
+       x1="8.5469341"
+       y1="30.281681"
+       x2="30.85088"
+       y2="48.301884" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6525"
+       id="linearGradient3933"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.899009,0,0,0.934235,1.875108,1.193645)"
+       x1="8.5469341"
+       y1="30.281681"
+       x2="30.85088"
+       y2="48.301884" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd1"
+       id="linearGradient3935"
+       gradientUnits="userSpaceOnUse"
+       x1="4.1914"
+       y1="11.1133"
+       x2="47.3197"
+       y2="56.0523" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd1"
+       id="linearGradient3946"
+       gradientUnits="userSpaceOnUse"
+       x1="4.1914"
+       y1="11.1133"
+       x2="47.3197"
+       y2="56.0523" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6525"
+       id="linearGradient3948"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.899009,0,0,0.934235,1.875108,1.193645)"
+       x1="8.5469341"
+       y1="30.281681"
+       x2="30.85088"
+       y2="48.301884" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="14.757891"
+     inkscape:cx="13.022822"
+     inkscape:cy="24"
+     inkscape:current-layer="g7435"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1105"
+     inkscape:window-height="818"
+     inkscape:window-x="0"
+     inkscape:window-y="30">
+    <inkscape:grid
+       id="GridFromPre046Settings"
+       type="xygrid"
+       originx="0px"
+       originy="0px"
+       spacingx="1px"
+       spacingy="1px"
+       color="#0000ff"
+       empcolor="#0000ff"
+       opacity="0.2"
+       empopacity="0.4"
+       empspacing="4" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata1382">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Dialog Warning</dc:title>
+        <dc:date>2005-10-14</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner, Garrett LeSage</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>dialog</rdf:li>
+            <rdf:li>warning</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       transform="matrix(1.566667,0.000000,0.000000,1.566667,-8.925566,-23.94764)"
+       id="g7435">
+      <g
+         style="display:inline"
+         transform="matrix(1.444074e-2,0,0,1.331973e-2,33.38871,40.40337)"
+         id="g6707">
+        <rect
+           style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           id="rect6709"
+           width="1339.6335"
+           height="478.35718"
+           x="-1559.2523"
+           y="-150.69685" />
+        <path
+           style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+           id="path6711"
+           sodipodi:nodetypes="cccc" />
+        <path
+           sodipodi:nodetypes="cccc"
+           id="path6713"
+           d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+           style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      </g>
+      <g
+         id="g3937"
+         transform="matrix(1,0,4.537846e-3,1,-0.138907,-1.394718e-15)"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true">
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           transform="matrix(1,0,-8.726683e-3,1,0.328074,1.276596)"
+           id="path6485"
+           d="M 33.282781,38.644744 L 22.407791,18.394765 C 22.095292,17.832266 21.532792,17.519767 20.907793,17.519767 C 20.282793,17.519767 19.720294,17.894765 19.407795,18.457265 L 8.7828048,38.707245 C 8.5328048,39.207244 8.5328048,39.894744 8.8453048,40.394743 C 9.1578038,40.894743 9.6578038,41.144742 10.282804,41.144742 L 31.782782,41.144742 C 32.407781,41.144742 32.97028,40.832243 33.220281,40.332243 C 33.53278,39.832243 33.53278,39.207244 33.282781,38.644744 z "
+           style="fill:#cc0000;fill-rule:nonzero;stroke:#9f0000;stroke-width:0.6382978;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+        <g
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           id="g6487"
+           transform="matrix(0.625,0,-5.534934e-3,0.634254,6.164053,15.76055)"
+           style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4">
+          <linearGradient
+             y2="56.052299"
+             x2="47.319698"
+             y1="11.1133"
+             x1="4.1914001"
+             gradientUnits="userSpaceOnUse"
+             id="linearGradient6525">
+            <stop
+               id="stop6529"
+               style="stop-color:#ffffff;stop-opacity:1;"
+               offset="0" />
+            <stop
+               id="stop6531"
+               style="stop-color:#ffffff;stop-opacity:0.34020618;"
+               offset="1" />
+          </linearGradient>
+          <path
+             inkscape:r_cy="true"
+             inkscape:r_cx="true"
+             id="path6496"
+             d="M 9.5,37.6 C 9.2,38.1 9.5,38.5 10,38.5 L 38.2,38.5 C 38.7,38.5 39,38.1 38.7,37.6 L 24.4,11 C 24.1,10.5 23.7,10.5 23.5,11 L 9.5,37.6 z "
+             style="fill:url(#linearGradient3946);stroke:none" />
+        </g>
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           transform="matrix(1,0,-8.726683e-3,1,0.318277,1.276596)"
+           sodipodi:nodetypes="ccsccscccc"
+           id="path1325"
+           d="M 32.323106,38.183905 L 22.150271,19.265666 C 21.71698,18.45069 21.561698,18.189213 20.908406,18.189213 C 20.346525,18.189213 20.054127,18.57002 19.651305,19.339291 L 9.7489285,38.242296 C 9.1737649,39.303588 9.1128238,39.580228 9.3937644,40.047345 C 9.6747034,40.514462 10.032797,40.48902 11.356441,40.519491 L 30.974593,40.519491 C 32.206825,40.534726 32.483988,40.440837 32.70874,39.97372 C 32.989681,39.506602 32.867799,39.136 32.323106,38.183905 z "
+           style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3948);stroke-width:0.63829792;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      </g>
+      <g
+         style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4"
+         transform="matrix(0.555088,0,0,0.555052,7.749711,17.80196)"
+         id="g6498"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true">
+        <path
+           style="stroke:none"
+           d="M 23.9,36.5 C 22.6,36.5 21.6,35.5 21.6,34.2 C 21.6,32.8 22.5,31.9 23.9,31.9 C 25.3,31.9 26.1,32.8 26.2,34.2 C 26.2,35.5 25.3,36.5 23.9,36.5 L 23.9,36.5 z M 22.5,30.6 L 21.9,19.1 L 25.9,19.1 L 25.3,30.6 L 22.4,30.6 L 22.5,30.6 z "
+           id="path6500"
+           inkscape:r_cx="true"
+           inkscape:r_cy="true" />
+      </g>
+    </g>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/document-new.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,448 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg249"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="document-new.svg"
+   inkscape:export-filename="/home/jimmac/gfx/novell/pdes/trunk/docs/BIGmime-text.png"
+   inkscape:export-xdpi="240.00000"
+   inkscape:export-ydpi="240.00000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective69" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4542">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4544" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4546" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4542"
+       id="radialGradient4548"
+       cx="24.306795"
+       cy="42.07798"
+       fx="24.306795"
+       fy="42.07798"
+       r="15.821514"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,-6.310056e-16,30.08928)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop12513" />
+      <stop
+         style="stop-color:#fff520;stop-opacity:0.89108908;"
+         offset="0.50000000"
+         id="stop12517" />
+      <stop
+         style="stop-color:#fff300;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop12514" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12512"
+       id="radialGradient278"
+       gradientUnits="userSpaceOnUse"
+       cx="55.000000"
+       cy="125.00000"
+       fx="55.000000"
+       fy="125.00000"
+       r="14.375000" />
+    <radialGradient
+       r="37.751713"
+       fy="3.7561285"
+       fx="8.8244190"
+       cy="3.7561285"
+       cx="8.8244190"
+       gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15656"
+       xlink:href="#linearGradient269"
+       inkscape:collect="always" />
+    <radialGradient
+       r="86.708450"
+       fy="35.736916"
+       fx="33.966679"
+       cy="35.736916"
+       cx="33.966679"
+       gradientTransform="scale(0.960493,1.041132)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15658"
+       xlink:href="#linearGradient259"
+       inkscape:collect="always" />
+    <radialGradient
+       r="38.158695"
+       fy="7.2678967"
+       fx="8.1435566"
+       cy="7.2678967"
+       cx="8.1435566"
+       gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15668"
+       xlink:href="#linearGradient15662"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd2"
+       id="radialGradient2283"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       cx="20.8921"
+       cy="114.5684"
+       fx="20.8921"
+       fy="114.5684"
+       r="5.256" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd3"
+       id="radialGradient2285"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       cx="20.8921"
+       cy="64.5679"
+       fx="20.8921"
+       fy="64.5679"
+       r="5.257" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.32941176"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="-130.2425"
+     inkscape:cy="-6.4480487"
+     inkscape:current-layer="layer6"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="688"
+     inkscape:window-x="166"
+     inkscape:window-y="151"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>New Document</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Shadow"
+     id="layer6"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.165152e-2,0,0,1.485743e-2,43.0076,42.68539)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+  </g>
+  <g
+     id="layer1"
+     inkscape:label="Base"
+     inkscape:groupmode="layer"
+     style="display:inline">
+    <rect
+       ry="1.1490486"
+       y="3.6464462"
+       x="6.6035528"
+       height="40.920494"
+       width="34.875000"
+       id="rect15391"
+       style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+    <rect
+       rx="0.14904857"
+       ry="0.14904857"
+       y="4.5839462"
+       x="7.6660538"
+       height="38.946384"
+       width="32.775887"
+       id="rect15660"
+       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+    <g
+       id="g2270"
+       transform="translate(0.646447,-3.798933e-2)">
+      <g
+         transform="matrix(0.229703,0.000000,0.000000,0.229703,4.967081,4.244972)"
+         style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+         id="g1440">
+        <radialGradient
+           gradientUnits="userSpaceOnUse"
+           fy="114.56840"
+           fx="20.892099"
+           r="5.2560000"
+           cy="114.56840"
+           cx="20.892099"
+           id="radialGradient1442">
+          <stop
+             id="stop1444"
+             style="stop-color:#F0F0F0"
+             offset="0" />
+          <stop
+             id="stop1446"
+             style="stop-color:#474747"
+             offset="1" />
+        </radialGradient>
+        <path
+           id="path1448"
+           d="M 23.428000,113.07000 C 23.428000,115.04300 21.828000,116.64200 19.855000,116.64200 C 17.881000,116.64200 16.282000,115.04200 16.282000,113.07000 C 16.282000,111.09600 17.882000,109.49700 19.855000,109.49700 C 21.828000,109.49700 23.428000,111.09700 23.428000,113.07000 z "
+           style="stroke:none" />
+        <radialGradient
+           gradientUnits="userSpaceOnUse"
+           fy="64.567902"
+           fx="20.892099"
+           r="5.2570000"
+           cy="64.567902"
+           cx="20.892099"
+           id="radialGradient1450">
+          <stop
+             id="stop1452"
+             style="stop-color:#F0F0F0"
+             offset="0" />
+          <stop
+             id="stop1454"
+             style="stop-color:#474747"
+             offset="1" />
+        </radialGradient>
+        <path
+           id="path1456"
+           d="M 23.428000,63.070000 C 23.428000,65.043000 21.828000,66.643000 19.855000,66.643000 C 17.881000,66.643000 16.282000,65.043000 16.282000,63.070000 C 16.282000,61.096000 17.882000,59.497000 19.855000,59.497000 C 21.828000,59.497000 23.428000,61.097000 23.428000,63.070000 z "
+           style="stroke:none" />
+      </g>
+      <path
+         id="path15570"
+         d="M 9.9950109,29.952326 C 9.9950109,30.405530 9.6274861,30.772825 9.1742821,30.772825 C 8.7208483,30.772825 8.3535532,30.405301 8.3535532,29.952326 C 8.3535532,29.498892 8.7210780,29.131597 9.1742821,29.131597 C 9.6274861,29.131597 9.9950109,29.499122 9.9950109,29.952326 z "
+         style="fill:url(#radialGradient2283);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+      <path
+         id="path15577"
+         d="M 9.9950109,18.467176 C 9.9950109,18.920380 9.6274861,19.287905 9.1742821,19.287905 C 8.7208483,19.287905 8.3535532,18.920380 8.3535532,18.467176 C 8.3535532,18.013742 8.7210780,17.646447 9.1742821,17.646447 C 9.6274861,17.646447 9.9950109,18.013972 9.9950109,18.467176 z "
+         style="fill:url(#radialGradient2285);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path15672"
+       d="M 11.505723,5.4942766 L 11.505723,43.400869"
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path15674"
+       d="M 12.500000,5.0205154 L 12.500000,43.038228"
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="new"
+     style="display:inline">
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient278);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.2500002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+       id="path12511"
+       sodipodi:cx="55.000000"
+       sodipodi:cy="125.00000"
+       sodipodi:rx="14.375000"
+       sodipodi:ry="14.375000"
+       d="M 69.375000 125.00000 A 14.375000 14.375000 0 1 1  40.625000,125.00000 A 14.375000 14.375000 0 1 1  69.375000 125.00000 z"
+       transform="matrix(0.783292,0.000000,0.000000,0.783292,-6.340883,-86.65168)"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
+       inkscape:export-xdpi="33.852203"
+       inkscape:export-ydpi="33.852203" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/document-open.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,535 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg97"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="document-open.svg"
+   inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/snowdunes/gnome-fs-directory-accept.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective90" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop271"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient269"
+       id="radialGradient8234"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0.000000,0.000000,1.046686,44.36453,-17.00717)"
+       cx="8.8244190"
+       cy="3.7561285"
+       fx="8.8244190"
+       fy="3.7561285"
+       r="37.751713" />
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#a8a8a8;stop-opacity:1;"
+         offset="0.5"
+         id="stop8238" />
+      <stop
+         id="stop261"
+         offset="1"
+         style="stop-color:#cdcdcd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="linearGradient8236"
+       x1="25.875"
+       y1="10.625"
+       x2="25.25"
+       y2="30.875"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,1.238806,0.000000,-7.880597)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient13842">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop13844" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop13846" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         style="stop-color:#6194cb;stop-opacity:1;"
+         offset="0"
+         id="stop9768" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="1"
+         id="stop9770" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient148">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.13402061;"
+         offset="0.0000000"
+         id="stop149" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.051546391;"
+         offset="1.0000000"
+         id="stop150" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient335">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop336" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop337" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         style="stop-color:#a0a0a0;stop-opacity:1;"
+         offset="0"
+         id="stop1790" />
+      <stop
+         style="stop-color:#a8a8a8;stop-opacity:1;"
+         offset="1"
+         id="stop1791" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient137">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.70059878;"
+         offset="0.0000000"
+         id="stop138" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop139" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient335"
+       id="linearGradient155"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.421537,0.703464)"
+       x1="19.116116"
+       y1="28.946041"
+       x2="19.426924"
+       y2="51.912693" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient148"
+       id="linearGradient156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.535299,0.000000,0.000000,0.651339,3.451418,2.448000)"
+       x1="14.899379"
+       y1="27.059643"
+       x2="22.715446"
+       y2="41.836895" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient137"
+       id="linearGradient158"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.462696,0.000000,6.907908e-2,0.683669,0.000000,0.000000)"
+       x1="5.2657914"
+       y1="18.725863"
+       x2="8.2122240"
+       y2="52.625851" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1789"
+       id="radialGradient159"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.015635,0.000000,0.103105,1.000512,0.000000,-8.369458e-2)"
+       cx="26.106777"
+       cy="38.195114"
+       fx="26.106777"
+       fy="38.195114"
+       r="32.259769" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9766"
+       id="linearGradient13162"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,1.022118,52.05694,-1.323026)"
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient13842"
+       id="linearGradient13848"
+       x1="22.25"
+       y1="37.625"
+       x2="19.75"
+       y2="14.875"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="-123.73861"
+     inkscape:cy="37.388301"
+     inkscape:current-layer="layer3"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1027"
+     inkscape:window-height="818"
+     inkscape:window-x="407"
+     inkscape:window-y="30"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Folder Icon Accept</dc:title>
+        <dc:date>2005-01-31</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <dc:description>Active state - when files are being dragged to.</dc:description>
+        <dc:publisher>
+          <cc:Agent>
+            <dc:title>Novell, Inc.</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Folder"
+     inkscape:groupmode="layer" />
+  <g
+     inkscape:label="Open"
+     id="layer3"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:nodetypes="ccccccssssccc"
+       style="color:#000000;fill:url(#radialGradient159);fill-opacity:1;fill-rule:nonzero;stroke:#5a5a5a;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2375"
+       d="M 4.6200285,38.651015 C 4.6618365,39.07147 5.1174141,39.491924 5.5311838,39.491924 L 36.667346,39.491924 C 37.081116,39.491924 37.453078,39.07147 37.41127,38.651015 L 34.714653,11.531728 C 34.672845,11.111274 34.217267,10.69082 33.803498,10.69082 L 21.080082,10.69082 C 20.489536,10.69082 19.870999,10.311268 19.677221,9.7304849 L 18.574219,6.4246085 C 18.404967,5.9173308 18.027069,5.6888138 17.259746,5.6888138 L 2.3224188,5.6888138 C 1.9086492,5.6888138 1.5366876,6.109268 1.5784956,6.529722 L 4.6200285,38.651015 z " />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 3.3386019,17.533487 L 34.488461,17.533487"
+       id="path13113"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.3301525,37.533487 L 35.317907,37.533487"
+       id="path13160"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path13139"
+       d="M 5.3301525,35.533487 L 35.317907,35.533487"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.165152e-2,0,0,1.903841e-2,42.41538,36.93372)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       sodipodi:nodetypes="ccccccsscsscccc"
+       id="path2380"
+       d="M 6.1717518,38.418674 C 6.2031078,38.729001 6.0171270,38.935886 5.6963478,38.832443 L 5.6963478,38.832443 C 5.3755686,38.729001 5.1477798,38.522116 5.1164238,38.211789 L 2.0868572,6.8445942 C 2.0555012,6.5342670 2.2434512,6.3468711 2.5537784,6.3468711 L 17.303531,6.2554251 C 17.834815,6.2521313 18.042960,6.3087310 18.183330,6.7726371 C 18.183330,6.7726371 19.268704,9.8854350 19.429564,10.470742 L 17.873968,7.5537061 C 17.608788,7.0564434 17.275224,7.1399365 16.901178,7.1399365 L 3.7717775,7.1399365 C 3.4614503,7.1399365 3.2754695,7.3468213 3.3068255,7.6571485 L 6.2856462,38.522116 L 6.1717518,38.418674 z "
+       style="color:#000000;fill:url(#linearGradient158);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.1734115;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path13145"
+       d="M 2.3052333,7.533487 L 17.088967,7.533487"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path13115"
+       d="M 2.7573333,11.533487 L 33.496214,11.533487"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <g
+       inkscape:export-ydpi="74.800003"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       transform="matrix(1.034424,0.000000,0.104520,1.034424,-10.03248,2.631914)"
+       id="g2381"
+       style="fill:#ffffff;fill-opacity:0.58031088;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;display:block">
+      <path
+         sodipodi:nodetypes="cscscs"
+         id="path2382"
+         d="M 41.785743,9.0363862 C 41.795369,8.5618034 41.800932,8.3118806 41.362350,8.3121830 L 28.806530,8.3208402 C 28.506530,8.3208402 28.481916,8.1776341 28.806530,8.3208402 C 29.131144,8.4640463 30.053628,8.9791114 30.989227,9.0218349 C 30.989227,9.0218349 41.785704,9.0382983 41.785743,9.0363862 z "
+         style="stroke:none" />
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path13123"
+       d="M 3.1628954,15.533487 L 33.993452,15.533487"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.1594716,33.533487 L 35.147226,33.533487"
+       id="path13121"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path13119"
+       d="M 4.8658086,31.533487 L 34.974533,31.533487"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 4.6336367,29.533487 L 34.802847,29.533487"
+       id="path13135"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path13137"
+       d="M 4.4629557,27.533487 L 34.632166,27.533487"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 4.2556718,25.533487 L 34.460793,25.533487"
+       id="path13143"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path13133"
+       d="M 4.0235198,23.533487 L 34.289101,23.533487"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 3.8528389,21.533487 L 34.11842,21.533487"
+       id="path13117"
+       sodipodi:nodetypes="cc" />
+    <g
+       inkscape:export-ydpi="74.800003"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       transform="matrix(1.034424,0,0.10452,1.034424,-10.03248,2.631914)"
+       id="g1853"
+       style="fill:#ffffff;fill-opacity:0.5803109;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4;display:block">
+      <path
+         sodipodi:nodetypes="cscscs"
+         id="path1855"
+         d="M 41.785743,9.0363862 C 41.795369,8.5618034 41.800932,8.3118806 41.36235,8.312183 L 28.80653,8.3208402 C 28.50653,8.3208402 28.481916,8.1776341 28.80653,8.3208402 C 29.131144,8.4640463 30.053628,8.9791114 30.989227,9.0218349 C 30.989227,9.0218349 41.785704,9.0382983 41.785743,9.0363862 z "
+         style="stroke:none" />
+    </g>
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 2.9642313,13.533487 L 33.990735,13.533487"
+       id="path13127"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path13125"
+       d="M 3.6514189,19.533487 L 33.947215,19.533487"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 2.5242572,9.5334871 L 17.805073,9.5334871"
+       id="path13147"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.39204545;color:#000000;fill:url(#linearGradient13848);fill-opacity:1.0;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 34.375,14.125 L 37,38.75 L 6,38.875 C 6,38.875 4.125,14.125 4.125,14.125 C 4.125,14.125 34.5,14.125 34.375,14.125 z "
+       id="path13840"
+       sodipodi:nodetypes="cccsc" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient8236);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8234);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 43.375,2.4944033 C 43.875,19.373135 34.299937,21.022879 37.362437,31.494661 C 37.362437,31.494661 5.875,32.380598 5.875,32.380598 C 4,19.527986 14.25,11.166045 11.25,2.649254 L 43.375,2.4944033 z "
+       id="path8230"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 15.4375,6.5624999 L 39,6.5624999"
+       id="path8277"
+       sodipodi:nodetypes="cc" />
+    <path
+       inkscape:export-ydpi="74.800003"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       sodipodi:nodetypes="cccsscccscc"
+       id="path2401"
+       d="M 5.7785654,39.065997 C 5.8820074,39.277466 6.0888914,39.488925 6.3992173,39.488925 L 39.70767,39.488925 C 39.914562,39.488925 40.228834,39.36262 40.415844,39.224574 C 40.946246,38.833039 41.070704,38.612189 41.308626,38.251107 C 43.756752,34.535647 47.113767,18.974214 47.113767,18.974214 C 47.217209,18.762754 47.010326,18.551294 46.7,18.551294 L 11.776358,18.551294 C 11.466032,18.551294 10.120393,34.658624 6.9133592,37.838317 L 5.6751235,39.065997 L 5.7785654,39.065997 z "
+       style="opacity:1;color:#000000;fill:url(#linearGradient13162);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path8279"
+       d="M 15.356073,8.5624999 L 35.08142,8.5624999"
+       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <path
+       id="path323"
+       d="M 13.134476,20.138641 C 12.361729,25.129398 11.633175,29.147884 10.418486,33.652505 C 12.804971,32.945398 17.534602,30.448000 27.534602,30.448000 C 37.534602,30.448000 44.258175,21.199301 45.186253,20.094447 L 13.134476,20.138641 z "
+       style="fill:url(#linearGradient156);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 15.143007,10.5625 L 39.457831,10.5625"
+       id="path8281"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient155);stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;opacity:0.52272727"
+       d="M 45.820083,19.687500 L 12.661612,19.687500 C 12.661612,19.687500 10.513864,35.707107 7.9393398,37.928078 C 16.060417,37.928078 39.510511,37.879442 39.530330,37.879442 C 41.281989,37.879442 44.437971,25.243248 45.820083,19.687500 z "
+       id="path324"
+       sodipodi:nodetypes="cccsc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path8283"
+       d="M 14.398767,12.5625 L 38.252159,12.5625"
+       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <path
+       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.00000048;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 13.629028,14.5625 L 36.975331,14.5625"
+       id="path8285"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path8287"
+       d="M 12.520679,16.5625 L 31.16684,16.5625"
+       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <path
+       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 6.375,31.75 C 5.1336344,19.511961 13.5625,12.6875 12,2.9999999 L 42.875,2.9999999 L 12.875,3.6249999 C 14.125,13.1875 6.6786165,18.271447 6.375,31.75 z "
+       id="path8289"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="pattern" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/document-print.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,532 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="document-print.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg2994"
+   height="48px"
+   width="48px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective84" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient7612">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop7614" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop7616" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7612"
+       id="radialGradient7618"
+       cx="24.000000"
+       cy="41.875000"
+       fx="24.000000"
+       fy="41.875000"
+       r="19.125000"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,0.000000,27.91667)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4762">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.12371134;"
+         offset="0.0000000"
+         id="stop4764" />
+      <stop
+         id="stop4768"
+         offset="0.10344828"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4766" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4741">
+      <stop
+         id="stop4743"
+         offset="0.0000000"
+         style="stop-color:#dcdcda;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4745"
+         offset="1.0000000"
+         style="stop-color:#bab9b7;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4733">
+      <stop
+         id="stop4735"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23711340;" />
+      <stop
+         id="stop4737"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4698">
+      <stop
+         id="stop4700"
+         offset="0.0000000"
+         style="stop-color:#fffffd;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#bbbbb9;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop4706" />
+      <stop
+         id="stop4702"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4688">
+      <stop
+         id="stop4690"
+         offset="0.0000000"
+         style="stop-color:#666666;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4692"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4680"
+       inkscape:collect="always">
+      <stop
+         id="stop4682"
+         offset="0"
+         style="stop-color:#f7f6f5;stop-opacity:1;" />
+      <stop
+         id="stop4684"
+         offset="1"
+         style="stop-color:#f7f6f5;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4668">
+      <stop
+         id="stop4670"
+         offset="0"
+         style="stop-color:#8e8d87;stop-opacity:1;" />
+      <stop
+         style="stop-color:#cbc9c1;stop-opacity:1.0000000;"
+         offset="0.27586207"
+         id="stop4676" />
+      <stop
+         id="stop4672"
+         offset="1.0000000"
+         style="stop-color:#8e8d87;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         offset="0.0000000"
+         style="stop-color:#e0e0e0;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.40546969"
+         id="stop4886" />
+      <stop
+         style="stop-color:#cdcdcd;stop-opacity:1.0000000;"
+         offset="0.53448278"
+         id="stop4884" />
+      <stop
+         id="stop261"
+         offset="1.0000000"
+         style="stop-color:#494949;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+      <stop
+         id="stop15666"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       r="2.1227016"
+       fy="26.925594"
+       fx="9.1295490"
+       cy="26.925594"
+       cx="9.1295490"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient1433"
+       xlink:href="#linearGradient4698"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="72.064316"
+       x2="9.9128132"
+       y1="57.227650"
+       x1="9.8698082"
+       gradientTransform="matrix(2.772086,0.000000,0.000000,0.360739,0.618718,2.883883)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1447"
+       xlink:href="#linearGradient4733"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="54.136139"
+       x2="10.338233"
+       y1="64.652260"
+       x1="10.338233"
+       gradientTransform="matrix(2.369844,0.000000,0.000000,0.421969,0.000000,2.000000)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1451"
+       xlink:href="#linearGradient4680"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="62.282467"
+       x2="9.7052784"
+       y1="70.724976"
+       x1="9.7316532"
+       gradientTransform="matrix(2.369844,0.000000,0.000000,0.421969,0.000000,2.000000)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1453"
+       xlink:href="#linearGradient4688"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="19.337463"
+       x2="20.717800"
+       y1="25.140253"
+       x1="20.771229"
+       gradientTransform="matrix(1.198769,0,0,0.853565,-0.143086,2.034513)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1456"
+       xlink:href="#linearGradient15662"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="25.247311"
+       x2="24.789707"
+       y1="3.6785457"
+       x1="25.056711"
+       gradientTransform="matrix(0.944939,0,0,1.076147,6.844577e-2,4.093177)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1459"
+       xlink:href="#linearGradient259"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="58.831264"
+       x2="15.487823"
+       y1="32.539238"
+       x1="15.387969"
+       gradientTransform="matrix(1.490161,0,0,0.668741,8.895132e-2,2)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1464"
+       xlink:href="#linearGradient4762"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="88.294930"
+       x2="18.972126"
+       y1="88.294930"
+       x1="1.8456430"
+       gradientTransform="matrix(2.291824,0,0,0.434269,8.855179e-2,2)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1468"
+       xlink:href="#linearGradient4741"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="88.294933"
+       x2="18.972126"
+       y1="88.294933"
+       x1="1.8456431"
+       gradientTransform="matrix(2.30272,0,0,0.437918,0,0.584034)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1471"
+       xlink:href="#linearGradient4668"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="160"
+     inkscape:window-x="331"
+     inkscape:window-height="688"
+     inkscape:window-width="872"
+     inkscape:guide-bbox="true"
+     showguides="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="-18.264187"
+     inkscape:cx="-72.591911"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.090196078"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:showpageshadow="false"
+     fill="#729fcf" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Print Document</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>document</rdf:li>
+            <rdf:li>lpr</rdf:li>
+            <rdf:li>print</rdf:li>
+            <rdf:li>local</rdf:li>
+            <rdf:li>laser</rdf:li>
+            <rdf:li>bubblejet</rdf:li>
+            <rdf:li>inkjet</rdf:li>
+            <rdf:li>print</rdf:li>
+            <rdf:li>output</rdf:li>
+            <rdf:li>cups</rdf:li>
+            <rdf:li>lpd</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.411405e-2,0,0,1.929202e-2,45.48953,39.75228)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <rect
+       ry="1.7115477"
+       rx="1.7115483"
+       y="36.004189"
+       x="4.75"
+       height="6.4915943"
+       width="38.4375"
+       id="rect4652"
+       style="fill:url(#linearGradient1471);fill-opacity:1;stroke:#595959;stroke-width:0.99999982;stroke-miterlimit:4;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="cssssssssssss"
+       id="rect4609"
+       d="M 7.1308961,21.5 L 40.870615,21.5 C 41.255661,21.5 41.747648,21.788155 42.051049,22.223919 C 42.354451,22.659684 43.787518,24.83394 44.109448,25.297964 C 44.431378,25.761987 44.502397,26.201852 44.502397,26.774049 L 44.502397,38.850951 C 44.502397,39.764524 43.770402,40.5 42.861152,40.5 L 5.1403596,40.5 C 4.2311094,40.5 3.4991138,39.764524 3.4991138,38.850951 L 3.4991138,26.774049 C 3.4991138,26.280031 3.6002798,25.571641 3.9455202,25.120718 C 4.3811666,24.551713 5.5498664,22.57277 5.8581276,22.153118 C 6.1663887,21.733467 6.7324461,21.5 7.1308961,21.5 z "
+       style="color:#000000;fill:url(#linearGradient1468);fill-opacity:1;fill-rule:nonzero;stroke:#676767;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cssssssss"
+       id="path4718"
+       d="M 7.705278,21.975532 C 7.20729,21.975532 6.5669691,22.107308 6.3043987,22.511224 L 4.4657443,25.339651 C 4.169761,25.794966 4.4993705,26.868141 5.3900051,26.868141 L 42.678553,26.868141 C 43.883282,26.868141 43.8868,25.858073 43.602814,25.428039 L 41.851714,22.776389 C 41.534204,22.295589 41.418956,21.975532 40.625945,21.975532 L 7.705278,21.975532 z "
+       style="fill:#fbfbfb;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1464);stroke-width:0.94696701;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 7.6002951,22.445756 L 40.374658,22.445756 C 40.739745,22.445756 41.206233,22.718629 41.493909,23.131283 C 41.781585,23.543938 42.788049,25.160945 43.093293,25.60036 C 43.398536,26.039775 43.528159,26.456312 43.528159,26.998164 L 43.528159,38.279261 C 43.528159,39.144385 43.394653,39.528356 42.532529,39.528356 L 5.530506,39.528356 C 4.6683828,39.528356 4.472593,39.144385 4.472593,38.279261 L 4.472593,26.998164 C 4.472593,26.530345 4.6930819,25.859523 5.0204282,25.432514 C 5.4334949,24.893685 6.1012112,23.461633 6.393495,23.064237 C 6.6857789,22.666841 7.222497,22.445756 7.6002951,22.445756 z "
+       id="path4750"
+       sodipodi:nodetypes="cssssssssssss" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       id="rect15391"
+       d="M 11.68177,4.4977642 L 36.313839,4.4977642 C 36.964072,4.4977642 37.487546,5.007949 37.487546,5.6416762 L 37.487546,24.348117 L 10.508063,24.348117 L 10.508063,5.6416762 C 10.508063,5.007949 11.031536,4.4977642 11.68177,4.4977642 z "
+       style="color:#000000;fill:url(#linearGradient1459);fill-opacity:1;fill-rule:nonzero;stroke:#898989;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <rect
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1456);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       id="rect15660"
+       width="25.000576"
+       height="18.836374"
+       x="11.498513"
+       y="5.4992466"
+       ry="0.17677675"
+       rx="0.17677672" />
+    <rect
+       ry="1.7115483"
+       rx="1.7115483"
+       y="27.375000"
+       x="6.8750000"
+       height="5.1875000"
+       width="33.750000"
+       id="rect4678"
+       style="fill:url(#linearGradient1451);fill-opacity:1.0000000;stroke:url(#linearGradient1453);stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+    <path
+       transform="translate(0.000000,2.000000)"
+       d="M 10.871767 27.626486 A 1.2816310 1.2816310 0 1 1  8.3085046,27.626486 A 1.2816310 1.2816310 0 1 1  10.871767 27.626486 z"
+       sodipodi:ry="1.2816310"
+       sodipodi:rx="1.2816310"
+       sodipodi:cy="27.626486"
+       sodipodi:cx="9.5901356"
+       id="path4696"
+       style="fill:url(#radialGradient1433);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="csscssssc"
+       id="path4731"
+       d="M 11.743718,25.416053 L 37.306218,25.478553 C 37.993716,25.480234 38.294038,25.107558 38.243718,24.478553 L 38.118718,22.916053 L 39.984835,22.916053 C 40.797335,22.916053 40.975035,23.108616 41.172335,23.478553 L 41.672335,24.416053 C 42.199130,25.403793 43.483508,26.390165 42.170495,26.390165 C 37.667784,26.390165 13.993718,26.041053 11.743718,25.416053 z "
+       style="fill:url(#linearGradient1447);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.36571429" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+       d="M 42.9375,26.5 L 4.8125,26.5"
+       id="path4760"
+       sodipodi:nodetypes="cc" />
+    <g
+       transform="translate(0.000000,2.000000)"
+       style="opacity:0.43575415"
+       id="g4849">
+      <rect
+         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="rect4831"
+         width="19.000000"
+         height="1.0000000"
+         x="14.000000"
+         y="5.0000000" />
+      <rect
+         y="7.0000000"
+         x="14.000000"
+         height="1.0000000"
+         width="19.000000"
+         id="rect4833"
+         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <rect
+         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="rect4835"
+         width="19.000000"
+         height="1.0000000"
+         x="14.000000"
+         y="9.0000000" />
+      <rect
+         y="11.000000"
+         x="14.000000"
+         height="1.0000000"
+         width="19.000000"
+         id="rect4837"
+         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <rect
+         style="color:#000000;fill:#000000;fill-opacity:0.29239765;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="rect4839"
+         width="11.000000"
+         height="1.0000000"
+         x="14.000000"
+         y="13.000000" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="arrow">
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path8643"
+       d="M 21.02159,20.989431 L 27.989391,20.989431 L 27.989391,16.064984 L 31,16.064984 L 24.553756,8 L 17.435622,15.986875 L 21.023684,15.986875 L 21.02159,20.989431 z "
+       style="opacity:1;color:#000000;fill:#a7a7a7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999958;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/document-save-as.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,663 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="document-save-as.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg2913"
+   height="48px"
+   width="48px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective111" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient6965">
+      <stop
+         style="stop-color:#dddddd;stop-opacity:1;"
+         offset="0"
+         id="stop6967" />
+      <stop
+         style="stop-color:#fdfdfd;stop-opacity:1;"
+         offset="1"
+         id="stop6969" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6925">
+      <stop
+         style="stop-color:#204a87;stop-opacity:1;"
+         offset="0"
+         id="stop6927" />
+      <stop
+         style="stop-color:#204a87;stop-opacity:0;"
+         offset="1"
+         id="stop6929" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6901">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop6903" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:0;"
+         offset="1"
+         id="stop6905" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4991">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4993" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4995" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4991"
+       id="radialGradient4997"
+       cx="23.447077"
+       cy="6.4576745"
+       fx="23.447077"
+       fy="6.4576745"
+       r="19.0625"
+       gradientTransform="matrix(-1.314471,-1.006312e-2,-1.022964e-2,1.336221,46.22108,-4.909887)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient2187"
+       inkscape:collect="always">
+      <stop
+         id="stop2189"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2191"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient1764"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.914114,1.412791e-16,-1.412791e-16,0.914114,-3.868698,-2.706902)"
+       x1="33.059906"
+       y1="27.394117"
+       x2="12.624337"
+       y2="12.583769" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8662">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop8664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8666" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient8668"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737"
+       gradientTransform="matrix(1.000000,-7.816467e-32,-1.132409e-32,0.536723,-5.897962e-14,16.87306)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient2555">
+      <stop
+         id="stop2557"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e6e6e6;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop2561" />
+      <stop
+         id="stop2563"
+         offset="0.75000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1.0000000;"
+         offset="0.84166664"
+         id="stop2565" />
+      <stop
+         id="stop2559"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4274">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.25490198;"
+         offset="0.0000000"
+         id="stop4276" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4278" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4264"
+       inkscape:collect="always">
+      <stop
+         id="stop4266"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4268"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4254"
+       inkscape:collect="always">
+      <stop
+         id="stop4256"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4258"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4244">
+      <stop
+         id="stop4246"
+         offset="0.0000000"
+         style="stop-color:#e4e4e4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4248"
+         offset="1.0000000"
+         style="stop-color:#d3d3d3;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4236"
+       inkscape:collect="always">
+      <stop
+         id="stop4238"
+         offset="0"
+         style="stop-color:#eeeeee;stop-opacity:1;" />
+      <stop
+         id="stop4240"
+         offset="1"
+         style="stop-color:#eeeeee;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4228">
+      <stop
+         id="stop4230"
+         offset="0.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4232"
+         offset="1.0000000"
+         style="stop-color:#9f9f9f;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4184">
+      <stop
+         id="stop4186"
+         offset="0.0000000"
+         style="stop-color:#838383;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4188"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(0.795493,3.799180)"
+       y2="35.281250"
+       x2="24.687500"
+       y1="35.281250"
+       x1="7.0625000"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4209"
+       xlink:href="#linearGradient4184"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="40.943935"
+       x2="36.183067"
+       y1="28.481176"
+       x1="7.6046205"
+       id="linearGradient4234"
+       xlink:href="#linearGradient4228"
+       inkscape:collect="always"
+       gradientTransform="translate(0.000000,5.125000)" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.758667"
+       x2="12.221823"
+       y1="37.205811"
+       x1="12.277412"
+       id="linearGradient4242"
+       xlink:href="#linearGradient4236"
+       inkscape:collect="always"
+       gradientTransform="translate(0.000000,5.125000)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.286242,0.781698,-0.710782,1.169552,-2.354348,0.248140)"
+       r="20.935817"
+       fy="2.9585190"
+       fx="15.571491"
+       cy="2.9585190"
+       cx="15.571491"
+       id="radialGradient4250"
+       xlink:href="#linearGradient4244"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="47.620636"
+       x2="44.096100"
+       y1="4.4331360"
+       x1="12.378357"
+       id="linearGradient4260"
+       xlink:href="#linearGradient4254"
+       inkscape:collect="always"
+       gradientTransform="translate(0.000000,5.125000)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.651032,-2.885063e-16,9.455693)"
+       r="23.555494"
+       fy="27.096155"
+       fx="23.201941"
+       cy="27.096155"
+       cx="23.201941"
+       id="radialGradient4270"
+       xlink:href="#linearGradient4264"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.357183"
+       x2="23.688078"
+       y1="11.318835"
+       x1="23.688078"
+       id="linearGradient4272"
+       xlink:href="#linearGradient4274"
+       inkscape:collect="always"
+       gradientTransform="translate(0.000000,5.125000)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2555"
+       id="linearGradient2553"
+       x1="33.431175"
+       y1="31.964777"
+       x2="21.747974"
+       y2="11.780679"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6901"
+       id="linearGradient6907"
+       x1="14.751649"
+       y1="15.868432"
+       x2="8.8953285"
+       y2="16.743431"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6925"
+       id="linearGradient6931"
+       x1="12.25"
+       y1="18.25"
+       x2="7"
+       y2="21.118431"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6965"
+       id="linearGradient6971"
+       x1="28.061466"
+       y1="31.431349"
+       x2="28.061466"
+       y2="36.437492"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="999"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer2"
+     inkscape:cy="15.12998"
+     inkscape:cx="-21.21754"
+     inkscape:zoom="2.8284271"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.22745098"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:showpageshadow="false"
+     fill="#3465a4"
+     stroke="#204a87" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Save As</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>hdd</rdf:li>
+            <rdf:li>hard drive</rdf:li>
+            <rdf:li>save as</rdf:li>
+            <rdf:li>io</rdf:li>
+            <rdf:li>store</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:identifier />
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="pix"
+     id="layer2"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.411405e-2,0,0,1.929202e-2,45.48953,41.75228)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       sodipodi:nodetypes="cccsccccccccc"
+       id="path4196"
+       d="M 11.28569,13.087628 C 10.66069,13.087628 10.254441,13.377808 10.004442,13.931381 C 10.004441,13.931381 3.5356915,31.034938 3.5356915,31.034938 C 3.5356915,31.034938 3.2856915,31.706497 3.2856915,32.816188 C 3.2856915,32.816188 3.2856915,42.466156 3.2856915,42.466156 C 3.2856915,43.548769 3.943477,44.091158 4.9419415,44.091156 L 43.50444,44.091156 C 44.489293,44.091156 45.09819,43.372976 45.09819,42.247406 L 45.09819,32.597438 C 45.09819,32.597438 45.204153,31.827015 45.00444,31.284938 L 38.28569,14.087631 C 38.101165,13.575725 37.648785,13.099533 37.16069,13.087628 L 11.28569,13.087628 z "
+       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#535353;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="ccccccccc"
+       id="path4170"
+       d="M 3.2735915,32.121812 L 4.0381936,31.429597 L 41.647883,31.492097 L 45.11029,31.809395 L 45.11029,42.247927 C 45.11029,43.373496 44.503272,44.091258 43.518419,44.091258 L 4.9354314,44.091258 C 3.9369667,44.091258 3.2735915,43.549207 3.2735915,42.466594 L 3.2735915,32.121812 z "
+       style="fill:url(#linearGradient4234);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02044296px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="csccccccs"
+       id="path3093"
+       d="M 3.5490842,31.039404 C 2.8347985,32.50369 3.5484686,33.432261 4.5847985,33.432261 C 4.5847985,33.432261 43.584797,33.432261 43.584797,33.432261 C 44.703844,33.408451 45.430035,32.420356 45.013368,31.289403 L 38.299082,14.078704 C 38.114558,13.566798 37.64432,13.090606 37.156225,13.078701 L 11.299083,13.078701 C 10.674083,13.078701 10.263369,13.382274 10.01337,13.935847 C 10.01337,13.935847 3.5490842,31.039404 3.5490842,31.039404 z "
+       style="fill:url(#radialGradient4250);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <rect
+       y="36.299183"
+       x="7.857996"
+       height="5.5625"
+       width="17.625"
+       id="rect4174"
+       style="opacity:1;color:#000000;fill:url(#linearGradient4209);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.40899992;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cscc"
+       id="path4194"
+       d="M 7.8579947,41.86168 C 7.8579947,41.86168 7.8579947,37.850195 7.8579947,37.850195 C 9.6935221,41.029421 16.154485,41.86168 20.795492,41.86168 C 20.795492,41.86168 7.8579947,41.86168 7.8579947,41.86168 z "
+       style="opacity:0.81142853;fill:url(#linearGradient4242);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path4201"
+       d="M 44.796162,30.753688 C 44.859684,32.003662 44.382159,33.069528 43.474046,33.097438 C 43.474046,33.097438 5.3553296,33.097437 5.3553297,33.097438 C 4.0660978,33.097438 3.4875937,32.772491 3.271279,32.229382 C 3.3630404,33.173714 4.0970964,33.878688 5.3553297,33.878688 C 5.3553296,33.878687 43.474046,33.878688 43.474046,33.878688 C 44.550053,33.845617 45.226851,32.454664 44.82621,30.883897 L 44.796162,30.753688 z "
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path4211"
+       d="M 10.96875,15.28125 C 10.922675,15.481571 10.78125,15.668047 10.78125,15.875 C 10.78125,16.823605 11.37223,17.664474 12.125,18.46875 C 12.365268,18.314675 12.490117,18.114342 12.75,17.96875 C 11.809691,17.152746 11.196604,16.252168 10.96875,15.28125 z M 37.625,15.28125 C 37.396273,16.250866 36.782988,17.153676 35.84375,17.96875 C 36.117894,18.122332 36.247738,18.33699 36.5,18.5 C 37.257262,17.693344 37.8125,16.826956 37.8125,15.875 C 37.8125,15.668047 37.670906,15.481571 37.625,15.28125 z M 39.8125,23.71875 C 39.198709,27.758861 32.513887,30.96875 24.28125,30.96875 C 16.068996,30.968751 9.4211001,27.775964 8.78125,23.75 C 8.7488928,23.947132 8.65625,24.141882 8.65625,24.34375 C 8.6562503,28.661697 15.645354,32.187501 24.28125,32.1875 C 32.917146,32.1875 39.937499,28.661698 39.9375,24.34375 C 39.9375,24.130826 39.848449,23.926394 39.8125,23.71875 z "
+       style="opacity:0.69142857;color:#000000;fill:url(#linearGradient4272);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       transform="translate(8.838843e-2,5.301780)"
+       d="M 8.5736699 25.593554 A 1.3700194 1.016466 0 1 1  5.833631,25.593554 A 1.3700194 1.016466 0 1 1  8.5736699 25.593554 z"
+       sodipodi:ry="1.016466"
+       sodipodi:rx="1.3700194"
+       sodipodi:cy="25.593554"
+       sodipodi:cx="7.2036505"
+       id="path4224"
+       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.45762706;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.45762706;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path4226"
+       sodipodi:cx="7.2036505"
+       sodipodi:cy="25.593554"
+       sodipodi:rx="1.3700194"
+       sodipodi:ry="1.016466"
+       d="M 8.5736699 25.593554 A 1.3700194 1.016466 0 1 1  5.833631,25.593554 A 1.3700194 1.016466 0 1 1  8.5736699 25.593554 z"
+       transform="translate(33.96705,5.213390)" />
+    <path
+       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 11.642515,13.540723 C 11.040823,13.540723 10.649724,13.820081 10.409049,14.35301 C 10.409048,14.35301 3.9940341,30.943732 3.9940341,30.943732 C 3.9940341,30.943732 3.7533573,31.590247 3.7533573,32.658555 C 3.7533573,32.658555 3.7533573,41.948651 3.7533573,41.948651 C 3.7533573,43.303391 4.1974134,43.57555 5.3478414,43.57555 L 43.034746,43.57555 C 44.357872,43.57555 44.569062,43.259153 44.569062,41.738058 L 44.569062,32.447962 C 44.569062,32.447962 44.671072,31.706271 44.478807,31.184409 L 37.885616,14.378434 C 37.707973,13.885617 37.334964,13.552184 36.865071,13.540723 L 11.642515,13.540723 z "
+       id="path4252"
+       sodipodi:nodetypes="cccsccccccccc" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
+       d="M 40.5,36.554166 L 40.5,41.575101"
+       id="path4282" />
+    <path
+       id="path4284"
+       d="M 38.5,36.613943 L 38.5,41.634878"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
+       d="M 36.5,36.613943 L 36.5,41.634878"
+       id="path4286" />
+    <path
+       id="path4288"
+       d="M 34.5,36.613943 L 34.5,41.634878"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
+       d="M 32.5,36.613943 L 32.5,41.634878"
+       id="path4290" />
+    <path
+       id="path4292"
+       d="M 30.5,36.613943 L 30.5,41.634878"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
+    <path
+       id="path4294"
+       d="M 39.5,36.604065 L 39.5,41.625"
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 37.5,36.663842 L 37.5,41.684777"
+       id="path4296" />
+    <path
+       id="path4298"
+       d="M 35.5,36.663842 L 35.5,41.684777"
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 33.5,36.663842 L 33.5,41.684777"
+       id="path4300" />
+    <path
+       id="path4302"
+       d="M 31.5,36.663842 L 31.5,41.684777"
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path4572"
+       d="M 7.875,36.3125 L 7.875,41.84375 L 20.4375,41.84375 L 8.21875,41.5 L 7.875,36.3125 z "
+       style="opacity:0.43999999;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.20571427;color:#000000;fill:url(#linearGradient2553);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.93365198;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.42372879;visibility:visible;display:inline;overflow:visible"
+       id="path2545"
+       sodipodi:cx="25"
+       sodipodi:cy="19.5625"
+       sodipodi:rx="14.875"
+       sodipodi:ry="6.6875"
+       d="M 39.875 19.5625 A 14.875 6.6875 0 1 1  10.125,19.5625 A 14.875 6.6875 0 1 1  39.875 19.5625 z"
+       transform="matrix(1.037815,0.000000,0.000000,1.060747,-1.632878,3.030370)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer1"
+     inkscape:label="down">
+    <path
+       transform="matrix(1.130190,1.178179e-16,7.918544e-17,-0.759601,-3.909725,53.66554)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.14117647;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient6907);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient6931);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 3.2034501,25.835194 C 2.1729477,-5.3853369 28.741616,-0.4511153 28.582416,15.788689 L 35.89533,15.788689 L 24.517652,28.774671 L 12.585426,15.788689 C 12.585426,15.788689 20.126859,15.788689 20.126859,15.788689 C 20.583921,4.8193225 3.4092324,1.6100346 3.2034501,25.835194 z "
+       id="path1432"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       id="path2177"
+       d="M 7.6642103,9.1041047 C 12.40638,-0.0400306 28.122336,2.7175443 27.761604,16.579393 L 34.078976,16.579393 C 34.078976,16.579393 24.513151,27.536769 24.513151,27.536769 L 14.41668,16.579393 C 14.41668,16.579393 20.87332,16.579393 20.87332,16.579393 C 21.144975,5.0041615 10.922265,5.5345215 7.6642103,9.1041047 z "
+       style="opacity:0.47159091;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1764);stroke-width:0.99999934;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <path
+       style="opacity:0.49431817;color:#000000;fill:url(#radialGradient4997);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 34.767155,16.211613 L 32.782979,18.757322 C 27.372947,17.241029 24.896829,21.486664 17.109284,20.489112 L 13.247998,16.080077 L 20.434468,16.162862 C 20.483219,4.3164571 8.3443098,4.998966 5.0292663,13.627829 C 8.8372201,-1.2611216 27.893316,0.8064118 28.28332,16.114112 L 34.767155,16.211613 z "
+       id="path4989"
+       sodipodi:nodetypes="cccccccc" />
+    <rect
+       style="opacity:1;color:#000000;fill:url(#linearGradient6971);fill-opacity:1.0;fill-rule:nonzero;stroke:#7d7d7d;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       id="rect6951"
+       width="39.247944"
+       height="12.278223"
+       x="4.5635238"
+       y="30.298382"
+       rx="1.6249996"
+       ry="1.6249996" />
+    <rect
+       style="opacity:0.59659091;color:#000000;fill:#7d7d7d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       id="rect6953"
+       width="16"
+       height="7"
+       x="7"
+       y="33"
+       ry="0" />
+    <rect
+       style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       id="rect6957"
+       width="1"
+       height="9"
+       x="24"
+       y="32" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/document-save.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,619 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="document-save.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg2913"
+   height="48px"
+   width="48px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective104" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6925">
+      <stop
+         style="stop-color:#204a87;stop-opacity:1;"
+         offset="0"
+         id="stop6927" />
+      <stop
+         style="stop-color:#204a87;stop-opacity:0;"
+         offset="1"
+         id="stop6929" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6901">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop6903" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:0;"
+         offset="1"
+         id="stop6905" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4991">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4993" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4995" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4991"
+       id="radialGradient4997"
+       cx="23.447077"
+       cy="6.4576745"
+       fx="23.447077"
+       fy="6.4576745"
+       r="19.0625"
+       gradientTransform="matrix(-1.314471,-1.006312e-2,-1.022964e-2,1.336221,46.22108,-4.909887)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient2187"
+       inkscape:collect="always">
+      <stop
+         id="stop2189"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2191"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient1764"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.914114,1.412791e-16,-1.412791e-16,0.914114,-3.868698,-2.706902)"
+       x1="33.059906"
+       y1="27.394117"
+       x2="12.624337"
+       y2="12.583769" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8662">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop8664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8666" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient8668"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737"
+       gradientTransform="matrix(1.000000,-7.816467e-32,-1.132409e-32,0.536723,-5.897962e-14,16.87306)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient2555">
+      <stop
+         id="stop2557"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e6e6e6;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop2561" />
+      <stop
+         id="stop2563"
+         offset="0.75000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1.0000000;"
+         offset="0.84166664"
+         id="stop2565" />
+      <stop
+         id="stop2559"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4274">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.25490198;"
+         offset="0.0000000"
+         id="stop4276" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4278" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4264"
+       inkscape:collect="always">
+      <stop
+         id="stop4266"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4268"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4254"
+       inkscape:collect="always">
+      <stop
+         id="stop4256"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4258"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4244">
+      <stop
+         id="stop4246"
+         offset="0.0000000"
+         style="stop-color:#e4e4e4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4248"
+         offset="1.0000000"
+         style="stop-color:#d3d3d3;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4236"
+       inkscape:collect="always">
+      <stop
+         id="stop4238"
+         offset="0"
+         style="stop-color:#eeeeee;stop-opacity:1;" />
+      <stop
+         id="stop4240"
+         offset="1"
+         style="stop-color:#eeeeee;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4228">
+      <stop
+         id="stop4230"
+         offset="0.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4232"
+         offset="1.0000000"
+         style="stop-color:#9f9f9f;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4184">
+      <stop
+         id="stop4186"
+         offset="0.0000000"
+         style="stop-color:#838383;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4188"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(0.795493,3.799180)"
+       y2="35.281250"
+       x2="24.687500"
+       y1="35.281250"
+       x1="7.0625000"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4209"
+       xlink:href="#linearGradient4184"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="40.943935"
+       x2="36.183067"
+       y1="28.481176"
+       x1="7.6046205"
+       id="linearGradient4234"
+       xlink:href="#linearGradient4228"
+       inkscape:collect="always"
+       gradientTransform="translate(0.000000,5.125000)" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.758667"
+       x2="12.221823"
+       y1="37.205811"
+       x1="12.277412"
+       id="linearGradient4242"
+       xlink:href="#linearGradient4236"
+       inkscape:collect="always"
+       gradientTransform="translate(0.000000,5.125000)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.286242,0.781698,-0.710782,1.169552,-2.354348,0.248140)"
+       r="20.935817"
+       fy="2.9585190"
+       fx="15.571491"
+       cy="2.9585190"
+       cx="15.571491"
+       id="radialGradient4250"
+       xlink:href="#linearGradient4244"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="47.620636"
+       x2="44.096100"
+       y1="4.4331360"
+       x1="12.378357"
+       id="linearGradient4260"
+       xlink:href="#linearGradient4254"
+       inkscape:collect="always"
+       gradientTransform="translate(0.000000,5.125000)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.651032,-2.885063e-16,9.455693)"
+       r="23.555494"
+       fy="27.096155"
+       fx="23.201941"
+       cy="27.096155"
+       cx="23.201941"
+       id="radialGradient4270"
+       xlink:href="#linearGradient4264"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.357183"
+       x2="23.688078"
+       y1="11.318835"
+       x1="23.688078"
+       id="linearGradient4272"
+       xlink:href="#linearGradient4274"
+       inkscape:collect="always"
+       gradientTransform="translate(0.000000,5.125000)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2555"
+       id="linearGradient2553"
+       x1="33.431175"
+       y1="31.964777"
+       x2="21.747974"
+       y2="11.780679"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6901"
+       id="linearGradient6907"
+       x1="14.751649"
+       y1="15.868432"
+       x2="8.8953285"
+       y2="16.743431"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6925"
+       id="linearGradient6931"
+       x1="12.25"
+       y1="18.25"
+       x2="7"
+       y2="21.118431"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="999"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer2"
+     inkscape:cy="11.891468"
+     inkscape:cx="-133.68151"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.22745098"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:showpageshadow="false"
+     fill="#3465a4"
+     stroke="#204a87" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Save</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>hdd</rdf:li>
+            <rdf:li>hard drive</rdf:li>
+            <rdf:li>save</rdf:li>
+            <rdf:li>io</rdf:li>
+            <rdf:li>store</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:identifier />
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="pix"
+     id="layer2"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.411405e-2,0,0,1.929202e-2,45.48953,41.75228)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       sodipodi:nodetypes="cccsccccccccc"
+       id="path4196"
+       d="M 11.28569,13.087628 C 10.66069,13.087628 10.254441,13.377808 10.004442,13.931381 C 10.004441,13.931381 3.5356915,31.034938 3.5356915,31.034938 C 3.5356915,31.034938 3.2856915,31.706497 3.2856915,32.816188 C 3.2856915,32.816188 3.2856915,42.466156 3.2856915,42.466156 C 3.2856915,43.548769 3.943477,44.091158 4.9419415,44.091156 L 43.50444,44.091156 C 44.489293,44.091156 45.09819,43.372976 45.09819,42.247406 L 45.09819,32.597438 C 45.09819,32.597438 45.204153,31.827015 45.00444,31.284938 L 38.28569,14.087631 C 38.101165,13.575725 37.648785,13.099533 37.16069,13.087628 L 11.28569,13.087628 z "
+       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#535353;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="ccccccccc"
+       id="path4170"
+       d="M 3.2735915,32.121812 L 4.0381936,31.429597 L 41.647883,31.492097 L 45.11029,31.809395 L 45.11029,42.247927 C 45.11029,43.373496 44.503272,44.091258 43.518419,44.091258 L 4.9354314,44.091258 C 3.9369667,44.091258 3.2735915,43.549207 3.2735915,42.466594 L 3.2735915,32.121812 z "
+       style="fill:url(#linearGradient4234);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02044296px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="csccccccs"
+       id="path3093"
+       d="M 3.5490842,31.039404 C 2.8347985,32.50369 3.5484686,33.432261 4.5847985,33.432261 C 4.5847985,33.432261 43.584797,33.432261 43.584797,33.432261 C 44.703844,33.408451 45.430035,32.420356 45.013368,31.289403 L 38.299082,14.078704 C 38.114558,13.566798 37.64432,13.090606 37.156225,13.078701 L 11.299083,13.078701 C 10.674083,13.078701 10.263369,13.382274 10.01337,13.935847 C 10.01337,13.935847 3.5490842,31.039404 3.5490842,31.039404 z "
+       style="fill:url(#radialGradient4250);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <rect
+       y="36.299183"
+       x="7.857996"
+       height="5.5625"
+       width="17.625"
+       id="rect4174"
+       style="opacity:1;color:#000000;fill:url(#linearGradient4209);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.40899992;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cscc"
+       id="path4194"
+       d="M 7.8579947,41.86168 C 7.8579947,41.86168 7.8579947,37.850195 7.8579947,37.850195 C 9.6935221,41.029421 16.154485,41.86168 20.795492,41.86168 C 20.795492,41.86168 7.8579947,41.86168 7.8579947,41.86168 z "
+       style="opacity:0.81142853;fill:url(#linearGradient4242);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path4201"
+       d="M 44.796162,30.753688 C 44.859684,32.003662 44.382159,33.069528 43.474046,33.097438 C 43.474046,33.097438 5.3553296,33.097437 5.3553297,33.097438 C 4.0660978,33.097438 3.4875937,32.772491 3.271279,32.229382 C 3.3630404,33.173714 4.0970964,33.878688 5.3553297,33.878688 C 5.3553296,33.878687 43.474046,33.878688 43.474046,33.878688 C 44.550053,33.845617 45.226851,32.454664 44.82621,30.883897 L 44.796162,30.753688 z "
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path4211"
+       d="M 10.96875,15.28125 C 10.922675,15.481571 10.78125,15.668047 10.78125,15.875 C 10.78125,16.823605 11.37223,17.664474 12.125,18.46875 C 12.365268,18.314675 12.490117,18.114342 12.75,17.96875 C 11.809691,17.152746 11.196604,16.252168 10.96875,15.28125 z M 37.625,15.28125 C 37.396273,16.250866 36.782988,17.153676 35.84375,17.96875 C 36.117894,18.122332 36.247738,18.33699 36.5,18.5 C 37.257262,17.693344 37.8125,16.826956 37.8125,15.875 C 37.8125,15.668047 37.670906,15.481571 37.625,15.28125 z M 39.8125,23.71875 C 39.198709,27.758861 32.513887,30.96875 24.28125,30.96875 C 16.068996,30.968751 9.4211001,27.775964 8.78125,23.75 C 8.7488928,23.947132 8.65625,24.141882 8.65625,24.34375 C 8.6562503,28.661697 15.645354,32.187501 24.28125,32.1875 C 32.917146,32.1875 39.937499,28.661698 39.9375,24.34375 C 39.9375,24.130826 39.848449,23.926394 39.8125,23.71875 z "
+       style="opacity:0.69142857;color:#000000;fill:url(#linearGradient4272);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       transform="translate(8.838843e-2,5.301780)"
+       d="M 8.5736699 25.593554 A 1.3700194 1.016466 0 1 1  5.833631,25.593554 A 1.3700194 1.016466 0 1 1  8.5736699 25.593554 z"
+       sodipodi:ry="1.016466"
+       sodipodi:rx="1.3700194"
+       sodipodi:cy="25.593554"
+       sodipodi:cx="7.2036505"
+       id="path4224"
+       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.45762706;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.45762706;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path4226"
+       sodipodi:cx="7.2036505"
+       sodipodi:cy="25.593554"
+       sodipodi:rx="1.3700194"
+       sodipodi:ry="1.016466"
+       d="M 8.5736699 25.593554 A 1.3700194 1.016466 0 1 1  5.833631,25.593554 A 1.3700194 1.016466 0 1 1  8.5736699 25.593554 z"
+       transform="translate(33.96705,5.213390)" />
+    <path
+       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 11.642515,13.540723 C 11.040823,13.540723 10.649724,13.820081 10.409049,14.35301 C 10.409048,14.35301 3.9940341,30.943732 3.9940341,30.943732 C 3.9940341,30.943732 3.7533573,31.590247 3.7533573,32.658555 C 3.7533573,32.658555 3.7533573,41.948651 3.7533573,41.948651 C 3.7533573,43.303391 4.1974134,43.57555 5.3478414,43.57555 L 43.034746,43.57555 C 44.357872,43.57555 44.569062,43.259153 44.569062,41.738058 L 44.569062,32.447962 C 44.569062,32.447962 44.671072,31.706271 44.478807,31.184409 L 37.885616,14.378434 C 37.707973,13.885617 37.334964,13.552184 36.865071,13.540723 L 11.642515,13.540723 z "
+       id="path4252"
+       sodipodi:nodetypes="cccsccccccccc" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
+       d="M 40.5,36.554166 L 40.5,41.575101"
+       id="path4282" />
+    <path
+       id="path4284"
+       d="M 38.5,36.613943 L 38.5,41.634878"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
+       d="M 36.5,36.613943 L 36.5,41.634878"
+       id="path4286" />
+    <path
+       id="path4288"
+       d="M 34.5,36.613943 L 34.5,41.634878"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885"
+       d="M 32.5,36.613943 L 32.5,41.634878"
+       id="path4290" />
+    <path
+       id="path4292"
+       d="M 30.5,36.613943 L 30.5,41.634878"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.42372885" />
+    <path
+       id="path4294"
+       d="M 39.5,36.604065 L 39.5,41.625"
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 37.5,36.663842 L 37.5,41.684777"
+       id="path4296" />
+    <path
+       id="path4298"
+       d="M 35.5,36.663842 L 35.5,41.684777"
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 33.5,36.663842 L 33.5,41.684777"
+       id="path4300" />
+    <path
+       id="path4302"
+       d="M 31.5,36.663842 L 31.5,41.684777"
+       style="opacity:0.09714284;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path4572"
+       d="M 7.875,36.3125 L 7.875,41.84375 L 20.4375,41.84375 L 8.21875,41.5 L 7.875,36.3125 z "
+       style="opacity:0.43999999;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.20571427;color:#000000;fill:url(#linearGradient2553);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.93365198;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.42372879;visibility:visible;display:inline;overflow:visible"
+       id="path2545"
+       sodipodi:cx="25"
+       sodipodi:cy="19.5625"
+       sodipodi:rx="14.875"
+       sodipodi:ry="6.6875"
+       d="M 39.875 19.5625 A 14.875 6.6875 0 1 1  10.125,19.5625 A 14.875 6.6875 0 1 1  39.875 19.5625 z"
+       transform="matrix(1.037815,0.000000,0.000000,1.060747,-1.632878,3.030370)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer1"
+     inkscape:label="down">
+    <path
+       transform="matrix(1.130190,1.178179e-16,7.918544e-17,-0.759601,-3.909725,53.66554)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.14117647;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient6907);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient6931);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 3.2034501,25.835194 C 2.1729477,-5.3853369 28.741616,-0.4511153 28.582416,15.788689 L 35.89533,15.788689 L 24.517652,28.774671 L 12.585426,15.788689 C 12.585426,15.788689 20.126859,15.788689 20.126859,15.788689 C 20.583921,4.8193225 3.4092324,1.6100346 3.2034501,25.835194 z "
+       id="path1432"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       id="path2177"
+       d="M 7.6642103,9.1041047 C 12.40638,-0.0400306 28.122336,2.7175443 27.761604,16.579393 L 34.078976,16.579393 C 34.078976,16.579393 24.513151,27.536769 24.513151,27.536769 L 14.41668,16.579393 C 14.41668,16.579393 20.87332,16.579393 20.87332,16.579393 C 21.144975,5.0041615 10.922265,5.5345215 7.6642103,9.1041047 z "
+       style="opacity:0.47159091;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1764);stroke-width:0.99999934;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <path
+       style="opacity:0.49431817;color:#000000;fill:url(#radialGradient4997);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 34.767155,16.211613 L 32.782979,18.757322 C 27.372947,17.241029 24.896829,21.486664 17.109284,20.489112 L 13.247998,16.080077 L 20.434468,16.162862 C 20.483219,4.3164571 8.3443098,4.998966 5.0292663,13.627829 C 8.8372201,-1.2611216 27.893316,0.8064118 28.28332,16.114112 L 34.767155,16.211613 z "
+       id="path4989"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/edit-copy.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg4198"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   sodipodi:docname="edit-copy.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs4200">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective45" />
+    <linearGradient
+       id="linearGradient15218">
+      <stop
+         style="stop-color:#f0f0ef;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15220" />
+      <stop
+         id="stop2269"
+         offset="0.59928656"
+         style="stop-color:#e8e8e8;stop-opacity:1;" />
+      <stop
+         id="stop2267"
+         offset="0.82758623"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#d8d8d3;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15222" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2259">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2261" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2263" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2224">
+      <stop
+         style="stop-color:#7c7c7c;stop-opacity:1;"
+         offset="0"
+         id="stop2226" />
+      <stop
+         style="stop-color:#b8b8b8;stop-opacity:1;"
+         offset="1"
+         id="stop2228" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2224"
+       id="linearGradient2230"
+       x1="35.996582"
+       y1="40.458221"
+       x2="33.664921"
+       y2="37.770721"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6.161836,4.033411)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2251">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2253" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2255" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2251"
+       id="linearGradient2257"
+       x1="33.396004"
+       y1="36.921333"
+       x2="34.170048"
+       y2="38.070381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6.161836,3.658411)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15218"
+       id="linearGradient4258"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.065698,0.000000,0.000000,0.987595,-8.548320,-4.891713)"
+       x1="22.308331"
+       y1="18.992140"
+       x2="35.785294"
+       y2="39.498238" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2259"
+       id="linearGradient4260"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.998504,0.000000,0.000000,0.998246,-6.970391,-4.892901)"
+       x1="26.076092"
+       y1="26.696676"
+       x2="30.811172"
+       y2="42.007351" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2259"
+       id="linearGradient13651"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.999421,0.000000,0.000000,1.000000,5.991319,4.033411)"
+       x1="26.076092"
+       y1="26.696676"
+       x2="30.811172"
+       y2="42.007351" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15218"
+       id="linearGradient13653"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.067236,0.000000,0.000000,0.989276,4.391684,4.035227)"
+       x1="22.308331"
+       y1="18.992140"
+       x2="35.785294"
+       y2="39.498238" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#bebebe"
+     borderopacity="1.0000000"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.4142136"
+     inkscape:cx="-57.902952"
+     inkscape:cy="48.133585"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="873"
+     inkscape:window-height="699"
+     inkscape:window-x="264"
+     inkscape:window-y="149"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4203">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Edit Copy</dc:title>
+        <dc:date>2005-10-15</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>copy</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       id="g4268"
+       style="opacity:0.49999997"
+       transform="matrix(1.001508,0.000000,0.000000,1.000616,-5.002205e-2,-6.304895e-2)">
+      <rect
+         y="34.033413"
+         x="20.161837"
+         height="2.0000000"
+         width="13.000000"
+         id="rect2279"
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <rect
+         ry="0.56615961"
+         rx="0.56565511"
+         y="1.5629303"
+         x="1.5484408"
+         height="35.976688"
+         width="30.951559"
+         id="rect4238"
+         style="opacity:1.0000000;fill:url(#linearGradient4258);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99893934;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+      <rect
+         ry="0.0000000"
+         rx="0.0000000"
+         y="2.5605955"
+         x="2.5325129"
+         height="33.981056"
+         width="28.970741"
+         id="rect4240"
+         style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:0.99893963;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+      <rect
+         y="10.033414"
+         x="7.0161190"
+         height="2.0000000"
+         width="21.000000"
+         id="rect4248"
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <rect
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="rect4250"
+         width="20.000000"
+         height="2.0000000"
+         x="7.0161190"
+         y="14.033414" />
+      <rect
+         y="18.033415"
+         x="7.0161190"
+         height="2.0000000"
+         width="18.000000"
+         id="rect4252"
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <rect
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="rect4254"
+         width="21.000000"
+         height="2.0000000"
+         x="7.0161190"
+         y="22.033415" />
+      <rect
+         y="26.033413"
+         x="7.0161190"
+         height="2.0000000"
+         width="13.000000"
+         id="rect4256"
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    </g>
+    <g
+       id="g12863">
+      <path
+         style="fill:url(#linearGradient13653);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#888a85;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+         d="M 15.072946,10.500852 L 44.929331,10.500852 C 45.245071,10.500852 45.499257,10.753945 45.499257,11.068324 L 45.499257,38.235686 C 45.499257,40.712138 38.619447,46.538773 36.231325,46.538773 L 15.072946,46.538773 C 14.757206,46.538773 14.50302,46.285681 14.50302,45.9713 L 14.50302,11.068324 C 14.50302,10.753945 14.757206,10.500852 15.072946,10.500852 z "
+         id="rect12413"
+         sodipodi:nodetypes="ccccccccc" />
+      <rect
+         ry="0.0000000"
+         rx="0.0000000"
+         y="11.500000"
+         x="15.502951"
+         height="34.040764"
+         width="28.997349"
+         id="rect15244"
+         style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient13651);stroke-width:1.0000008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path2210"
+         d="M 36.220918,46.536966 C 38.251336,46.866864 45.809711,42.007037 45.505329,38.039122 C 43.942067,40.462219 40.746807,39.32586 36.638049,39.48487 C 36.638049,39.48487 37.033418,46.036966 36.220918,46.536966 z "
+         style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2230);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#868a84;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.36931817;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2257);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 37.671355,44.345464 C 39.041134,43.661635 42.099604,42.198999 43.398985,40.317995 C 41.802891,40.99805 40.451175,40.527491 37.696651,40.5084 C 37.696651,40.5084 37.858973,43.570494 37.671355,44.345464 z "
+         id="path2247"
+         sodipodi:nodetypes="cccc" />
+      <rect
+         y="19.033415"
+         x="20.000000"
+         height="2.0000000"
+         width="21.000000"
+         id="rect2271"
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <rect
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="rect2273"
+         width="19.992233"
+         height="2.0000000"
+         x="20.000000"
+         y="23.033415" />
+      <rect
+         y="27.033415"
+         x="20.000000"
+         height="2.0000000"
+         width="17.976702"
+         id="rect2275"
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <rect
+         style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="rect2277"
+         width="21.000000"
+         height="2.0000000"
+         x="20.000000"
+         y="31.033415" />
+    </g>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/edit-cut.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,508 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg23883"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   version="1.0"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="edit-cut.svg"
+   inkscape:export-filename="/home/garrett/edit-cut.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs23885">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective70" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2269">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2271" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop2273" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2259">
+      <stop
+         style="stop-color:#9a0c00;stop-opacity:1;"
+         offset="0"
+         id="stop2261" />
+      <stop
+         style="stop-color:#9a0c00;stop-opacity:0;"
+         offset="1"
+         id="stop2263" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2251">
+      <stop
+         style="stop-color:#df2a2a;stop-opacity:1;"
+         offset="0"
+         id="stop2253" />
+      <stop
+         style="stop-color:#df2a2a;stop-opacity:0;"
+         offset="1"
+         id="stop2255" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2229">
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0"
+         id="stop2231" />
+      <stop
+         style="stop-color:#d8d8d8;stop-opacity:1;"
+         offset="1"
+         id="stop2233" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,1.010300,1.007969e-18,-0.159801)"
+       r="7.2848282"
+       cy="23.333008"
+       cx="165.06104"
+       id="radialGradient16850">
+      <stop
+         id="stop16852"
+         style="stop-color:#EF3535"
+         offset="0" />
+      <stop
+         id="stop16854"
+         style="stop-color:#a40000;stop-opacity:0"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="XMLID_897_"
+       gradientUnits="userSpaceOnUse"
+       x1="292.97168"
+       y1="4.7592773"
+       x2="296.93979"
+       y2="10.711433">
+      <stop
+         offset="0"
+         style="stop-color:#EEEEEC"
+         id="stop45093" />
+      <stop
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1;"
+         id="stop45095" />
+    </linearGradient>
+    <linearGradient
+       id="path3230_2_"
+       gradientUnits="userSpaceOnUse"
+       x1="1668.7646"
+       y1="185.30176"
+       x2="1679.5989"
+       y2="175.78883"
+       gradientTransform="matrix(1.213800,0.000000,0.282500,-1.671200,46.72625,447.9442)">
+      <stop
+         offset="0"
+         style="stop-color:#FFFFFF"
+         id="stop4977" />
+      <stop
+         offset="1"
+         style="stop-color:#CFCFCF"
+         id="stop4979" />
+    </linearGradient>
+    <linearGradient
+       id="path3311_1_"
+       gradientUnits="userSpaceOnUse"
+       x1="1420.5474"
+       y1="-50.919434"
+       x2="1420.6542"
+       y2="-79.574341"
+       gradientTransform="matrix(2.051000,0.000000,0.167200,-0.989000,-799.2049,221.0724)">
+      <stop
+         offset="0"
+         style="stop-color:#C4A000"
+         id="stop4970" />
+      <stop
+         offset="1"
+         style="stop-color:#957A00"
+         id="stop4972" />
+    </linearGradient>
+    <radialGradient
+       id="XMLID_52_"
+       cx="165.06104"
+       cy="23.333008"
+       r="7.2848282"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,1.010300,1.007969e-18,-0.159801)"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#EF3535"
+         id="stop812" />
+      <stop
+         id="stop2239"
+         style="stop-color:#c91a1a;stop-opacity:1;"
+         offset="0" />
+      <stop
+         offset="1"
+         style="stop-color:#ff4c4c;stop-opacity:1;"
+         id="stop814" />
+    </radialGradient>
+    <linearGradient
+       id="XMLID_45_"
+       gradientUnits="userSpaceOnUse"
+       x1="68.175293"
+       y1="21.424805"
+       x2="74.587158"
+       y2="27.836672">
+      <stop
+         offset="0"
+         style="stop-color:#BABDB6"
+         id="stop695" />
+      <stop
+         offset="1"
+         style="stop-color:#EEEEEC"
+         id="stop697" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#path3230_2_"
+       id="linearGradient142876"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.213781,0,0.282495,-1.671173,-1712.251,391.532)"
+       x1="1668.7646"
+       y1="185.30176"
+       x2="1679.5989"
+       y2="175.78883" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#path3230_2_"
+       id="linearGradient142884"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.213781,0.000000,0.282495,-1.671173,-1385.251,394.5320)"
+       x1="1668.7646"
+       y1="185.30176"
+       x2="1679.5989"
+       y2="175.78883" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#path3311_1_"
+       id="linearGradient142892"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.050967,0.000000,0.167197,-0.988984,-2231.169,167.6639)"
+       x1="1420.5474"
+       y1="-50.919434"
+       x2="1420.6542"
+       y2="-79.574341" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_45_"
+       id="linearGradient16739"
+       x1="22.225399"
+       y1="23.843431"
+       x2="24.190449"
+       y2="22.860907"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_52_"
+       id="linearGradient16769"
+       x1="294.59497"
+       y1="12.187603"
+       x2="297.18515"
+       y2="13.3396"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_52_"
+       id="linearGradient16894"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.624438,0.000000,0.000000,3.624438,-1053.179,-16.84720)"
+       x1="296.76199"
+       y1="12.012225"
+       x2="297.79822"
+       y2="10.946587" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_52_"
+       id="linearGradient16946"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.637893,0.000000,0.000000,3.470375,-1056.116,-16.00724)"
+       x1="296.48611"
+       y1="15.506916"
+       x2="296.52905"
+       y2="9.8769522" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_897_"
+       id="linearGradient16968"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-4.127761,0.000000,0.000000,4.136601,1244.465,-11.90495)"
+       x1="292.97168"
+       y1="4.7592773"
+       x2="296.93979"
+       y2="10.711433" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_897_"
+       id="linearGradient16974"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.053427,0.000000,0.000000,4.136601,-1175.535,-11.90495)"
+       x1="292.97168"
+       y1="4.7592773"
+       x2="296.93979"
+       y2="10.711433" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#radialGradient16850"
+       id="linearGradient17028"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.161878,0.000000,0.000000,0.992497,-5.112111,6.400522e-2)"
+       x1="39.619942"
+       y1="44.540932"
+       x2="-3.532515"
+       y2="-11.889042" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_52_"
+       id="linearGradient17034"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.161878,0.000000,0.000000,0.992497,-2.666967,6.400522e-2)"
+       x1="13.82536"
+       y1="40.068752"
+       x2="7.6700611"
+       y2="2.3262277" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_52_"
+       id="linearGradient17037"
+       gradientUnits="userSpaceOnUse"
+       x1="7.184845"
+       y1="31.056622"
+       x2="25.152235"
+       y2="50.774887"
+       gradientTransform="matrix(1.161878,0.000000,0.000000,0.992497,-2.430779,0.265761)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2229"
+       id="linearGradient2235"
+       x1="20.288025"
+       y1="6.4603648"
+       x2="24.32597"
+       y2="23.942537"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2229"
+       id="linearGradient2237"
+       x1="20.288025"
+       y1="6.4603648"
+       x2="24.32597"
+       y2="23.942537"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#XMLID_52_"
+       id="radialGradient2241"
+       cx="34.376091"
+       cy="37.50008"
+       fx="34.376091"
+       fy="37.50008"
+       r="8.3887873"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,1.060381,0.000000,-2.299514)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2251"
+       id="linearGradient2257"
+       x1="298.47852"
+       y1="13.599585"
+       x2="298.86948"
+       y2="13.802949"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2259"
+       id="linearGradient2265"
+       x1="298.47852"
+       y1="13.599585"
+       x2="298.86948"
+       y2="13.802949"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2269"
+       id="radialGradient2275"
+       cx="25.1875"
+       cy="41.625"
+       fx="25.1875"
+       fy="41.625"
+       r="18.0625"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.325260,2.029626e-16,28.08607)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.13333333"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="32.034218"
+     inkscape:cy="23.0589"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     gridtolerance="0.5px"
+     inkscape:window-width="1011"
+     inkscape:window-height="818"
+     inkscape:window-x="177"
+     inkscape:window-y="30"
+     stroke="#a40000"
+     inkscape:showpageshadow="false">
+    <inkscape:grid
+       id="GridFromPre046Settings"
+       type="xygrid"
+       originx="0px"
+       originy="0px"
+       spacingx="1px"
+       spacingy="1px"
+       color="#0000ff"
+       empcolor="#0000ff"
+       opacity="0.2"
+       empopacity="0.4"
+       empspacing="4" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata23888">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Edit Cut</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Garrett Le Sage</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>cut</rdf:li>
+            <rdf:li>clipboard</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:url(#linearGradient16968);stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 34.174311,1.6249997 C 34.386261,1.6935355 34.59157,1.7696619 34.798294,1.842502 C 35.449709,4.0395037 38.469777,6.2612218 37.321354,8.4491328 C 33.495509,14.82952 29.697021,21.294565 25.899759,27.72527 C 25.154013,27.872172 24.401732,27.952183 23.647995,27.96996 C 22.061603,28.01017 20.433063,27.775465 18.927431,27.23589 C 23.978303,18.684616 29.031301,10.114483 34.174311,1.6249997 z "
+       id="path16717" />
+    <path
+       style="fill:url(#linearGradient2237);fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 34.288823,4.25 C 34.057702,4.5574529 33.839208,5.120942 33.602793,5.40625 C 29.555938,12.158979 25.440784,18.900329 21.378976,25.625 C 21.318425,25.878117 20.565047,26.637291 21.366935,26.567963 C 22.478492,26.765843 23.638682,26.918567 24.746762,26.625 C 28.505752,20.407794 32.192639,14.142582 35.943048,7.9231779 C 36.285519,7.5359043 36.352163,6.9979201 35.992403,6.611197 C 35.462387,5.7945892 34.925464,4.9364821 34.382373,4.15625 L 34.311813,4.2269607 L 34.288823,4.25 z "
+       id="path16719" />
+    <polygon
+       style="fill:url(#linearGradient16769);fill-opacity:1;stroke:#9a0c00;stroke-width:0.28144068;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="polygon45129"
+       points="297.04443,12.300293 296.39941,13.384766 295.13281,14.71875 294.73242,13.672852 295.74658,11.960449 297.04443,12.300293 "
+       transform="matrix(3.637893,0.000000,0.000000,3.470375,-1056.116,-16.00724)" />
+    <path
+       style="fill:url(#linearGradient16946);fill-opacity:1;stroke:none;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 20.40625,26.96875 C 19.183905,27.455468 19.192232,29.003929 18.481272,29.932762 C 18.138949,30.648557 17.537483,31.278989 17.28125,32.03125 C 17.271571,32.546641 17.729203,33.391474 18.3125,32.9375 C 19.697476,31.791172 20.876866,30.398821 21.756725,28.810629 C 21.989088,28.320596 22.552476,27.916466 22.625,27.40625 C 22.086431,26.835441 21.112182,26.873225 20.40625,26.96875 z "
+       id="polygon16896" />
+    <path
+       style="fill:url(#linearGradient16974);stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 12.960099,1.6249997 C 12.751966,1.6935355 12.550355,1.7696619 12.347353,1.842502 C 11.707669,4.0395037 8.7419877,6.2612218 9.8697297,8.4491328 C 13.626677,14.82952 17.35676,21.294565 21.085639,27.72527 C 21.817956,27.872172 22.55669,27.952183 23.296853,27.96996 C 24.854677,28.01017 26.453889,27.775465 27.932407,27.23589 C 22.972493,18.684616 18.010492,10.114483 12.960099,1.6249997 z "
+       id="polygon45097" />
+    <path
+       style="fill:url(#linearGradient2235);fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 12.719667,4.25 C 12.336632,5.3766793 11.270006,6.2059645 11.004855,7.40625 C 14.713376,13.800362 18.475798,20.175378 22.181757,26.5625 C 23.380123,26.820799 24.610198,26.655657 25.795112,26.40625 C 25.606339,25.665807 25.056911,25.075319 24.765129,24.3767 C 20.870526,17.806174 16.941429,11.242872 13.087127,4.65625 C 13.072466,4.5046403 12.870425,4.1721152 12.719667,4.25 z "
+       id="path16635" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1;color:#000000;fill:url(#linearGradient16739);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path16731"
+       sodipodi:cx="23.207924"
+       sodipodi:cy="23.843431"
+       sodipodi:rx="0.98252523"
+       sodipodi:ry="0.98252523"
+       d="M 24.190449 23.843431 A 0.98252523 0.98252523 0 1 1  22.225399,23.843431 A 0.98252523 0.98252523 0 1 1  24.190449 23.843431 z"
+       transform="matrix(0.979893,0.000000,0.000000,1.000000,0.311384,0.174043)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.26704544;color:#000000;fill:url(#radialGradient2275);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2267"
+       sodipodi:cx="25.1875"
+       sodipodi:cy="41.625"
+       sodipodi:rx="18.0625"
+       sodipodi:ry="5.875"
+       d="M 43.25 41.625 A 18.0625 5.875 0 1 1  7.125,41.625 A 18.0625 5.875 0 1 1  43.25 41.625 z"
+       transform="matrix(1.256055,0.000000,0.000000,0.819149,-7.199394,9.090421)" />
+    <path
+       id="path45138"
+       style="fill:url(#linearGradient17037);fill-opacity:1;stroke:#a40000;stroke-opacity:1"
+       d="M 17.700393,30.286934 C 20.935404,32.013583 21.196229,36.899851 18.278338,41.201286 C 15.360479,45.50525 10.373849,47.596472 7.1373807,45.877418 C 3.9008825,44.150767 3.6415462,39.267032 6.5594356,34.965597 C 9.4758075,30.664166 14.463925,28.572944 17.700393,30.286934 z M 15.845268,33.029079 C 14.408745,32.26545 11.33781,33.569599 9.3789266,36.463107 C 7.4160164,39.356612 7.5560293,42.376624 8.991202,43.137951 C 10.426348,43.906181 13.499985,42.597432 15.458868,39.703925 C 17.42313,36.81042 17.281765,33.792709 15.845268,33.029079 z " />
+    <path
+       style="fill:url(#linearGradient17034);fill-opacity:1;stroke:none;stroke-opacity:1"
+       d="M 14.3255,30.583289 C 12.400369,30.97051 10.691041,32.037306 9.2785926,33.064531 C 8.5268294,33.759433 8.0350294,34.514452 7.3629449,35.31874 C 5.6546178,37.670805 4.9387067,40.762168 6.2901069,43.388409 C 6.90956,44.841515 8.9327419,45.435852 10.658323,45.067542 C 12.110236,44.819078 13.339639,43.906473 14.470735,43.268641 C 15.391637,42.47786 16.024749,41.642131 16.803626,40.677364 C 18.612986,38.202962 19.595537,34.928687 18.101604,32.165081 C 17.377898,31.022952 15.866963,30.41829 14.3255,30.583289 z M 14.797513,31.54477 C 16.814017,31.795124 18.154487,33.577585 17.92006,35.266634 C 17.940833,37.553573 16.774038,39.710728 15.196909,41.500756 C 13.779705,42.902737 11.848294,44.229027 9.5327534,44.137076 C 8.1738996,44.134209 7.100179,43.224779 6.7169325,42.176618 C 6.1002938,39.644695 6.9116496,36.911389 8.6831288,34.83862 C 10.041367,33.315308 11.877976,31.95152 14.150642,31.596926 C 14.366331,31.581652 14.581522,31.554432 14.797513,31.54477 z "
+       id="path16771" />
+    <path
+       d="M 30.331764,30.286934 C 27.096753,32.013583 26.835929,36.899851 29.75382,41.201286 C 32.671679,45.50525 37.658309,47.596472 40.894777,45.877418 C 44.131276,44.150767 44.390611,39.267032 41.472722,34.965597 C 38.55635,30.664166 33.568233,28.572944 30.331764,30.286934 z M 32.18689,33.029079 C 33.623412,32.26545 36.694348,33.569599 38.653231,36.463107 C 40.616141,39.356612 40.476128,42.376624 39.040956,43.137951 C 37.60581,43.906181 34.532173,42.597432 32.57329,39.703925 C 30.609028,36.81042 30.750393,33.792709 32.18689,33.029079 z "
+       style="fill:url(#radialGradient2241);fill-opacity:1;stroke:#a40000;stroke-opacity:1"
+       id="path11967" />
+    <polygon
+       style="fill:url(#linearGradient2257);fill-opacity:1;stroke:url(#linearGradient2265);stroke-width:0.27590489;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="polygon45101"
+       points="296.95605,12.300293 297.6001,13.384766 298.86719,14.71875 299.26807,13.672852 298.25391,11.960449 296.95605,12.300293 "
+       transform="matrix(3.624438,0.000000,0.000000,3.624438,-1053.179,-16.84720)" />
+    <path
+       style="fill:url(#linearGradient16894);fill-opacity:1;stroke:none;stroke-width:0.27590489;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 26.15625,27.9375 C 25.729502,28.136321 25.139436,28.138981 24.8125,28.4375 C 25.76252,29.838889 26.702412,31.352161 27.663379,32.650077 C 28.331933,33.404621 29.019194,34.150303 29.78125,34.8125 C 30.516527,33.421076 29.91641,31.751292 28.96875,30.625 C 28.366215,29.725307 28.138928,28.512038 27.125,28.03125 C 26.820951,27.912839 26.474385,27.853373 26.15625,27.9375 z "
+       id="polygon16860" />
+    <path
+       style="fill:url(#linearGradient17028);fill-opacity:1;stroke:none;stroke-opacity:1"
+       d="M 32.280087,30.449093 C 30.759703,30.678844 29.385141,31.534748 29.039639,32.837057 C 27.908495,35.232508 28.824763,37.950571 30.319418,40.063908 C 31.421345,41.40911 32.259488,42.993821 33.959001,43.837878 C 35.429654,44.761502 37.300143,45.728452 39.176641,45.138766 C 40.689956,44.705317 41.547313,43.4582 41.856813,42.166912 C 42.461243,39.856882 41.561117,37.490951 40.149846,35.530428 C 39.491173,34.616722 38.816861,33.647222 38.036528,32.835783 C 36.841969,31.932329 35.398614,31.184254 33.947688,30.603431 C 33.41359,30.493019 32.832464,30.37069 32.280087,30.449093 z M 32.715792,31.658699 C 34.473095,31.591923 35.950305,32.398157 37.092162,33.427664 C 38.124459,34.396792 39.113817,35.23287 39.754673,36.426541 C 40.831856,38.24711 41.142534,40.4065 40.594777,42.390073 C 40.066397,43.714585 38.368623,44.362109 36.803657,44.006518 C 34.821776,43.77769 33.586317,42.335503 32.277091,41.198158 C 30.771344,39.766768 29.83647,37.719532 29.76651,35.715783 C 29.780622,34.698114 29.740042,33.53736 30.464653,32.682212 C 30.876926,32.139062 31.84466,31.627886 32.715792,31.658699 z "
+       id="path16795" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/edit-delete.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg1306"
+   sodipodi:version="0.32"
+   inkscape:version="0.42"
+   sodipodi:docbase="/home/andreas/projekt/tango/scalable"
+   sodipodi:docname="edit-delete.svg"
+   inkscape:export-filename="/home/andreas/projekt/tango/22/delete.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000">
+  <defs
+     id="defs1308">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2251">
+      <stop
+         style="stop-color:#ef2929"
+         offset="0"
+         id="stop2253" />
+      <stop
+         style="stop-color:#cc0000"
+         offset="1"
+         id="stop2255" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4126"
+       inkscape:collect="always">
+      <stop
+         id="stop4128"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4130"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       r="17.142857"
+       fy="40.000000"
+       fx="23.857143"
+       cy="40.000000"
+       cx="23.857143"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,1.635742e-14,20.00000)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7449"
+       xlink:href="#linearGradient4126"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2251"
+       id="radialGradient2257"
+       cx="20.935379"
+       cy="12.592707"
+       fx="20.935379"
+       fy="12.592707"
+       r="19.967958"
+       gradientTransform="matrix(-1.262871,2.796553e-2,-3.606716e-2,-1.629656,47.36662,36.49787)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4126"
+       id="radialGradient2275"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,1.713935e-14,20.00000)"
+       cx="23.857143"
+       cy="40.000000"
+       fx="23.857143"
+       fy="40.000000"
+       r="17.142857" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2251"
+       id="radialGradient2277"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.618549,1.369740e-2,-1.766555e-2,-0.798198,22.46266,17.62692)"
+       cx="20.935379"
+       cy="12.592707"
+       fx="20.935379"
+       fy="12.592707"
+       r="19.967958" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="14.000000"
+     inkscape:cx="27.981306"
+     inkscape:cy="29.284234"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     fill="#73d216"
+     stroke="#a40000"
+     inkscape:window-width="1280"
+     inkscape:window-height="949"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     showguides="true"
+     inkscape:guide-bbox="true" />
+  <metadata
+     id="metadata1311">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Delete</dc:title>
+        <dc:date>2005-12-28</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://tango-project.org</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>delete</rdf:li>
+            <rdf:li>remove</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       transform="matrix(1.225000,0.000000,0.000000,0.408334,-5.221224,25.17622)"
+       d="M 41.000000 40.000000 A 17.142857 8.5714283 0 1 1  6.7142868,40.000000 A 17.142857 8.5714283 0 1 1  41.000000 40.000000 z"
+       sodipodi:ry="8.5714283"
+       sodipodi:rx="17.142857"
+       sodipodi:cy="40.000000"
+       sodipodi:cx="23.857143"
+       id="path6548"
+       style="opacity:0.52688169;color:#000000;fill:url(#radialGradient7449);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       style="opacity:1.0000000;fill:url(#radialGradient2257);fill-opacity:1.0000000;stroke:#a40000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+       d="M 24.035816,3.5720836 C 13.289574,3.5720836 4.5678570,12.294146 4.5678580,23.040834 C 4.5678580,33.787521 13.289575,42.509583 24.035816,42.509584 C 34.782058,42.509584 43.503776,33.787520 43.503775,23.040834 C 43.503775,12.294147 34.782058,3.5720836 24.035816,3.5720836 z M 24.004517,8.4783336 C 32.049892,8.4783336 38.589837,14.990984 38.589837,23.009584 C 38.589837,25.981868 37.657973,28.737374 36.117218,31.040834 L 15.960683,10.915834 C 18.272680,9.3813936 21.022553,8.4783336 24.004517,8.4783336 z M 12.267404,14.447084 L 32.580435,34.728334 C 30.166684,36.490827 27.221538,37.540834 24.004517,37.540834 C 15.959141,37.540834 9.4191980,31.028184 9.4191980,23.009584 C 9.4191980,19.803270 10.497961,16.851741 12.267404,14.447084 z "
+       id="path1314" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.55376345;fill:none;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:0.98682600;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+       id="path2242"
+       sodipodi:cx="28.357143"
+       sodipodi:cy="27.214285"
+       sodipodi:rx="18.357143"
+       sodipodi:ry="18.142857"
+       d="M 46.714287 27.214285 A 18.357143 18.142857 0 1 1  10.000000,27.214285 A 18.357143 18.142857 0 1 1  46.714287 27.214285 z"
+       transform="matrix(1.007576,0.000000,0.000000,1.019157,-4.568194,-4.726048)" />
+    <path
+       style="opacity:0.47849461;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 15.075203,11.366727 L 35.646632,31.938156"
+       id="path2261"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.30645159;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 4.4323460,19.795298 C 4.4561550,21.985774 9.8371077,20.461965 9.8609167,21.652441 C 9.8132977,19.842917 11.837108,15.961965 12.289489,15.152441 L 20.932346,23.509584 C 20.884728,21.771489 27.122823,23.390537 27.003776,21.509584 L 16.718061,10.866727 C 18.241871,10.081013 21.837109,8.7952976 24.075204,8.9381546 C 32.313299,9.1524406 38.051394,16.795298 38.075204,22.009584 L 37.503775,27.009584 C 37.384727,28.866727 43.337108,26.795298 43.146632,28.295298 C 43.551394,27.152441 44.027584,24.795298 43.932346,22.081013 C 43.884727,12.438155 35.765679,3.3667266 24.003775,3.1524406 C 15.420441,3.2833936 8.4978220,8.1822026 6.1287740,14.661370 C 5.9933010,14.694830 4.6585360,16.842917 4.4323460,19.795298 z "
+       id="path2263"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/edit-find-replace.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,974 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="30"
+   inkscape:export-xdpi="30"
+   inkscape:export-filename="/home/garrett/edit-find-replace-16.png"
+   sodipodi:docname="edit-find-replace.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg249"
+   height="48.000000px"
+   width="48.000000px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective144" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4542">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4544" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4546" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop15666"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="aigrd3"
+       cx="20.8921"
+       cy="64.5679"
+       r="5.257"
+       fx="20.8921"
+       fy="64.5679"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop15573" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop15575" />
+    </radialGradient>
+    <radialGradient
+       id="aigrd2"
+       cx="20.8921"
+       cy="114.5684"
+       r="5.256"
+       fx="20.8921"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop15566" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop15568" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop271"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop261"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient269"
+       id="radialGradient15656"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+       cx="8.8244190"
+       cy="3.7561285"
+       fx="8.8244190"
+       fy="3.7561285"
+       r="37.751713" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="radialGradient15658"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)"
+       cx="33.966679"
+       cy="35.736916"
+       fx="33.966679"
+       fy="35.736916"
+       r="86.708450" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15662"
+       id="radialGradient15668"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+       cx="8.1435566"
+       cy="7.2678967"
+       fx="8.1435566"
+       fy="7.2678967"
+       r="38.158695" />
+    <radialGradient
+       r="5.256"
+       fy="114.5684"
+       fx="20.8921"
+       cy="114.5684"
+       cx="20.8921"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2283"
+       xlink:href="#aigrd2"
+       inkscape:collect="always" />
+    <radialGradient
+       r="5.257"
+       fy="64.5679"
+       fx="20.8921"
+       cy="64.5679"
+       cx="20.8921"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2285"
+       xlink:href="#aigrd3"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4542"
+       id="radialGradient4548"
+       cx="24.306795"
+       cy="42.07798"
+       fx="24.306795"
+       fy="42.07798"
+       r="15.821514"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         offset="0"
+         style="stop-color:#7d7d7d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop4448" />
+      <stop
+         id="stop4444"
+         offset="1.0000000"
+         style="stop-color:#686868;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         offset="0.0000000"
+         style="stop-color:#729fcf;stop-opacity:0.20784314;" />
+      <stop
+         id="stop4458"
+         offset="1.0000000"
+         style="stop-color:#729fcf;stop-opacity:0.67619050;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4471"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.24761905;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4477"
+       inkscape:collect="always">
+      <stop
+         id="stop4479"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4481"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2368" />
+      <stop
+         id="stop2374"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:0.21904762;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2370" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2848" />
+      <stop
+         style="stop-color:#484848;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2850" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2865"
+       inkscape:collect="always">
+      <stop
+         id="stop2867"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop2869"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         offset="0"
+         style="stop-color:#ffd1d1;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ff1d1d;stop-opacity:1;"
+         offset="0.5"
+         id="stop3006" />
+      <stop
+         id="stop2970"
+         offset="1"
+         style="stop-color:#6f0000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#c1c1c1;stop-opacity:1;" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#acacac;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984"
+       inkscape:collect="always">
+      <stop
+         id="stop2986"
+         offset="0"
+         style="stop-color:#e7e2b8;stop-opacity:1;" />
+      <stop
+         id="stop2988"
+         offset="1"
+         style="stop-color:#e7e2b8;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop2998"
+         offset="1"
+         style="stop-color:#c9c9c9;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4477"
+       id="radialGradient2504"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.237968,-1.591178e-15,28.93278)"
+       cx="24.130018"
+       cy="37.967922"
+       fx="24.130018"
+       fy="37.967922"
+       r="16.528622" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2865"
+       id="radialGradient2552"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.348243,-2.396518e-14,26.35543)"
+       cx="23.5625"
+       cy="40.4375"
+       fx="23.5625"
+       fy="40.4375"
+       r="19.5625" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2966"
+       id="linearGradient2554"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,-3.312994e-15)"
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient2556"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.669292,-3.312994e-15)"
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2984"
+       id="radialGradient2558"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.923565,-1.236196e-16,8.582434e-17,2.029717,-61.55532,-27.88417)"
+       cx="29.053354"
+       cy="27.640751"
+       fx="29.053354"
+       fy="27.640751"
+       r="3.2408544" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2994"
+       id="linearGradient2560"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5.825542,0.125)"
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2846"
+       id="linearGradient2730"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,1,48.18409,-6.22072e-15)"
+       x1="27.366341"
+       y1="26.580296"
+       x2="31.335964"
+       y2="30.557772" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4440"
+       id="linearGradient2732"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.334593,0,0,1.291292,55.15793,-7.460658)"
+       x1="30.656250"
+       y1="34.000000"
+       x2="33.218750"
+       y2="31.062500" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2366"
+       id="linearGradient2734"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,1,44.17827,-7.045146e-16)"
+       x1="18.292673"
+       y1="13.602121"
+       x2="17.500893"
+       y2="25.743469" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4454"
+       id="radialGradient2736"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,1,43.352,1.032377e-15)"
+       cx="18.240929"
+       cy="21.817987"
+       fx="18.240929"
+       fy="21.817987"
+       r="8.3085051" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4467"
+       id="radialGradient2738"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.592963,-7.7469e-24,-5.714443e-24,2.252104,-25.05976,-18.941)"
+       cx="15.414371"
+       cy="13.078408"
+       fx="15.414371"
+       fy="13.078408"
+       r="6.6562500" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="126"
+     inkscape:window-x="59"
+     inkscape:window-height="705"
+     inkscape:window-width="1102"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="true"
+     inkscape:current-layer="layer6"
+     inkscape:cy="-7.874336"
+     inkscape:cx="38.123818"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.59607843"
+     bordercolor="#434343"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:showpageshadow="false"
+     borderlayer="true" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Edit Find Replace</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>find</rdf:li>
+            <rdf:li>locate</rdf:li>
+            <rdf:li>search</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Garrett LeSage</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner, Steven Garrity</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Shadow">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.165152e-2,0,0,1.485743e-2,43.0076,42.68539)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     inkscape:label="Base"
+     id="layer1">
+    <path
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854"
+       d="M 11.505723,5.4942766 L 11.505723,43.400869"
+       id="path15672"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Magnifying Glass"
+     style="display:inline">
+    <g
+       id="g2679">
+      <rect
+         rx="1.1449448"
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         transform="matrix(1.003584,0,0,1.001943,-0.12722,-0.153534)"
+         ry="1.1468204"
+         y="3.6464462"
+         x="6.6035528"
+         height="40.920494"
+         width="34.875"
+         id="rect15391"
+         style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+      <rect
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         transform="matrix(1.003584,0,0,1.001943,-0.12722,-0.153534)"
+         rx="0.14851625"
+         ry="0.14875954"
+         y="4.5839462"
+         x="7.6660538"
+         height="38.946384"
+         width="32.775887"
+         id="rect15660"
+         style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:0.99724436;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+      <g
+         id="g2270"
+         transform="translate(0.646447,-3.798933e-2)"
+         style="display:inline">
+        <g
+           transform="matrix(0.229703,0.000000,0.000000,0.229703,4.967081,4.244972)"
+           style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+           id="g1440">
+          <radialGradient
+             gradientUnits="userSpaceOnUse"
+             fy="114.56840"
+             fx="20.892099"
+             r="5.2560000"
+             cy="114.56840"
+             cx="20.892099"
+             id="radialGradient1442">
+            <stop
+               id="stop1444"
+               style="stop-color:#F0F0F0"
+               offset="0" />
+            <stop
+               id="stop1446"
+               style="stop-color:#474747"
+               offset="1" />
+          </radialGradient>
+          <path
+             id="path1448"
+             d="M 23.428000,113.07000 C 23.428000,115.04300 21.828000,116.64200 19.855000,116.64200 C 17.881000,116.64200 16.282000,115.04200 16.282000,113.07000 C 16.282000,111.09600 17.882000,109.49700 19.855000,109.49700 C 21.828000,109.49700 23.428000,111.09700 23.428000,113.07000 z "
+             style="stroke:none" />
+          <radialGradient
+             gradientUnits="userSpaceOnUse"
+             fy="64.567902"
+             fx="20.892099"
+             r="5.2570000"
+             cy="64.567902"
+             cx="20.892099"
+             id="radialGradient1450">
+            <stop
+               id="stop1452"
+               style="stop-color:#F0F0F0"
+               offset="0" />
+            <stop
+               id="stop1454"
+               style="stop-color:#474747"
+               offset="1" />
+          </radialGradient>
+          <path
+             id="path1456"
+             d="M 23.428000,63.070000 C 23.428000,65.043000 21.828000,66.643000 19.855000,66.643000 C 17.881000,66.643000 16.282000,65.043000 16.282000,63.070000 C 16.282000,61.096000 17.882000,59.497000 19.855000,59.497000 C 21.828000,59.497000 23.428000,61.097000 23.428000,63.070000 z "
+             style="stroke:none" />
+        </g>
+        <path
+           id="path15570"
+           d="M 9.9950109,29.952326 C 9.9950109,30.405530 9.6274861,30.772825 9.1742821,30.772825 C 8.7208483,30.772825 8.3535532,30.405301 8.3535532,29.952326 C 8.3535532,29.498892 8.7210780,29.131597 9.1742821,29.131597 C 9.6274861,29.131597 9.9950109,29.499122 9.9950109,29.952326 z "
+           style="fill:url(#radialGradient2283);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+        <path
+           id="path15577"
+           d="M 9.9950109,18.467176 C 9.9950109,18.920380 9.6274861,19.287905 9.1742821,19.287905 C 8.7208483,19.287905 8.3535532,18.920380 8.3535532,18.467176 C 8.3535532,18.013742 8.7210780,17.646447 9.1742821,17.646447 C 9.6274861,17.646447 9.9950109,18.013972 9.9950109,18.467176 z "
+           style="fill:url(#radialGradient2285);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+      </g>
+      <path
+         sodipodi:nodetypes="cc"
+         id="path15674"
+         d="M 12.500000,5.0205154 L 12.500000,43.038228"
+         style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831;display:inline" />
+      <g
+         id="g2253"
+         transform="matrix(0.909091,0.000000,0.000000,1.000000,2.363628,0.000000)">
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="9.0000000"
+           x="15.000002"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15686"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="11.000000"
+           x="15.000002"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15688"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="13.000000"
+           x="15.000002"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15690"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="15.000000"
+           x="15.000002"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15692"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="17.000000"
+           x="15.000002"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15694"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="19.000000"
+           x="15.000002"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15696"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="21.000000"
+           x="15.000002"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15698"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="23.000000"
+           x="15.000002"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15700"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.068204239"
+           y="25.000000"
+           x="14.999992"
+           height="1.0000000"
+           width="9.9000053"
+           id="rect15732"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="29.000000"
+           x="14.999992"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15736"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="31.000000"
+           x="14.999992"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15738"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="33.000000"
+           x="14.999992"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15740"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.15156493"
+           y="35.000000"
+           x="14.999992"
+           height="1.0000000"
+           width="22.000004"
+           id="rect15742"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+        <rect
+           ry="0.065390877"
+           rx="0.10609552"
+           y="37.000000"
+           x="14.999992"
+           height="1.0000000"
+           width="15.400014"
+           id="rect15744"
+           style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+      </g>
+    </g>
+    <path
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       transform="matrix(0.962422,0,0,1.011366,-7.130766,-7.903209)"
+       d="M 40.65864 37.967922 A 16.528622 3.9332814 0 1 1  7.6013966,37.967922 A 16.528622 3.9332814 0 1 1  40.65864 37.967922 z"
+       sodipodi:ry="3.9332814"
+       sodipodi:rx="16.528622"
+       sodipodi:cy="37.967922"
+       sodipodi:cx="24.130018"
+       id="path4475"
+       style="opacity:0.17112301;color:#000000;fill:url(#radialGradient2504);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <g
+       id="g2711"
+       transform="translate(-1.000325,-0.85088)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         transform="matrix(-0.643277,0,0,0.643277,31.49802,4.828704)"
+         sodipodi:nodetypes="csscccscccscczzzz"
+         id="path2844"
+         d="M 18.627569,3.1435548 C 10.488439,3.1435548 3.8827682,9.7492259 3.8827682,17.888356 C 3.8827682,26.027486 10.488439,32.633158 18.627569,32.633158 C 22.107124,32.633158 25.17857,31.248765 27.701292,29.230511 C 27.495915,30.237392 27.623257,31.265879 28.457436,31.990436 L 39.42152,41.517846 C 40.654936,42.589175 42.508982,42.448806 43.58031,41.215389 C 44.651638,39.981971 44.511269,38.127927 43.277853,37.056599 L 32.313769,27.529188 C 31.642242,26.945909 30.820891,26.773219 30.007531,26.886466 C 31.994231,24.374044 33.37237,21.337663 33.37237,17.888356 C 33.37237,9.7492259 26.766699,3.1435548 18.627569,3.1435548 z M 18.551954,4.3697381 C 26.191413,4.3697381 31.843729,9.1586886 31.843729,17.661513 C 31.843729,26.336626 26.027039,30.953288 18.551954,30.953288 C 11.249005,30.953288 5.2601806,25.475196 5.2601806,17.661513 C 5.2601806,9.6774061 11.084819,4.369738 18.551954,4.3697381 z "
+         style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2730);stroke-width:3.10908341;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="matrix(-0.643277,0,0,0.643277,31.49802,4.828704)"
+         style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 18.602905,3.0803551 C 10.437465,3.0803551 3.8104408,9.7073791 3.8104408,17.872819 C 3.8104408,26.038259 10.437465,32.665283 18.602905,32.665283 C 22.093708,32.665283 25.175082,31.276416 27.70596,29.251638 C 27.499919,30.261774 27.627672,31.293585 28.464547,32.020484 L 39.464073,41.578691 C 40.701476,42.653483 42.561515,42.512661 43.636306,41.275256 C 44.711097,40.037852 44.570274,38.177814 43.332871,37.103023 L 32.333346,27.544815 C 31.659648,26.959651 30.835642,26.786402 30.019653,26.900016 C 32.012775,24.379472 33.395369,21.333276 33.395369,17.872819 C 33.395369,9.7073791 26.768345,3.0803551 18.602905,3.0803551 z M 18.527046,6.2664243 C 24.808154,6.2664245 29.905864,11.364135 29.905864,17.645243 C 29.905864,23.926351 24.808154,29.024061 18.527046,29.024061 C 12.245938,29.024061 7.1482276,23.926351 7.1482276,17.645243 C 7.1482278,11.364135 12.245938,6.2664243 18.527046,6.2664243 z "
+         id="path4430"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="matrix(-0.643277,0,0,0.643277,31.49802,4.828704)"
+         style="color:#000000;fill:url(#linearGradient2732);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 39.507004,41.57769 C 39.028332,39.304503 40.904334,36.766268 43.091057,36.789315 C 43.091057,36.789315 32.33069,27.531204 32.33069,27.531204 C 29.385899,27.474498 28.061188,29.80382 28.553876,32.131126 L 39.507004,41.57769 z "
+         id="path4438"
+         sodipodi:nodetypes="ccccc"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:type="arc"
+         style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2734);stroke-width:1.24788225;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="path4450"
+         sodipodi:cx="17.500893"
+         sodipodi:cy="18.920233"
+         sodipodi:rx="11.048544"
+         sodipodi:ry="11.048544"
+         d="M 28.549437 18.920233 A 11.048544 11.048544 0 1 1  6.4523487,18.920233 A 11.048544 11.048544 0 1 1  28.549437 18.920233 z"
+         transform="matrix(-0.801358,0,0,0.801358,33.70147,0.855159)"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <rect
+         style="opacity:0.43315507;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.55458939;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect4495"
+         width="19.048439"
+         height="4.4404783"
+         x="40.373337"
+         y="0.14086054"
+         rx="3.3215265"
+         ry="2.9348745"
+         transform="matrix(-0.484379,0.4233,0.417423,0.489452,31.49802,4.828704)"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:type="arc"
+         style="color:#000000;fill:url(#radialGradient2736);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:1.11148739;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dashoffset:0;stroke-opacity:1;visibility:visible"
+         id="path4452"
+         sodipodi:cx="17.589281"
+         sodipodi:cy="18.478292"
+         sodipodi:rx="8.3085051"
+         sodipodi:ry="8.3085051"
+         d="M 25.897786 18.478292 A 8.3085051 8.3085051 0 1 1  9.280776,18.478292 A 8.3085051 8.3085051 0 1 1  25.897786 18.478292 z"
+         transform="matrix(-0.899697,0,0,0.899697,35.502,-0.509826)"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="matrix(0.643277,0,0,0.643277,7.855933,4.828704)"
+         style="opacity:0.83422457;color:#000000;fill:url(#radialGradient2738);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 18.156915,7.3966938 C 12.949325,7.3966938 8.7323681,11.613651 8.7323681,16.821241 C 8.7323681,18.325216 9.1526753,19.709014 9.77954,20.971144 C 11.03192,21.432757 12.362297,21.746827 13.774307,21.746827 C 19.945262,21.746827 24.873589,16.88519 25.254413,10.809698 C 23.523449,8.7641668 21.044374,7.3966938 18.156915,7.3966938 z "
+         id="path4462"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+    <path
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       transform="matrix(0.616613,0,0,0.293577,12.73816,29.12848)"
+       d="M 43.125 40.4375 A 19.5625 6.8125 0 1 1  4,40.4375 A 19.5625 6.8125 0 1 1  43.125 40.4375 z"
+       sodipodi:ry="6.8125"
+       sodipodi:rx="19.5625"
+       sodipodi:cy="40.4375"
+       sodipodi:cx="23.5625"
+       id="path3008"
+       style="opacity:0.2;color:#000000;fill:url(#radialGradient2552);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <g
+       id="g1574"
+       transform="matrix(1.033699,-0.276979,0.276979,1.033699,16.06828,-14.54823)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         transform="translate(-29.75546,19)"
+         sodipodi:nodetypes="cccccc"
+         id="path2960"
+         d="M 17.34116,32.5 L 22.96616,26.875 L 43.059909,17.125 C 46.309909,15.875 48.247409,20.5 45.372409,22.125 L 25.34116,31.5 L 17.34116,32.5 z "
+         style="color:#000000;fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:0.93443578;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="translate(-29.75546,19)"
+         style="color:#000000;fill:url(#linearGradient2554);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 45.361958,21.53125 C 45.361958,21.53125 46.81399,20.649883 46.018208,18.6875 C 45.233296,16.751923 43.330708,17.53125 43.330708,17.53125 L 38.330708,20 z "
+         id="path2964"
+         sodipodi:nodetypes="czcczcc"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="translate(-29.75546,19)"
+         sodipodi:nodetypes="czcczcc"
+         id="path2962"
+         d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 42.330708,23 C 42.330708,23 43.15774,21.681133 42.549458,20.3125 C 41.924458,18.90625 40.330708,19 40.330708,19 L 38.330708,20 z "
+         style="color:#000000;fill:url(#linearGradient2556);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="translate(-29.75546,19)"
+         sodipodi:nodetypes="cccc"
+         id="path2982"
+         d="M 18.768208,31.78125 L 23.268208,27.28125 C 24.768208,28.09375 25.549458,29.4375 25.143208,31 L 18.768208,31.78125 z "
+         style="color:#000000;fill:url(#radialGradient2558);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="translate(-29.75546,19)"
+         sodipodi:nodetypes="cccc"
+         id="path2992"
+         d="M 20.111958,30.375 L 18.486958,31.96875 L 20.830708,31.65625 C 21.049458,30.9375 20.643208,30.59375 20.111958,30.375 z "
+         style="color:#000000;fill:url(#linearGradient2560);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="translate(-29.75546,19)"
+         sodipodi:nodetypes="ccccc"
+         id="path3002"
+         d="M 23.268208,27.25 L 24.830708,28.5 L 40.218048,21.18133 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 z "
+         style="color:#000000;fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="translate(-29.75546,19)"
+         sodipodi:nodetypes="ccccc"
+         id="path3004"
+         d="M 25.143208,31.0625 L 25.330708,30.3125 L 40.561798,23.1829 C 40.561798,23.1829 40.451638,23.796527 40.345919,23.93225 L 25.143208,31.0625 z "
+         style="color:#000000;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/edit-find.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,750 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="90.000000"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-filename="/home/steven/edit-find-48.png"
+   sodipodi:docname="edit-find.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg249"
+   height="48.000000px"
+   width="48.000000px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective113" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4542">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4544" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4546" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         id="stop15664"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop15666"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="aigrd3"
+       cx="20.8921"
+       cy="64.5679"
+       r="5.257"
+       fx="20.8921"
+       fy="64.5679"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop15573" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop15575" />
+    </radialGradient>
+    <radialGradient
+       id="aigrd2"
+       cx="20.8921"
+       cy="114.5684"
+       r="5.256"
+       fx="20.8921"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop15566" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop15568" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         id="stop270"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop271"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         id="stop260"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop261"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient269"
+       id="radialGradient15656"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
+       cx="8.8244190"
+       cy="3.7561285"
+       fx="8.8244190"
+       fy="3.7561285"
+       r="37.751713" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="radialGradient15658"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.960493,1.041132)"
+       cx="33.966679"
+       cy="35.736916"
+       fx="33.966679"
+       fy="35.736916"
+       r="86.708450" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15662"
+       id="radialGradient15668"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
+       cx="8.1435566"
+       cy="7.2678967"
+       fx="8.1435566"
+       fy="7.2678967"
+       r="38.158695" />
+    <radialGradient
+       r="5.256"
+       fy="114.5684"
+       fx="20.8921"
+       cy="114.5684"
+       cx="20.8921"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2283"
+       xlink:href="#aigrd2"
+       inkscape:collect="always" />
+    <radialGradient
+       r="5.257"
+       fy="64.5679"
+       fx="20.8921"
+       cy="64.5679"
+       cx="20.8921"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2285"
+       xlink:href="#aigrd3"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4542"
+       id="radialGradient4548"
+       cx="24.306795"
+       cy="42.07798"
+       fx="24.306795"
+       fy="42.07798"
+       r="15.821514"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,0.000000,30.08928)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4440">
+      <stop
+         id="stop4442"
+         offset="0"
+         style="stop-color:#7d7d7d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop4448" />
+      <stop
+         id="stop4444"
+         offset="1.0000000"
+         style="stop-color:#686868;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4454">
+      <stop
+         id="stop4456"
+         offset="0.0000000"
+         style="stop-color:#729fcf;stop-opacity:0.20784314;" />
+      <stop
+         id="stop4458"
+         offset="1.0000000"
+         style="stop-color:#729fcf;stop-opacity:0.67619050;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4467">
+      <stop
+         id="stop4469"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4471"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.24761905;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4477"
+       inkscape:collect="always">
+      <stop
+         id="stop4479"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4481"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2366">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2368" />
+      <stop
+         id="stop2374"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:0.21904762;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2370" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2846">
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2848" />
+      <stop
+         style="stop-color:#484848;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2850" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4477"
+       id="radialGradient1527"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.237968,-8.821068e-16,28.93278)"
+       cx="24.130018"
+       cy="37.967922"
+       fx="24.130018"
+       fy="37.967922"
+       r="16.528622" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2846"
+       id="linearGradient1529"
+       gradientUnits="userSpaceOnUse"
+       x1="27.366341"
+       y1="26.580296"
+       x2="31.335964"
+       y2="30.557772" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4440"
+       id="linearGradient1531"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.334593,0.000000,0.000000,1.291292,-6.973842,-7.460658)"
+       x1="30.656250"
+       y1="34.000000"
+       x2="33.218750"
+       y2="31.062500" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2366"
+       id="linearGradient1533"
+       gradientUnits="userSpaceOnUse"
+       x1="18.292673"
+       y1="13.602121"
+       x2="17.500893"
+       y2="25.743469" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4454"
+       id="radialGradient1537"
+       gradientUnits="userSpaceOnUse"
+       cx="18.240929"
+       cy="21.817987"
+       fx="18.240929"
+       fy="21.817987"
+       r="8.3085051" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4467"
+       id="radialGradient1539"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.592963,-7.746900e-24,-5.714443e-24,2.252104,-25.05975,-18.94100)"
+       cx="15.414371"
+       cy="13.078408"
+       fx="15.414371"
+       fy="13.078408"
+       r="6.6562500" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="418"
+     inkscape:window-height="818"
+     inkscape:window-width="1016"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="true"
+     inkscape:current-layer="layer6"
+     inkscape:cy="14.980943"
+     inkscape:cx="25.938708"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Edit Find</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>find</rdf:li>
+            <rdf:li>locate</rdf:li>
+            <rdf:li>search</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Steven Garrity</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Shadow">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.165152e-2,0,0,1.485743e-2,43.0076,42.68539)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     inkscape:label="Base"
+     id="layer1">
+    <rect
+       style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+       id="rect15391"
+       width="34.875000"
+       height="40.920494"
+       x="6.6035528"
+       y="3.6464462"
+       ry="1.1490486" />
+    <rect
+       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+       id="rect15660"
+       width="32.775887"
+       height="38.946384"
+       x="7.6660538"
+       y="4.5839462"
+       ry="0.14904857"
+       rx="0.14904857" />
+    <g
+       transform="translate(0.646447,-3.798933e-2)"
+       id="g2270">
+      <g
+         id="g1440"
+         style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+         transform="matrix(0.229703,0.000000,0.000000,0.229703,4.967081,4.244972)">
+        <radialGradient
+           id="radialGradient1442"
+           cx="20.892099"
+           cy="114.56840"
+           r="5.2560000"
+           fx="20.892099"
+           fy="114.56840"
+           gradientUnits="userSpaceOnUse">
+          <stop
+             offset="0"
+             style="stop-color:#F0F0F0"
+             id="stop1444" />
+          <stop
+             offset="1"
+             style="stop-color:#474747"
+             id="stop1446" />
+        </radialGradient>
+        <path
+           style="stroke:none"
+           d="M 23.428000,113.07000 C 23.428000,115.04300 21.828000,116.64200 19.855000,116.64200 C 17.881000,116.64200 16.282000,115.04200 16.282000,113.07000 C 16.282000,111.09600 17.882000,109.49700 19.855000,109.49700 C 21.828000,109.49700 23.428000,111.09700 23.428000,113.07000 z "
+           id="path1448" />
+        <radialGradient
+           id="radialGradient1450"
+           cx="20.892099"
+           cy="64.567902"
+           r="5.2570000"
+           fx="20.892099"
+           fy="64.567902"
+           gradientUnits="userSpaceOnUse">
+          <stop
+             offset="0"
+             style="stop-color:#F0F0F0"
+             id="stop1452" />
+          <stop
+             offset="1"
+             style="stop-color:#474747"
+             id="stop1454" />
+        </radialGradient>
+        <path
+           style="stroke:none"
+           d="M 23.428000,63.070000 C 23.428000,65.043000 21.828000,66.643000 19.855000,66.643000 C 17.881000,66.643000 16.282000,65.043000 16.282000,63.070000 C 16.282000,61.096000 17.882000,59.497000 19.855000,59.497000 C 21.828000,59.497000 23.428000,61.097000 23.428000,63.070000 z "
+           id="path1456" />
+      </g>
+      <path
+         style="fill:url(#radialGradient2283);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+         d="M 9.9950109,29.952326 C 9.9950109,30.405530 9.6274861,30.772825 9.1742821,30.772825 C 8.7208483,30.772825 8.3535532,30.405301 8.3535532,29.952326 C 8.3535532,29.498892 8.7210780,29.131597 9.1742821,29.131597 C 9.6274861,29.131597 9.9950109,29.499122 9.9950109,29.952326 z "
+         id="path15570" />
+      <path
+         style="fill:url(#radialGradient2285);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+         d="M 9.9950109,18.467176 C 9.9950109,18.920380 9.6274861,19.287905 9.1742821,19.287905 C 8.7208483,19.287905 8.3535532,18.920380 8.3535532,18.467176 C 8.3535532,18.013742 8.7210780,17.646447 9.1742821,17.646447 C 9.6274861,17.646447 9.9950109,18.013972 9.9950109,18.467176 z "
+         id="path15577" />
+    </g>
+    <path
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854"
+       d="M 11.505723,5.4942766 L 11.505723,43.400869"
+       id="path15672"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831"
+       d="M 12.500000,5.0205154 L 12.500000,43.038228"
+       id="path15674"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Magnifying Glass"
+     style="display:inline">
+    <g
+       transform="matrix(0.909091,0.000000,0.000000,1.000000,2.363628,0.000000)"
+       id="g2253">
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15686"
+         width="22.000004"
+         height="1.0000000"
+         x="15.000002"
+         y="9.0000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15688"
+         width="22.000004"
+         height="1.0000000"
+         x="15.000002"
+         y="11.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15690"
+         width="22.000004"
+         height="1.0000000"
+         x="15.000002"
+         y="13.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15692"
+         width="22.000004"
+         height="1.0000000"
+         x="15.000002"
+         y="15.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15694"
+         width="22.000004"
+         height="1.0000000"
+         x="15.000002"
+         y="17.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15696"
+         width="22.000004"
+         height="1.0000000"
+         x="15.000002"
+         y="19.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15698"
+         width="22.000004"
+         height="1.0000000"
+         x="15.000002"
+         y="21.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15700"
+         width="22.000004"
+         height="1.0000000"
+         x="15.000002"
+         y="23.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15732"
+         width="9.9000053"
+         height="1.0000000"
+         x="14.999992"
+         y="25.000000"
+         rx="0.068204239"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15736"
+         width="22.000004"
+         height="1.0000000"
+         x="14.999992"
+         y="29.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15738"
+         width="22.000004"
+         height="1.0000000"
+         x="14.999992"
+         y="31.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15740"
+         width="22.000004"
+         height="1.0000000"
+         x="14.999992"
+         y="33.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15742"
+         width="22.000004"
+         height="1.0000000"
+         x="14.999992"
+         y="35.000000"
+         rx="0.15156493"
+         ry="0.065390877" />
+      <rect
+         style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible"
+         id="rect15744"
+         width="15.400014"
+         height="1.0000000"
+         x="14.999992"
+         y="37.000000"
+         rx="0.10609552"
+         ry="0.065390877" />
+    </g>
+    <g
+       id="g1772"
+       transform="matrix(0.665377,0.000000,0.000000,0.665377,15.98645,17.90835)">
+      <path
+         sodipodi:type="arc"
+         style="opacity:0.17112298;color:#000000;fill:url(#radialGradient1527);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="path4475"
+         sodipodi:cx="24.130018"
+         sodipodi:cy="37.967922"
+         sodipodi:rx="16.528622"
+         sodipodi:ry="3.9332814"
+         d="M 40.658640 37.967922 A 16.528622 3.9332814 0 1 1  7.6013966,37.967922 A 16.528622 3.9332814 0 1 1  40.658640 37.967922 z"
+         transform="matrix(1.446431,0.000000,0.000000,1.519990,-10.97453,-17.75168)" />
+      <path
+         sodipodi:nodetypes="csscccscccscczzzz"
+         id="path2844"
+         d="M 18.627569,3.1435548 C 10.488439,3.1435548 3.8827682,9.7492259 3.8827682,17.888356 C 3.8827682,26.027486 10.488439,32.633158 18.627569,32.633158 C 22.107124,32.633158 25.178570,31.248765 27.701292,29.230511 C 27.495915,30.237392 27.623257,31.265879 28.457436,31.990436 L 39.421520,41.517846 C 40.654936,42.589175 42.508982,42.448806 43.580310,41.215389 C 44.651638,39.981971 44.511269,38.127927 43.277853,37.056599 L 32.313769,27.529188 C 31.642242,26.945909 30.820891,26.773219 30.007531,26.886466 C 31.994231,24.374044 33.372370,21.337663 33.372370,17.888356 C 33.372370,9.7492259 26.766699,3.1435548 18.627569,3.1435548 z M 18.551954,4.3697381 C 26.191413,4.3697381 31.843729,9.1586886 31.843729,17.661513 C 31.843729,26.336626 26.027039,30.953288 18.551954,30.953288 C 11.249005,30.953288 5.2601806,25.475196 5.2601806,17.661513 C 5.2601806,9.6774061 11.084819,4.3697380 18.551954,4.3697381 z "
+         style="opacity:1.0000000;color:#000000;fill:#dcdcdc;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1529);stroke-width:3.0058157;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1.0000000;color:#000000;fill:#dcdcdc;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         d="M 18.602905,3.0803551 C 10.437465,3.0803551 3.8104408,9.7073791 3.8104408,17.872819 C 3.8104408,26.038259 10.437465,32.665283 18.602905,32.665283 C 22.093708,32.665283 25.175082,31.276416 27.705960,29.251638 C 27.499919,30.261774 27.627672,31.293585 28.464547,32.020484 L 39.464073,41.578691 C 40.701476,42.653483 42.561515,42.512661 43.636306,41.275256 C 44.711097,40.037852 44.570274,38.177814 43.332871,37.103023 L 32.333346,27.544815 C 31.659648,26.959651 30.835642,26.786402 30.019653,26.900016 C 32.012775,24.379472 33.395369,21.333276 33.395369,17.872819 C 33.395369,9.7073791 26.768345,3.0803551 18.602905,3.0803551 z M 18.527046,6.2664243 C 24.808154,6.2664245 29.905864,11.364135 29.905864,17.645243 C 29.905864,23.926351 24.808154,29.024061 18.527046,29.024061 C 12.245938,29.024061 7.1482276,23.926351 7.1482276,17.645243 C 7.1482278,11.364135 12.245938,6.2664243 18.527046,6.2664243 z "
+         id="path4430" />
+      <path
+         style="opacity:1.0000000;color:#000000;fill:url(#linearGradient1531);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         d="M 39.507004,41.577690 C 39.028332,39.304503 40.904334,36.766268 43.091057,36.789315 C 43.091057,36.789315 32.330690,27.531204 32.330690,27.531204 C 29.385899,27.474498 28.061188,29.803820 28.553876,32.131126 L 39.507004,41.577690 z "
+         id="path4438"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         sodipodi:type="arc"
+         style="opacity:1.0000000;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1533);stroke-width:1.2064340;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="path4450"
+         sodipodi:cx="17.500893"
+         sodipodi:cy="18.920233"
+         sodipodi:rx="11.048544"
+         sodipodi:ry="11.048544"
+         d="M 28.549437 18.920233 A 11.048544 11.048544 0 1 1  6.4523487,18.920233 A 11.048544 11.048544 0 1 1  28.549437 18.920233 z"
+         transform="matrix(1.245743,0.000000,0.000000,1.245743,-3.425346,-6.177033)" />
+      <rect
+         style="opacity:0.43315509;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.5029539;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         id="rect4495"
+         width="19.048439"
+         height="4.4404783"
+         x="40.373337"
+         y="0.14086054"
+         rx="3.2112026"
+         ry="2.8373930"
+         transform="matrix(0.752986,0.658037,-0.648902,0.760872,0.000000,0.000000)" />
+      <path
+         sodipodi:type="arc"
+         style="color:#000000;fill:url(#radialGradient1537);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3063a3;stroke-width:1.0745695;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible"
+         id="path4452"
+         sodipodi:cx="17.589281"
+         sodipodi:cy="18.478292"
+         sodipodi:rx="8.3085051"
+         sodipodi:ry="8.3085051"
+         d="M 25.897786 18.478292 A 8.3085051 8.3085051 0 1 1  9.2807760,18.478292 A 8.3085051 8.3085051 0 1 1  25.897786 18.478292 z"
+         transform="matrix(1.398614,0.000000,0.000000,1.398614,-6.224338,-8.298958)" />
+      <path
+         style="opacity:0.83422458;color:#000000;fill:url(#radialGradient1539);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         d="M 18.156915,7.3966938 C 12.949325,7.3966938 8.7323681,11.613651 8.7323681,16.821241 C 8.7323681,18.325216 9.1526753,19.709014 9.7795400,20.971144 C 11.031920,21.432757 12.362297,21.746827 13.774307,21.746827 C 19.945262,21.746827 24.873589,16.885190 25.254413,10.809698 C 23.523449,8.7641668 21.044374,7.3966938 18.156915,7.3966938 z "
+         id="path4462" />
+    </g>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/edit-paste.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,531 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg12360"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="edit-paste.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs12362">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective80" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2259">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2261" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2263" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2251">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2253" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2255" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2239">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2241" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2243" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2224">
+      <stop
+         style="stop-color:#7c7c7c;stop-opacity:1;"
+         offset="0"
+         id="stop2226" />
+      <stop
+         style="stop-color:#b8b8b8;stop-opacity:1;"
+         offset="1"
+         id="stop2228" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2216">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2218" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop2220" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15234">
+      <stop
+         style="stop-color:#97978a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15236" />
+      <stop
+         id="stop15242"
+         offset="0.50000000"
+         style="stop-color:#c2c2b9;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#7d7d6f;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15238" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15218">
+      <stop
+         style="stop-color:#f0f0ef;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15220" />
+      <stop
+         id="stop2269"
+         offset="0.59928656"
+         style="stop-color:#e8e8e8;stop-opacity:1;" />
+      <stop
+         id="stop2267"
+         offset="0.82758623"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#d8d8d3;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15222" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient14484">
+      <stop
+         style="stop-color:#c68827;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop14486" />
+      <stop
+         style="stop-color:#89601f;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop14488" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient13746">
+      <stop
+         style="stop-color:#646459;stop-opacity:1;"
+         offset="0"
+         id="stop13748" />
+      <stop
+         style="stop-color:#646459;stop-opacity:0;"
+         offset="1"
+         id="stop13750" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient13746"
+       id="radialGradient13752"
+       cx="24.647722"
+       cy="45.272587"
+       fx="24.647722"
+       fy="45.272587"
+       r="21.011173"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.110577,4.987330e-17,40.26648)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14484"
+       id="linearGradient14490"
+       x1="6.1071744"
+       y1="10.451290"
+       x2="33.857143"
+       y2="37.879860"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15218"
+       id="linearGradient15224"
+       x1="22.308331"
+       y1="18.992140"
+       x2="35.785294"
+       y2="39.498238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.065698,0.000000,0.000000,0.987595,-1.564439,7.487332e-2)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15234"
+       id="linearGradient15240"
+       x1="25.404572"
+       y1="3.8180194"
+       x2="25.464211"
+       y2="9.3233509"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.052632,0.000000,0.000000,1.000000,-1.789474,0.000000)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2216"
+       id="linearGradient2222"
+       x1="36.8125"
+       y1="39.15625"
+       x2="39.0625"
+       y2="42.0625"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2224"
+       id="linearGradient2230"
+       x1="35.996582"
+       y1="40.458221"
+       x2="33.664921"
+       y2="37.770721"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2239"
+       id="linearGradient2245"
+       x1="25.682829"
+       y1="12.172059"
+       x2="25.692169"
+       y2="-0.20294096"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2251"
+       id="linearGradient2257"
+       x1="33.396004"
+       y1="36.921333"
+       x2="34.170048"
+       y2="38.070381"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2259"
+       id="linearGradient2265"
+       x1="26.076092"
+       y1="26.696676"
+       x2="30.811172"
+       y2="42.007351"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15234"
+       id="linearGradient2283"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.538743,0.000000,0.000000,0.511806,10.80080,-0.582640)"
+       x1="25.404572"
+       y1="3.8180194"
+       x2="25.404572"
+       y2="6.481061" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15234"
+       id="linearGradient2287"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.005222,0.000000,0.000000,0.883928,-0.627923,0.843750)"
+       x1="25.404572"
+       y1="3.8180194"
+       x2="25.464211"
+       y2="9.3233509" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.15294118"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="-125.14425"
+     inkscape:cy="14.046835"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="818"
+     inkscape:window-x="385"
+     inkscape:window-y="30"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata12365">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Edit Paste</dc:title>
+        <dc:date>2005-10-10</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>paste</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.325216e-2,0,0,1.485743e-2,44.80627,43.06039)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <rect
+       style="opacity:1.0000000;fill:url(#linearGradient14490);fill-opacity:1.0;fill-rule:evenodd;stroke:#714c16;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1"
+       id="rect12368"
+       width="39.035683"
+       height="41.045437"
+       x="4.4643173"
+       y="4.5000000"
+       rx="1.3879371"
+       ry="1.3879364" />
+    <rect
+       style="opacity:1;fill:url(#linearGradient15224);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect12413"
+       width="30.951559"
+       height="35.976688"
+       x="8.5323219"
+       y="6.5295157"
+       rx="0.56650835"
+       ry="0.56650835" />
+    <rect
+       style="opacity:1.0000000;fill:#5c5c5c;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+       id="rect13756"
+       width="12.000000"
+       height="4.0000000"
+       x="18.000000"
+       y="0.0000000"
+       rx="0.98387533"
+       ry="0.98387533" />
+    <rect
+       style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2265);stroke-width:1.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect15244"
+       width="29.014147"
+       height="34.040764"
+       x="9.5171413"
+       y="7.4665856"
+       rx="0"
+       ry="0" />
+    <rect
+       style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#c68827;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+       id="rect15974"
+       width="37.085655"
+       height="39.092987"
+       x="5.4393425"
+       y="5.4307775"
+       rx="0.47879848"
+       ry="0.47879848" />
+    <rect
+       ry="1.3879364"
+       rx="1.3879377"
+       y="4.4722719"
+       x="14.791488"
+       height="7"
+       width="18.947376"
+       id="rect2208"
+       style="opacity:0.10795455;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    <rect
+       ry="1.3879364"
+       rx="1.3879377"
+       y="3.5000000"
+       x="14.526322"
+       height="7.0000000"
+       width="18.947376"
+       id="rect2285"
+       style="opacity:1.0000000;fill:url(#linearGradient15240);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#5c5c5c;stroke-width:1.0000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+    <rect
+       ry="0.32543635"
+       rx="0.32543635"
+       y="1.2086792"
+       x="19.151323"
+       height="3.5826404"
+       width="9.6973763"
+       id="rect2281"
+       style="opacity:1;fill:url(#linearGradient2283);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    <rect
+       style="opacity:1;fill:url(#linearGradient2287);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect13754"
+       width="18.093992"
+       height="6.1875"
+       x="14.953014"
+       y="3.9375"
+       rx="1.0129364"
+       ry="1.0129364" />
+    <path
+       style="opacity:0.48863636;color:#000000;fill:url(#linearGradient2222);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 39.018306,36.25 L 39.0625,42.0625 L 30.5625,42.018306 L 39.018306,36.25 z "
+       id="path2212"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient2230);fill-opacity:1.0;fill-rule:evenodd;stroke:#868a84;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 30.059082,42.086864 C 31.850223,42.254516 39.048809,37.717278 39.539922,33.698855 C 37.97666,36.121952 34.584971,35.667446 30.476213,35.826456 C 30.476213,35.826456 30.871582,41.586864 30.059082,42.086864 z "
+       id="path2210"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="opacity:0.31681817;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2245);stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 19.46875 1.46875 C 19.466654 1.4708456 19.470414 1.4975336 19.46875 1.5 C 19.46758 1.502776 19.438116 1.4969757 19.4375 1.5 L 19.4375 4.375 C 19.4375 4.3814229 19.46641 4.4006981 19.46875 4.40625 C 19.471216 4.4079135 19.465974 4.4363298 19.46875 4.4375 L 15.9375 4.4375 C 15.91974 4.4375 15.892285 4.4357551 15.875 4.4375 C 15.840968 4.4426713 15.781454 4.4572762 15.75 4.46875 C 15.611832 4.5269964 15.482328 4.6677699 15.4375 4.8125 C 15.426991 4.8535348 15.4375 4.9243489 15.4375 4.96875 L 15.4375 9.125 C 15.4375 9.1427605 15.435755 9.1702147 15.4375 9.1875 C 15.442671 9.2215321 15.457276 9.2810456 15.46875 9.3125 C 15.478458 9.3355281 15.487176 9.3851004 15.5 9.40625 C 15.5046 9.41307 15.526336 9.4309205 15.53125 9.4375 C 15.552124 9.4628138 15.599686 9.5103764 15.625 9.53125 C 15.638159 9.5410789 15.6734 9.5539504 15.6875 9.5625 C 15.702038 9.5703781 15.734648 9.5872782 15.75 9.59375 C 15.781454 9.6052238 15.840968 9.6198287 15.875 9.625 C 15.892285 9.6267449 15.91974 9.625 15.9375 9.625 L 32.0625 9.625 C 32.08026 9.625 32.107715 9.6267449 32.125 9.625 C 32.159032 9.6198287 32.218546 9.6052238 32.25 9.59375 C 32.265352 9.5872782 32.297962 9.5703781 32.3125 9.5625 C 32.3266 9.5539504 32.361841 9.5410789 32.375 9.53125 C 32.400314 9.5103764 32.447876 9.4628138 32.46875 9.4375 C 32.473664 9.4309205 32.4954 9.41307 32.5 9.40625 C 32.512824 9.3851004 32.521542 9.3355281 32.53125 9.3125 C 32.542724 9.2810456 32.557329 9.2215321 32.5625 9.1875 C 32.564245 9.1702147 32.5625 9.1427605 32.5625 9.125 L 32.5625 4.96875 C 32.5625 4.9243489 32.573009 4.8535348 32.5625 4.8125 C 32.517672 4.6677698 32.388168 4.5269964 32.25 4.46875 C 32.218546 4.4572762 32.159032 4.4426713 32.125 4.4375 C 32.107715 4.4357551 32.08026 4.4375 32.0625 4.4375 L 28.53125 4.4375 C 28.534026 4.4363298 28.528784 4.4079135 28.53125 4.40625 C 28.533591 4.4006981 28.5625 4.3814229 28.5625 4.375 L 28.5625 1.5 C 28.561884 1.4969757 28.53242 1.502776 28.53125 1.5 C 28.529586 1.4975336 28.533346 1.4708456 28.53125 1.46875 C 28.528474 1.4675798 28.503024 1.4693657 28.5 1.46875 L 19.5 1.46875 C 19.496976 1.4693657 19.471526 1.4675798 19.46875 1.46875 z "
+       id="rect2232" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path2247"
+       d="M 31.509519,40.68705 C 32.879298,40.003221 36.038783,38.086016 37.338164,36.205012 C 35.545641,36.581496 34.347243,36.794585 31.610576,36.900494 C 31.610576,36.900494 31.697137,39.91208 31.509519,40.68705 z "
+       style="opacity:0.36931818;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2257);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <rect
+       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect2271"
+       width="21"
+       height="2"
+       x="14"
+       y="15" />
+    <rect
+       y="19"
+       x="14"
+       height="2"
+       width="20"
+       id="rect2273"
+       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <rect
+       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect2275"
+       width="18"
+       height="2"
+       x="14"
+       y="23" />
+    <rect
+       y="27"
+       x="14"
+       height="2"
+       width="21"
+       id="rect2277"
+       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <rect
+       style="opacity:0.17045455;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect2279"
+       width="13"
+       height="2"
+       x="14"
+       y="31" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/edit-redo.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="90.000000"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   width="48px"
+   height="48px"
+   id="svg11300"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   sodipodi:docname="edit-redo.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective31" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2240">
+      <stop
+         style="stop-color:#99b00b;stop-opacity:1;"
+         offset="0"
+         id="stop2242" />
+      <stop
+         style="stop-color:#99b00b;stop-opacity:0;"
+         offset="1"
+         id="stop2244" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2232">
+      <stop
+         style="stop-color:#788600;stop-opacity:1;"
+         offset="0"
+         id="stop2234" />
+      <stop
+         style="stop-color:#788600;stop-opacity:0;"
+         offset="1"
+         id="stop2236" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4991">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4993" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4995" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8662">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop8664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8666" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient8668"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-5.825329e-14,16.87306)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient2187"
+       inkscape:collect="always">
+      <stop
+         id="stop2189"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2191"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient1764"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.813471e-16,-1.171926,1.171926,1.813471e-16,1.782801,54.10111)"
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4991"
+       id="radialGradient4997"
+       cx="16.563837"
+       cy="11.132236"
+       fx="16.563837"
+       fy="11.132236"
+       r="19.0625"
+       gradientTransform="matrix(-1.290127e-2,1.685197,1.713082,1.311475e-2,-1.041499,-10.11571)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2232"
+       id="linearGradient2238"
+       x1="33"
+       y1="35.75"
+       x2="31.5"
+       y2="42.5"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2240"
+       id="linearGradient2246"
+       x1="33"
+       y1="35.75"
+       x2="31.5"
+       y2="42.5"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     stroke="#788600"
+     fill="#99b00b"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.25490196"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4"
+     inkscape:cx="12.500477"
+     inkscape:cy="33.008096"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="892"
+     inkscape:window-height="818"
+     inkscape:window-x="368"
+     inkscape:window-y="30" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Edit Redo</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>redo</rdf:li>
+            <rdf:li>again</rdf:li>
+            <rdf:li>reapply</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       transform="matrix(1.489736,0.000000,0.000000,-1.001252,-12.64716,75.31260)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.14117647;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient2246);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient2238);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 38.37476,45.034369 C -1.6510486,46.355509 4.6747954,12.29355 25.49479,12.49765 L 25.49479,3.1222396 L 42.143271,17.708819 L 25.49479,33.006349 C 25.49479,33.006349 25.49479,23.337969 25.49479,23.337969 C 11.43168,22.751999 7.3172614,44.770549 38.37476,45.034369 z "
+       id="path1432"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       id="path2177"
+       d="M 16.92492,39.315519 C 5.2018204,33.235892 8.7371274,13.087489 26.5085,13.549959 L 26.5085,5.4508678 C 26.5085,5.4508678 40.556238,17.714589 40.556238,17.714589 L 26.5085,30.658617 C 26.5085,30.658617 26.5085,22.380979 26.5085,22.380979 C 11.66865,22.032709 12.34859,35.138579 16.92492,39.315519 z "
+       style="opacity:0.69886361;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1764);stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <path
+       style="opacity:0.49431817;color:#000000;fill:url(#radialGradient4997);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 26.036989,4.5686095 L 36.723727,14.798241 C 29.786227,14.79824 32.036989,23.735424 25.911989,26.610424 L 25.974489,22.943609 C 10.786989,22.881109 11.661989,38.443609 22.724489,42.693609 C 3.6363414,37.811681 6.2869904,13.381109 25.911989,12.88111 L 26.036989,4.5686095 z "
+       id="path4989"
+       sodipodi:nodetypes="ccccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/edit-undo.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="90.000000"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   width="48px"
+   height="48px"
+   id="svg11300"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   sodipodi:docname="edit-undo.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective31" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2326">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2328" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2330" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2316">
+      <stop
+         style="stop-color:#c4a000;stop-opacity:1;"
+         offset="0"
+         id="stop2318" />
+      <stop
+         style="stop-color:#c4a000;stop-opacity:0;"
+         offset="1"
+         id="stop2320" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2308">
+      <stop
+         style="stop-color:#edd400;stop-opacity:1;"
+         offset="0"
+         id="stop2310" />
+      <stop
+         style="stop-color:#edd400;stop-opacity:0;"
+         offset="1"
+         id="stop2312" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8662">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop8664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8666" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient8668"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-6.227265e-14,16.87306)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient2187"
+       inkscape:collect="always">
+      <stop
+         id="stop2189"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2191"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient1764"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.813471e-16,-1.171926,-1.171926,1.813471e-16,46.17440,54.10111)"
+       x1="17.060806"
+       y1="11.39502"
+       x2="12.624337"
+       y2="12.583769" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2308"
+       id="linearGradient2314"
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2316"
+       id="linearGradient2322"
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2326"
+       id="radialGradient2332"
+       cx="15.09403"
+       cy="13.282721"
+       fx="15.09403"
+       fy="13.282721"
+       r="10.16466"
+       gradientTransform="matrix(2.496031,-1.151905e-16,1.061756e-16,2.300689,-25.12402,-17.82636)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     stroke="#c4a000"
+     fill="#edd400"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.25490196"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="-19.855325"
+     inkscape:cy="-15.183692"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="891"
+     inkscape:window-height="818"
+     inkscape:window-x="0"
+     inkscape:window-y="30" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Edit Undo</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>undo</rdf:li>
+            <rdf:li>revert</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       transform="matrix(-1.489736,0.000000,0.000000,-1.001252,60.60436,75.31260)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.14117647;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient2314);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient2322);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 9.582441,45.034369 C 49.608249,46.355509 43.282405,12.29355 22.462411,12.49765 L 22.462411,3.1222396 L 5.8139298,17.708819 L 22.462411,33.006349 C 22.462411,33.006349 22.462411,23.337969 22.462411,23.337969 C 36.525521,22.751999 40.639939,44.770549 9.582441,45.034369 z "
+       id="path1432"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       id="path2177"
+       d="M 31.032281,39.315519 C 42.75538,33.235892 39.220073,13.087489 21.448701,13.549959 L 21.448701,5.4508678 C 21.448701,5.4508678 7.4009628,17.714589 7.4009628,17.714589 L 21.448701,30.658617 C 21.448701,30.658617 21.448701,22.380979 21.448701,22.380979 C 36.288551,22.032709 35.608611,35.138579 31.032281,39.315519 z "
+       style="opacity:0.69886361;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1764);stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <path
+       style="opacity:0.51136364;color:#000000;fill:url(#radialGradient2332);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 6.6291261,17.682797 L 12.28598,23.074486 C 18.561553,22.897709 15.733126,16.710525 26.958446,13.616933 L 22.008699,12.998214 L 21.92031,4.3361562 L 6.6291261,17.682797 z "
+       id="path2324"
+       sodipodi:nodetypes="cccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/folder-new.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,452 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg97"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="folder-new.svg"
+   inkscape:export-filename="/home/jimmac/Desktop/horlander-style3.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective71" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         style="stop-color:#6194cb;stop-opacity:1;"
+         offset="0"
+         id="stop9768" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="1"
+         id="stop9770" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         offset="0"
+         style="stop-color:#424242;stop-opacity:1;" />
+      <stop
+         id="stop3100"
+         offset="1.0000000"
+         style="stop-color:#777777;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319"
+       inkscape:collect="always">
+      <stop
+         id="stop320"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop321"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         style="stop-color:#202020;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop1790" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop1791" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1789"
+       id="radialGradient238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.055022,-2.734504e-2,0.177703,1.190929,-3.572177,-7.125301)"
+       cx="20.706017"
+       cy="37.517986"
+       fx="20.706017"
+       fy="37.517986"
+       r="30.905205" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.87628865;"
+         offset="0.0000000"
+         id="stop3984" />
+      <stop
+         style="stop-color:#fffffe;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop3985" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3983"
+       id="linearGradient491"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0.000000,0.000000,0.708978,-0.879573,-1.318166)"
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="46.689312"
+       x2="12.853771"
+       y1="32.567184"
+       x1="13.035696"
+       gradientTransform="matrix(1.317489,0.000000,0.000000,0.816256,-0.879573,-1.318166)"
+       id="linearGradient322"
+       xlink:href="#linearGradient319"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.1802502"
+       x2="15.514889"
+       y1="31.367750"
+       x1="18.112709"
+       id="linearGradient3104"
+       xlink:href="#linearGradient3096"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9766"
+       id="linearGradient9772"
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop12517"
+         offset="0.50000000"
+         style="stop-color:#fff520;stop-opacity:0.89108908;" />
+      <stop
+         id="stop12514"
+         offset="1.0000000"
+         style="stop-color:#fff300;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12512"
+       id="radialGradient1758"
+       gradientUnits="userSpaceOnUse"
+       cx="55.000000"
+       cy="125.00000"
+       fx="55.000000"
+       fy="125.00000"
+       r="14.375000" />
+  </defs>
+  <sodipodi:namedview
+     fill="#729fcf"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.10196078"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="-83.185817"
+     inkscape:cy="-7.2408029"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="659"
+     inkscape:window-x="898"
+     inkscape:window-y="342"
+     inkscape:showpageshadow="false"
+     stroke="#3465a4" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>New Folder</dc:title>
+        <dc:date />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>folder</rdf:li>
+            <rdf:li>directory</rdf:li>
+            <rdf:li>create</rdf:li>
+            <rdf:li>new</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Tuomas Kuosmanen</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Folder"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.165152e-2,0,0,1.903841e-2,42.41538,36.93372)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       d="M 4.5217805,38.687417 C 4.5435766,39.103721 4.9816854,39.520026 5.3979900,39.520026 L 36.725011,39.520026 C 37.141313,39.520026 37.535823,39.103721 37.514027,38.687417 L 36.577584,11.460682 C 36.555788,11.044379 36.117687,10.628066 35.701383,10.628066 L 22.430510,10.628066 C 21.945453,10.628066 21.196037,10.312477 21.028866,9.5214338 L 20.417475,6.6283628 C 20.262006,5.8926895 19.535261,5.5904766 19.118957,5.5904766 L 4.3400975,5.5904766 C 3.9237847,5.5904766 3.5292767,6.0067807 3.5510726,6.4230849 L 4.5217805,38.687417 z "
+       id="path216"
+       style="fill:url(#radialGradient238);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient3104);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+       sodipodi:nodetypes="ccccccssssccc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9788"
+       d="M 5.2265927,22.5625 L 35.492173,22.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9784"
+       d="M 5.0421736,18.5625 L 35.489104,18.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 4.9806965,12.5625 L 35.488057,12.5625"
+       id="path9778"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.3861577,32.5625 L 35.494881,32.5625"
+       id="path9798"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9800"
+       d="M 5.5091398,34.5625 L 35.496893,34.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.0421736,16.5625 L 35.489104,16.5625"
+       id="path9782"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9780"
+       d="M 5.0114345,14.5625 L 35.48858,14.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9776"
+       d="M 4.9220969,10.5625 L 20.202912,10.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 4.8737534,8.5624999 L 19.657487,8.5624999"
+       id="path9774"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.3246666,28.5625 L 35.493876,28.5625"
+       id="path9794"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9792"
+       d="M 5.2880638,26.5625 L 35.493184,26.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.2265927,24.5625 L 35.492173,24.5625"
+       id="path9790"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.1958537,20.5625 L 35.491649,20.5625"
+       id="path9786"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9796"
+       d="M 5.3246666,30.5625 L 35.493876,30.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.5091398,36.5625 L 35.496893,36.5625"
+       id="path9802"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="color:#000000;fill:url(#linearGradient491);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.2138050;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible;opacity:0.45142857"
+       d="M 6.0683430,38.864023 C 6.0846856,39.176251 5.8874317,39.384402 5.5697582,39.280326 L 5.5697582,39.280326 C 5.2520766,39.176251 5.0330270,38.968099 5.0166756,38.655870 L 4.0689560,6.5913839 C 4.0526131,6.2791558 4.2341418,6.0906134 4.5463699,6.0906134 L 18.968420,6.0429196 C 19.280648,6.0429196 19.900363,6.3433923 20.101356,7.3651014 L 20.674845,10.180636 C 20.247791,9.7153790 20.255652,9.7010175 20.037287,9.0239299 L 19.631192,7.7647478 C 19.412142,7.0371009 18.932991,6.9328477 18.620763,6.9328477 L 5.7329889,6.9328477 C 5.4207613,6.9328477 5.2235075,7.1409999 5.2398583,7.4532364 L 6.1778636,38.968099 L 6.0683430,38.864023 z "
+       id="path219"
+       sodipodi:nodetypes="cccccccccscccccc" />
+    <g
+       style="stroke-miterlimit:4.0000000;stroke-width:0.99946535;stroke:none;fill-rule:nonzero;fill-opacity:0.75706214;fill:#ffffff"
+       id="g220"
+       transform="matrix(1.040764,0.000000,5.449252e-2,1.040764,-8.670199,2.670594)"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-ydpi="74.800003">
+      <path
+         style="fill-opacity:0.50847459;fill:#ffffff"
+         d="M 42.417183,8.5151772 C 42.422267,8.4180642 42.289022,8.2681890 42.182066,8.2681716 L 29.150665,8.2660527 C 29.150665,8.2660527 30.062379,8.8540072 31.352477,8.8622963 L 42.405974,8.9333167 C 42.417060,8.7215889 42.408695,8.6772845 42.417183,8.5151772 z "
+         id="path221"
+         sodipodi:nodetypes="cscscs" />
+    </g>
+    <path
+       style="color:#000000;fill:url(#linearGradient9772);fill-opacity:1.0;fill-rule:nonzero;stroke:#3465a4;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:block"
+       d="M 39.783532,39.510620 C 40.927426,39.466556 41.746608,38.414321 41.830567,37.189615 C 42.622354,25.640928 43.489927,15.957666 43.489927,15.957666 C 43.562082,15.710182 43.322016,15.462699 43.009787,15.462699 L 8.6386304,15.462699 C 8.6386304,15.462699 6.7883113,37.329591 6.7883113,37.329591 C 6.6737562,38.311657 6.3223038,39.134309 5.2384755,39.513304 L 39.783532,39.510620 z "
+       id="path233"
+       sodipodi:nodetypes="cscccscc"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-ydpi="74.800003" />
+    <path
+       sodipodi:nodetypes="ccsscsc"
+       id="path304"
+       d="M 9.6202444,16.463921 L 42.411343,16.528735 L 40.837297,36.530714 C 40.752975,37.602225 40.386619,37.958929 38.964641,37.958929 C 37.093139,37.958929 10.286673,37.926522 7.569899,37.926522 C 7.8034973,37.605711 7.9036547,36.937899 7.9049953,36.92191 L 9.6202444,16.463921 z "
+       style="opacity:0.46590909;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient322);stroke-width:0.99999970px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path323"
+       d="M 9.6202481,16.223182 L 8.4536014,31.866453 C 8.4536014,31.866453 16.749756,27.718375 27.119949,27.718375 C 37.490142,27.718375 42.675239,16.223182 42.675239,16.223182 L 9.6202481,16.223182 z "
+       style="fill:#ffffff;fill-opacity:0.089285679;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+    <g
+       id="layer4"
+       inkscape:label="new"
+       style="display:inline"
+       transform="translate(-1.976491,1.981795)">
+      <path
+         sodipodi:type="arc"
+         style="color:#000000;fill:url(#radialGradient1758);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+         id="path12511"
+         sodipodi:cx="55"
+         sodipodi:cy="125"
+         sodipodi:rx="14.375"
+         sodipodi:ry="14.375"
+         d="M 69.375 125 A 14.375 14.375 0 1 1  40.625,125 A 14.375 14.375 0 1 1  69.375 125 z"
+         transform="matrix(0.783292,0,0,0.783292,-6.340883,-86.65168)"
+         inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
+         inkscape:export-xdpi="33.852203"
+         inkscape:export-ydpi="33.852203" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="pattern" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/folder.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,424 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg97"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/places"
+   sodipodi:docname="folder.svg"
+   inkscape:export-filename="/home/jimmac/Desktop/horlander-style3.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective68" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6719"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6717"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient6715"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient9806">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop9808" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop9810" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         style="stop-color:#6194cb;stop-opacity:1;"
+         offset="0"
+         id="stop9768" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="1"
+         id="stop9770" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         offset="0"
+         style="stop-color:#424242;stop-opacity:1;" />
+      <stop
+         id="stop3100"
+         offset="1.0000000"
+         style="stop-color:#777777;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319"
+       inkscape:collect="always">
+      <stop
+         id="stop320"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop321"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         style="stop-color:#202020;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop1790" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop1791" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1789"
+       id="radialGradient238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.055022,-2.734504e-2,0.177703,1.190929,-3.572177,-7.125301)"
+       cx="20.706017"
+       cy="37.517986"
+       fx="20.706017"
+       fy="37.517986"
+       r="30.905205" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.87628865;"
+         offset="0.0000000"
+         id="stop3984" />
+      <stop
+         style="stop-color:#fffffe;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop3985" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3983"
+       id="linearGradient491"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0.000000,0.000000,0.708978,-0.879573,-1.318166)"
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="46.689312"
+       x2="12.853771"
+       y1="32.567184"
+       x1="13.035696"
+       gradientTransform="matrix(1.317489,0.000000,0.000000,0.816256,-0.879573,-1.318166)"
+       id="linearGradient322"
+       xlink:href="#linearGradient319"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.1802502"
+       x2="15.514889"
+       y1="31.367750"
+       x1="18.112709"
+       id="linearGradient3104"
+       xlink:href="#linearGradient3096"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9766"
+       id="linearGradient9772"
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9806"
+       id="radialGradient9812"
+       cx="24.35099"
+       cy="41.591846"
+       fx="24.35099"
+       fy="41.591846"
+       r="19.136078"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.242494,1.565588e-16,31.50606)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     fill="#729fcf"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.10196078"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4"
+     inkscape:cx="54.359127"
+     inkscape:cy="-13.803699"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1026"
+     inkscape:window-height="818"
+     inkscape:window-x="169"
+     inkscape:window-y="30"
+     inkscape:showpageshadow="false"
+     stroke="#3465a4" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Folder Icon</dc:title>
+        <dc:date />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>folder</rdf:li>
+            <rdf:li>directory</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Folder"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       transform="matrix(2.262383e-2,0,0,2.086758e-2,43.38343,36.36962)"
+       id="g6707">
+      <rect
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect6709"
+         width="1339.6335"
+         height="478.35718"
+         x="-1559.2523"
+         y="-150.69685" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         id="path6711"
+         sodipodi:nodetypes="cccc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path6713"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    </g>
+    <path
+       d="M 4.5217805,38.687417 C 4.5435766,39.103721 4.9816854,39.520026 5.3979900,39.520026 L 36.725011,39.520026 C 37.141313,39.520026 37.535823,39.103721 37.514027,38.687417 L 36.577584,11.460682 C 36.555788,11.044379 36.117687,10.628066 35.701383,10.628066 L 22.430510,10.628066 C 21.945453,10.628066 21.196037,10.312477 21.028866,9.5214338 L 20.417475,6.6283628 C 20.262006,5.8926895 19.535261,5.5904766 19.118957,5.5904766 L 4.3400975,5.5904766 C 3.9237847,5.5904766 3.5292767,6.0067807 3.5510726,6.4230849 L 4.5217805,38.687417 z "
+       id="path216"
+       style="fill:url(#radialGradient238);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient3104);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+       sodipodi:nodetypes="ccccccssssccc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9788"
+       d="M 5.2265927,22.5625 L 35.492173,22.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9784"
+       d="M 5.0421736,18.5625 L 35.489104,18.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 4.9806965,12.5625 L 35.488057,12.5625"
+       id="path9778"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.3861577,32.5625 L 35.494881,32.5625"
+       id="path9798"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9800"
+       d="M 5.5091398,34.5625 L 35.496893,34.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.0421736,16.5625 L 35.489104,16.5625"
+       id="path9782"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9780"
+       d="M 5.0114345,14.5625 L 35.48858,14.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9776"
+       d="M 4.9220969,10.5625 L 20.202912,10.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 4.8737534,8.5624999 L 19.657487,8.5624999"
+       id="path9774"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.3246666,28.5625 L 35.493876,28.5625"
+       id="path9794"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9792"
+       d="M 5.2880638,26.5625 L 35.493184,26.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.2265927,24.5625 L 35.492173,24.5625"
+       id="path9790"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.1958537,20.5625 L 35.491649,20.5625"
+       id="path9786"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path9796"
+       d="M 5.3246666,30.5625 L 35.493876,30.5625"
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 5.5091398,36.5625 L 35.496893,36.5625"
+       id="path9802"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="color:#000000;fill:url(#linearGradient491);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.2138050;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible;opacity:0.45142857"
+       d="M 6.0683430,38.864023 C 6.0846856,39.176251 5.8874317,39.384402 5.5697582,39.280326 L 5.5697582,39.280326 C 5.2520766,39.176251 5.0330270,38.968099 5.0166756,38.655870 L 4.0689560,6.5913839 C 4.0526131,6.2791558 4.2341418,6.0906134 4.5463699,6.0906134 L 18.968420,6.0429196 C 19.280648,6.0429196 19.900363,6.3433923 20.101356,7.3651014 L 20.674845,10.180636 C 20.247791,9.7153790 20.255652,9.7010175 20.037287,9.0239299 L 19.631192,7.7647478 C 19.412142,7.0371009 18.932991,6.9328477 18.620763,6.9328477 L 5.7329889,6.9328477 C 5.4207613,6.9328477 5.2235075,7.1409999 5.2398583,7.4532364 L 6.1778636,38.968099 L 6.0683430,38.864023 z "
+       id="path219"
+       sodipodi:nodetypes="cccccccccscccccc" />
+    <g
+       style="stroke-miterlimit:4.0000000;stroke-width:0.99946535;stroke:none;fill-rule:nonzero;fill-opacity:0.75706214;fill:#ffffff"
+       id="g220"
+       transform="matrix(1.040764,0.000000,5.449252e-2,1.040764,-8.670199,2.670594)"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-ydpi="74.800003">
+      <path
+         style="fill-opacity:0.50847459;fill:#ffffff"
+         d="M 42.417183,8.5151772 C 42.422267,8.4180642 42.289022,8.2681890 42.182066,8.2681716 L 29.150665,8.2660527 C 29.150665,8.2660527 30.062379,8.8540072 31.352477,8.8622963 L 42.405974,8.9333167 C 42.417060,8.7215889 42.408695,8.6772845 42.417183,8.5151772 z "
+         id="path221"
+         sodipodi:nodetypes="cscscs" />
+    </g>
+    <path
+       style="color:#000000;fill:url(#linearGradient9772);fill-opacity:1.0;fill-rule:nonzero;stroke:#3465a4;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:block"
+       d="M 39.783532,39.510620 C 40.927426,39.466556 41.746608,38.414321 41.830567,37.189615 C 42.622354,25.640928 43.489927,15.957666 43.489927,15.957666 C 43.562082,15.710182 43.322016,15.462699 43.009787,15.462699 L 8.6386304,15.462699 C 8.6386304,15.462699 6.7883113,37.329591 6.7883113,37.329591 C 6.6737562,38.311657 6.3223038,39.134309 5.2384755,39.513304 L 39.783532,39.510620 z "
+       id="path233"
+       sodipodi:nodetypes="cscccscc"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-ydpi="74.800003" />
+    <path
+       sodipodi:nodetypes="ccsscsc"
+       id="path304"
+       d="M 9.6202444,16.463921 L 42.411343,16.528735 L 40.837297,36.530714 C 40.752975,37.602225 40.386619,37.958929 38.964641,37.958929 C 37.093139,37.958929 10.286673,37.926522 7.569899,37.926522 C 7.8034973,37.605711 7.9036547,36.937899 7.9049953,36.92191 L 9.6202444,16.463921 z "
+       style="opacity:0.46590909;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient322);stroke-width:0.99999970px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path323"
+       d="M 9.6202481,16.223182 L 8.4536014,31.866453 C 8.4536014,31.866453 16.749756,27.718375 27.119949,27.718375 C 37.490142,27.718375 42.675239,16.223182 42.675239,16.223182 L 9.6202481,16.223182 z "
+       style="fill:#ffffff;fill-opacity:0.089285679;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="pattern" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/go-down.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-down.svg"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective24" />
+    <linearGradient
+       id="linearGradient1442">
+      <stop
+         id="stop1444"
+         offset="0"
+         style="stop-color:#73d216" />
+      <stop
+         id="stop1446"
+         offset="1.0000000"
+         style="stop-color:#4e9a06" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient1444"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,1.614716e-15,16.87306)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1442"
+       id="radialGradient1469"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.871885e-16,-0.843022,1.020168,2.265228e-16,0.606436,42.58614)"
+       cx="35.292667"
+       cy="20.494493"
+       fx="35.292667"
+       fy="20.494493"
+       r="16.956199" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8650"
+       id="radialGradient1471"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.749427e-16,-2.046729,-1.557610,-2.853404e-16,44.11559,66.93275)"
+       cx="15.987216"
+       cy="1.5350308"
+       fx="15.987216"
+       fy="1.5350308"
+       r="17.171415" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="23.239067"
+     inkscape:cx="15.972815"
+     inkscape:zoom="11.313708"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#4e9a06"
+     stroke="#4e9a06" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Go Down</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>lower</rdf:li>
+            <rdf:li>down</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&gt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(1.214466,0.000000,0.000000,0.595458,-6.163846,16.31275)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.20454545;color:#000000;fill:url(#radialGradient1444);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <g
+       id="g1464"
+       transform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.02856,43.99921)">
+      <path
+         style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1469);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 14.519136,38.500000 L 32.524165,38.496094 L 32.524165,25.504468 L 40.519531,25.496656 L 23.374809,5.4992135 L 6.5285585,25.497284 L 14.524440,25.501074 L 14.519136,38.500000 z "
+         id="path8643"
+         sodipodi:nodetypes="cccccccc" />
+      <path
+         style="opacity:0.50802141;color:#000000;fill:url(#radialGradient1471);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+         d="M 39.429889,24.993467 L 32.023498,25.005186 L 32.026179,37.998023 L 16.647623,37.98887 C 17.417545,19.64788 27.370272,26.995797 32.029282,16.341991 L 39.429889,24.993467 z "
+         id="path8645"
+         sodipodi:nodetypes="cccccc" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         id="path8658"
+         d="M 15.520704,37.496094 L 31.522109,37.500000 L 31.522109,24.507050 L 38.338920,24.491425 L 23.384644,7.0388396 L 8.6781173,24.495782 L 15.518018,24.501029 L 15.520704,37.496094 z "
+         style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    </g>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/go-first.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-first.svg"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective24" />
+    <linearGradient
+       id="linearGradient2301">
+      <stop
+         id="stop2303"
+         offset="0"
+         style="stop-color:#73d216" />
+      <stop
+         id="stop2305"
+         offset="1.0000000"
+         style="stop-color:#4e9a06" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2301"
+       id="radialGradient1441"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.150574,1.757515e-16,3.460315e-16,1.223465,54.74191,-2.461415)"
+       cx="22.752287"
+       cy="29.900566"
+       fx="22.752287"
+       fy="29.900566"
+       r="16.956199" />
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,4.441327e-15,16.87306)"
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8650"
+       id="radialGradient6058"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.046729,-3.749427e-16,2.853404e-16,1.557610,-19.71021,3.166594)"
+       cx="17.474981"
+       cy="1.4732735"
+       fx="17.474981"
+       fy="1.4732735"
+       r="17.171415" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="25.355927"
+     inkscape:cx="12.917407"
+     inkscape:zoom="11.313708"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#4e9a06"
+     stroke="#4e9a06" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Go Previous</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>previous</rdf:li>
+            <rdf:li>left</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&lt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(-1.271186,0.000000,0.000000,1.271186,56.54869,-13.15725)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.29946522;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1441);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 2.5000002,6.4999998 L 8.4962092,6.4999998 L 8.4962092,21.625000 L 26.500000,6.5312498 L 26.562500,14.500000 L 39.500000,14.500000 L 39.500000,32.531250 L 26.562500,32.531250 L 26.562500,40.500000 L 8.4962092,25.125000 L 8.4962092,40.498104 L 2.5000002,40.498104 L 2.5000002,6.4999998 z "
+       id="path18242"
+       sodipodi:nodetypes="ccccccccccccc" />
+    <rect
+       style="opacity:0.48099998;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+       id="rect2163"
+       width="32.011883"
+       height="4.0094671"
+       x="7.4881172"
+       y="3.4905324"
+       transform="matrix(0.000000,1.000000,1.000000,0.000000,0.000000,0.000000)" />
+    <path
+       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 38.519933,15.448055 L 38.519933,31.504148 L 25.526984,31.504148 L 25.526984,38.156896 L 8.5312502,23.936088 L 8.5319662,22.764585 L 25.570404,8.5000002 L 25.548307,15.507869 L 38.519933,15.448055 z "
+       id="path8658"
+       sodipodi:nodetypes="ccccccccc" />
+    <path
+       sodipodi:nodetypes="ccccccccc"
+       id="path8645"
+       d="M 26.066367,7.5151738 L 26.035117,15.040398 L 38.946037,14.946648 L 39.008537,23.924861 C 22.258537,17.674861 18.250000,29.344573 3.0000000,23.094573 L 3.0165920,6.9965978 L 7.8456840,6.9611228 L 7.8622750,22.613148 L 26.066367,7.5151738 z "
+       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient6058);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/go-home.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,445 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   overflow="visible"
+   enable-background="new 0 0 128 129.396"
+   xml:space="preserve"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="go-home.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   version="1.0"
+   inkscape:export-filename="/home/tigert/My Downloads/go-home.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
+   id="metadata367"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><cc:license
+         rdf:resource="http://creativecommons.org/licenses/publicdomain/" /><dc:title>Go Home</dc:title><dc:creator><cc:Agent><dc:title>Jakub Steiner</dc:title></cc:Agent></dc:creator><dc:source>http://jimmac.musichall.cz</dc:source><dc:subject><rdf:Bag><rdf:li>home</rdf:li><rdf:li>return</rdf:li><rdf:li>go</rdf:li><rdf:li>default</rdf:li><rdf:li>user</rdf:li><rdf:li>directory</rdf:li></rdf:Bag></dc:subject><dc:contributor><cc:Agent><dc:title>Tuomas Kuosmanen</dc:title></cc:Agent></dc:contributor></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><defs
+   id="defs365"><inkscape:perspective
+     sodipodi:type="inkscape:persp3d"
+     inkscape:vp_x="0 : 24 : 1"
+     inkscape:vp_y="0 : 1000 : 0"
+     inkscape:vp_z="48 : 24 : 1"
+     inkscape:persp3d-origin="24 : 16 : 1"
+     id="perspective92" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient5060"
+     id="radialGradient5031"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+     cx="605.71429"
+     cy="486.64789"
+     fx="605.71429"
+     fy="486.64789"
+     r="117.14286" /><linearGradient
+     inkscape:collect="always"
+     id="linearGradient5060"><stop
+       style="stop-color:black;stop-opacity:1;"
+       offset="0"
+       id="stop5062" /><stop
+       style="stop-color:black;stop-opacity:0;"
+       offset="1"
+       id="stop5064" /></linearGradient><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient5060"
+     id="radialGradient5029"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+     cx="605.71429"
+     cy="486.64789"
+     fx="605.71429"
+     fy="486.64789"
+     r="117.14286" /><linearGradient
+     id="linearGradient5048"><stop
+       style="stop-color:black;stop-opacity:0;"
+       offset="0"
+       id="stop5050" /><stop
+       id="stop5056"
+       offset="0.5"
+       style="stop-color:black;stop-opacity:1;" /><stop
+       style="stop-color:black;stop-opacity:0;"
+       offset="1"
+       id="stop5052" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient5048"
+     id="linearGradient5027"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+     x1="302.85715"
+     y1="366.64789"
+     x2="302.85715"
+     y2="609.50507" /><linearGradient
+     id="linearGradient2406"><stop
+       style="stop-color:#7c7e79;stop-opacity:1;"
+       offset="0"
+       id="stop2408" /><stop
+       id="stop2414"
+       offset="0.1724138"
+       style="stop-color:#848681;stop-opacity:1;" /><stop
+       style="stop-color:#898c86;stop-opacity:1;"
+       offset="1"
+       id="stop2410" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     id="linearGradient2390"><stop
+       style="stop-color:#919191;stop-opacity:1;"
+       offset="0"
+       id="stop2392" /><stop
+       style="stop-color:#919191;stop-opacity:0;"
+       offset="1"
+       id="stop2394" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     id="linearGradient2378"><stop
+       style="stop-color:#575757;stop-opacity:1;"
+       offset="0"
+       id="stop2380" /><stop
+       style="stop-color:#575757;stop-opacity:0;"
+       offset="1"
+       id="stop2382" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     id="linearGradient2368"><stop
+       style="stop-color:#ffffff;stop-opacity:1;"
+       offset="0"
+       id="stop2370" /><stop
+       style="stop-color:#ffffff;stop-opacity:0;"
+       offset="1"
+       id="stop2372" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     id="linearGradient2349"><stop
+       style="stop-color:#000000;stop-opacity:1;"
+       offset="0"
+       id="stop2351" /><stop
+       style="stop-color:#000000;stop-opacity:0;"
+       offset="1"
+       id="stop2353" /></linearGradient><linearGradient
+     id="linearGradient2341"><stop
+       id="stop2343"
+       offset="0"
+       style="stop-color:#000000;stop-opacity:1;" /><stop
+       id="stop2345"
+       offset="1"
+       style="stop-color:#000000;stop-opacity:0;" /></linearGradient><linearGradient
+     id="linearGradient2329"><stop
+       style="stop-color:#000000;stop-opacity:0.18556701;"
+       offset="0"
+       id="stop2331" /><stop
+       style="stop-color:#ffffff;stop-opacity:1;"
+       offset="1"
+       id="stop2333" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     id="linearGradient2319"><stop
+       style="stop-color:#000000;stop-opacity:1;"
+       offset="0"
+       id="stop2321" /><stop
+       style="stop-color:#000000;stop-opacity:0;"
+       offset="1"
+       id="stop2323" /></linearGradient><linearGradient
+     id="linearGradient2307"><stop
+       style="stop-color:#edd400;stop-opacity:1;"
+       offset="0"
+       id="stop2309" /><stop
+       style="stop-color:#998800;stop-opacity:1;"
+       offset="1"
+       id="stop2311" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     id="linearGradient2299"><stop
+       style="stop-color:#ffffff;stop-opacity:1;"
+       offset="0"
+       id="stop2301" /><stop
+       style="stop-color:#ffffff;stop-opacity:0;"
+       offset="1"
+       id="stop2303" /></linearGradient><linearGradient
+     id="XMLID_2_"
+     gradientUnits="userSpaceOnUse"
+     x1="80.223602"
+     y1="117.5205"
+     x2="48.046001"
+     y2="59.7995"
+     gradientTransform="matrix(0.314683,0.000000,0.000000,0.314683,4.128264,3.742874)">
+				<stop
+   offset="0"
+   style="stop-color:#CCCCCC"
+   id="stop17" />
+				<stop
+   offset="0.9831"
+   style="stop-color:#FFFFFF"
+   id="stop19" />
+				<midPointStop
+   offset="0"
+   style="stop-color:#CCCCCC"
+   id="midPointStop48" />
+				<midPointStop
+   offset="0.5"
+   style="stop-color:#CCCCCC"
+   id="midPointStop50" />
+				<midPointStop
+   offset="0.9831"
+   style="stop-color:#FFFFFF"
+   id="midPointStop52" />
+			</linearGradient><linearGradient
+     inkscape:collect="always"
+     xlink:href="#XMLID_2_"
+     id="linearGradient1514"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(0.336922,0.000000,0.000000,0.166888,17.98288,15.46151)"
+     x1="52.006104"
+     y1="166.1331"
+     x2="14.049017"
+     y2="-42.218513" /><linearGradient
+     id="XMLID_39_"
+     gradientUnits="userSpaceOnUse"
+     x1="64.387703"
+     y1="65.124001"
+     x2="64.387703"
+     y2="35.569"
+     gradientTransform="matrix(0.354101,0.000000,0.000000,0.354101,1.638679,-8.364921e-2)">
+						<stop
+   offset="0"
+   style="stop-color:#FFFFFF"
+   id="stop336" />
+						<stop
+   offset="0.8539"
+   style="stop-color:#FF6200"
+   id="stop338" />
+						<stop
+   offset="1"
+   style="stop-color:#F25D00"
+   id="stop340" />
+						<midPointStop
+   offset="0"
+   style="stop-color:#FFFFFF"
+   id="midPointStop335" />
+						<midPointStop
+   offset="0.5"
+   style="stop-color:#FFFFFF"
+   id="midPointStop337" />
+						<midPointStop
+   offset="0.8539"
+   style="stop-color:#FF6200"
+   id="midPointStop339" />
+						<midPointStop
+   offset="0.5"
+   style="stop-color:#FF6200"
+   id="midPointStop341" />
+						<midPointStop
+   offset="1"
+   style="stop-color:#F25D00"
+   id="midPointStop343" />
+					</linearGradient><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2299"
+     id="radialGradient2305"
+     cx="7.5326638"
+     cy="24.202574"
+     fx="7.5326638"
+     fy="24.202574"
+     r="8.2452128"
+     gradientTransform="matrix(4.100086,-1.627292e-17,2.125447e-14,4.201322,-25.41506,-78.53967)"
+     gradientUnits="userSpaceOnUse" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2307"
+     id="radialGradient2313"
+     cx="19.985598"
+     cy="36.77816"
+     fx="19.985598"
+     fy="36.77816"
+     r="1.0821035"
+     gradientTransform="matrix(1.125263,0.000000,0.000000,0.982744,-3.428678,0.565787)"
+     gradientUnits="userSpaceOnUse" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2319"
+     id="radialGradient2325"
+     cx="20.443665"
+     cy="37.425829"
+     fx="20.443665"
+     fy="37.425829"
+     r="1.0821035"
+     gradientTransform="matrix(1.125263,0.000000,0.000000,0.982744,-3.428678,0.731106)"
+     gradientUnits="userSpaceOnUse" /><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2329"
+     id="linearGradient2335"
+     x1="17.602522"
+     y1="26.057423"
+     x2="17.682528"
+     y2="32.654099"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(0.898789,0,0,1.071914,0.478025,-2.080838)" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2341"
+     id="radialGradient2339"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(4.100086,1.627292e-17,2.125447e-14,-4.201322,-5.198109,105.3535)"
+     cx="11.68129"
+     cy="19.554111"
+     fx="11.68129"
+     fy="19.554111"
+     r="8.2452126" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2349"
+     id="radialGradient2355"
+     cx="24.023088"
+     cy="40.56913"
+     fx="24.023088"
+     fy="40.56913"
+     r="16.28684"
+     gradientTransform="matrix(1.000000,0.000000,0.000000,0.431250,1.157278e-15,23.07369)"
+     gradientUnits="userSpaceOnUse" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2368"
+     id="radialGradient2374"
+     cx="29.913452"
+     cy="30.442923"
+     fx="29.913452"
+     fy="30.442923"
+     r="4.0018832"
+     gradientTransform="matrix(3.751495,-2.191984e-22,1.723265e-22,3.147818,-82.00907,-65.70704)"
+     gradientUnits="userSpaceOnUse" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2378"
+     id="radialGradient2384"
+     cx="24.195112"
+     cy="10.577631"
+     fx="24.195112"
+     fy="10.577631"
+     r="15.242914"
+     gradientTransform="matrix(1.125263,-3.585417e-8,4.269819e-8,1.340059,-3.006704,1.355395)"
+     gradientUnits="userSpaceOnUse" /><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2390"
+     id="linearGradient2396"
+     x1="30.603519"
+     y1="37.337803"
+     x2="30.603519"
+     y2="36.112415"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(1.263867,0,0,0.859794,-6.499556,8.390924)" /><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient2406"
+     id="linearGradient2412"
+     x1="17.850183"
+     y1="28.939463"
+     x2="19.040216"
+     y2="41.03223"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(0.888785,0,0,1.08932,2.41099,-1.524336)" /></defs><sodipodi:namedview
+   inkscape:cy="-2.3755359"
+   inkscape:cx="25.234802"
+   inkscape:zoom="1"
+   inkscape:window-height="691"
+   inkscape:window-width="872"
+   inkscape:pageshadow="2"
+   inkscape:pageopacity="0.0"
+   borderopacity="0.21568627"
+   bordercolor="#666666"
+   pagecolor="#ffffff"
+   id="base"
+   inkscape:showpageshadow="false"
+   inkscape:window-x="466"
+   inkscape:window-y="157"
+   inkscape:current-layer="svg2"
+   fill="#555753"
+   showgrid="false"
+   stroke="#a40000"
+   showguides="true"
+   inkscape:guide-bbox="true" />
+	<g
+   style="display:inline"
+   id="g5022"
+   transform="matrix(2.158196e-2,0,0,1.859457e-2,43.12251,41.63767)"><rect
+     y="-150.69685"
+     x="-1559.2523"
+     height="478.35718"
+     width="1339.6335"
+     id="rect4173"
+     style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+     sodipodi:nodetypes="cccc"
+     id="path5058"
+     d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+     style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+     style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+     d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+     id="path5018"
+     sodipodi:nodetypes="cccc" /></g><path
+   style="color:#000000;fill:url(#linearGradient1514);fill-opacity:1;fill-rule:nonzero;stroke:#757575;stroke-width:1.0000006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+   d="M 21.619576,8.1833733 L 27.577035,8.1833733 C 28.416767,8.1833733 41.46351,23.618701 41.46351,24.524032 L 41.019989,43.020777 C 41.019989,43.92611 40.343959,44.654954 39.504227,44.654954 L 8.0469496,44.654954 C 7.2072167,44.654954 6.5311871,43.92611 6.5311871,43.020777 L 6.5876651,24.524032 C 6.5876651,23.618701 20.779844,8.1833733 21.619576,8.1833733 z "
+   id="rect1512"
+   sodipodi:nodetypes="ccccccccc" /><path
+   style="fill:none"
+   id="path5"
+   d="M 46.963575,45.735573 L 1.6386762,45.735573 L 1.6386762,0.41067554 L 46.963575,0.41067554 L 46.963575,45.735573 z " /><path
+   style="fill:url(#linearGradient2335);fill-opacity:1;fill-rule:evenodd"
+   id="path2327"
+   d="M 23,29 L 22.954256,44.090942 L 11.111465,44.090942 L 11,29 L 23,29 z "
+   clip-rule="evenodd"
+   sodipodi:nodetypes="ccccc" /><path
+   sodipodi:nodetypes="ccccccccc"
+   id="path2357"
+   d="M 21.780459,9.405584 L 27.339556,9.405584 C 28.123138,9.405584 40.340425,23.805172 40.340425,24.649756 L 39.993267,42.862067 C 39.993267,43.321326 39.84953,43.515532 39.480892,43.515532 L 8.0936894,43.529812 C 7.7250517,43.529812 7.5097258,43.449894 7.5097258,43.076262 L 7.7250676,24.649756 C 7.7250676,23.805172 20.99688,9.405584 21.780459,9.405584 z "
+   style="opacity:0.3125;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+   clip-rule="evenodd"
+   d="M 7.2075295,27.943053 L 7.1532728,30.538247 L 25.521437,17.358993 L 40.807832,28.513421 L 40.879142,28.201707 L 24.508686,12.297576 L 7.2075295,27.943053 z "
+   id="path23"
+   style="opacity:0.2;fill:url(#radialGradient2384);fill-opacity:1;fill-rule:evenodd"
+   sodipodi:nodetypes="ccccccc" /><path
+   clip-rule="evenodd"
+   d="M 22,30 L 22,44.090942 L 12.188971,44.090942 L 12,30 L 22,30 z "
+   id="path188"
+   style="fill:url(#linearGradient2412);fill-opacity:1;fill-rule:evenodd"
+   sodipodi:nodetypes="ccccc" /><path
+   style="opacity:0.40909089;fill:url(#radialGradient2325);fill-opacity:1;fill-rule:evenodd"
+   id="path2315"
+   d="M 19.576856,36.44767 C 20.249646,36.44767 20.793472,36.922275 20.793472,37.506177 C 20.793472,38.095988 20.249646,38.574532 19.576856,38.574532 C 18.904584,38.574532 18.35817,38.095988 18.35817,37.506177 C 18.358685,36.922275 18.904584,36.44767 19.576856,36.44767 z "
+   clip-rule="evenodd" /><path
+   clip-rule="evenodd"
+   d="M 19.462314,35.932229 C 20.135103,35.932229 20.678929,36.406834 20.678929,36.990736 C 20.678929,37.580545 20.135103,38.059089 19.462314,38.059089 C 18.790041,38.059089 18.243627,37.580545 18.243627,36.990736 C 18.244142,36.406834 18.790041,35.932229 19.462314,35.932229 z "
+   id="path217"
+   style="fill:url(#radialGradient2313);fill-opacity:1;fill-rule:evenodd" /><path
+   d="M 24.447748,11.559337 L 43.374808,28.729205 L 43.869487,29.121196 L 44.273163,28.949811 L 43.900293,28.188138 L 43.622679,27.964702 L 24.447748,12.392396 L 5.0582327,28.135731 L 4.8206309,28.279851 L 4.603921,28.986637 L 5.0373408,29.115885 L 5.4218948,28.807462 L 24.447748,11.559337 z "
+   id="path342"
+   style="fill:url(#XMLID_39_)"
+   sodipodi:nodetypes="ccccccccccccc" /><path
+   style="fill:#ef2929;stroke:#a40000"
+   id="path362"
+   d="M 24.330168,2.2713382 L 2.4484294,20.372675 L 1.8237005,27.538603 L 3.8236367,29.602926 C 3.8236367,29.602926 24.231018,12.445641 24.44773,12.274963 L 44.08027,29.818223 L 45.978694,27.494226 L 44.362903,20.382852 L 24.44773,2.1668788 L 24.330168,2.2713382 z "
+   sodipodi:nodetypes="cccccccccc" />
+<path
+   style="opacity:0.40909089;color:#000000;fill:url(#radialGradient2305);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+   d="M 2.8413446,20.613129 L 2.5497894,27.236494 L 24.369219,8.980075 L 24.298891,3.0867443 L 2.8413446,20.613129 z "
+   id="path1536"
+   sodipodi:nodetypes="ccccc" /><path
+   sodipodi:nodetypes="ccccc"
+   id="path2337"
+   d="M 24.483763,8.7509884 L 24.583223,2.9098867 L 43.912186,20.56184 L 45.403998,27.062652 L 24.483763,8.7509884 z "
+   style="opacity:0.13636367;color:#000000;fill:url(#radialGradient2339);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+   style="opacity:0.31818183;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999934;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+   d="M 27.102228,27.719824 L 36.142223,27.719824 C 36.912818,27.719824 37.53319,28.340194 37.53319,29.110791 L 37.525229,38.190012 C 37.525229,38.960608 36.928907,39.455981 36.158311,39.455981 L 27.102228,39.455981 C 26.331631,39.455981 25.711261,38.835608 25.711261,38.065012 L 25.711261,29.110791 C 25.711261,28.340194 26.331631,27.719824 27.102228,27.719824 z "
+   id="rect2361"
+   sodipodi:nodetypes="ccccccccc" /><rect
+   style="opacity:1;color:#000000;fill:#3465a4;fill-opacity:1;fill-rule:nonzero;stroke:#757575;stroke-width:0.9999994;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+   id="rect3263"
+   width="10.001333"
+   height="9.9624557"
+   x="26.507767"
+   y="28.514256"
+   rx="0.38128215"
+   ry="0.38128215" /><path
+   style="opacity:0.39772728;color:#000000;fill:url(#radialGradient2374);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+   d="M 27.107118,34.408261 C 30.725101,34.739438 32.634842,32.962557 35.97527,32.855521 L 36,29.00603 L 27.088388,29 L 27.107118,34.408261 z "
+   id="rect2363"
+   sodipodi:nodetypes="ccccc" /></svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/go-last.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-last.svg"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective24" />
+    <linearGradient
+       id="linearGradient1428">
+      <stop
+         id="stop1430"
+         offset="0"
+         style="stop-color:#73d216" />
+      <stop
+         id="stop1432"
+         offset="1.0000000"
+         style="stop-color:#4e9a06" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1428"
+       id="radialGradient1441"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.843022,1.871885e-16,-2.265228e-16,1.020168,4.413860,0.606440)"
+       cx="22.588188"
+       cy="34.462799"
+       fx="22.588188"
+       fy="34.462799"
+       r="16.956199" />
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.046729,-3.749427e-16,2.853404e-16,1.557610,-19.66321,2.389970)"
+       r="17.171415"
+       fy="3.0045178"
+       fx="18.968266"
+       cy="3.0045178"
+       cx="18.968266"
+       id="radialGradient8656"
+       xlink:href="#linearGradient8650"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,1.246400e-15,16.87306)"
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="21.636957"
+     inkscape:cx="37.866635"
+     inkscape:zoom="11.313708"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#4e9a06"
+     stroke="#4e9a06" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Go Next</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>next</rdf:li>
+            <rdf:li>right</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&gt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(1.271186,0.000000,0.000000,1.271186,-9.619376,-12.27857)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.29946522;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1441);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 45.500000,6.5000002 L 39.503791,6.5000002 L 39.503791,21.625000 L 21.500000,6.5312502 L 21.437500,14.500000 L 8.4999996,14.500000 L 8.4999996,32.468750 L 21.437500,32.468750 L 21.437500,40.500000 L 39.503791,25.125000 L 39.503791,40.498104 L 45.500000,40.498104 L 45.500000,6.5000002 z "
+       id="path18242"
+       sodipodi:nodetypes="ccccccccccccc" />
+    <path
+       sodipodi:nodetypes="ccccccccc"
+       id="path8645"
+       d="M 21.81717,7.1863873 L 21.81717,15.149112 L 9,15.149112 L 9,24.033575 C 23.75,28.283575 28.133537,18.203287 44.883537,23.203287 L 44.866945,7.105312 L 40.037853,7.069837 L 40.021262,22.721862 L 21.81717,7.1863873 z "
+       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient8656);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 9.5000002,15.448055 L 9.5000002,31.347898 L 22.492950,31.347898 L 22.492950,38.156896 L 39.519934,23.654838 L 39.487968,22.764585 L 22.449530,8.5000002 L 22.471627,15.320369 L 9.5000002,15.448055 z "
+       id="path8658"
+       sodipodi:nodetypes="ccccccccc" />
+    <rect
+       style="opacity:0.48099998;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+       id="rect2163"
+       width="32.011883"
+       height="4.0094671"
+       x="7.5000000"
+       y="-44.509468"
+       transform="matrix(0.000000,1.000000,-1.000000,0.000000,0.000000,0.000000)" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/go-next.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-next.svg"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48"
+   width="48"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective23" />
+    <linearGradient
+       id="linearGradient2591">
+      <stop
+         style="stop-color:#73d216"
+         offset="0"
+         id="stop2593" />
+      <stop
+         style="stop-color:#4e9a06"
+         offset="1.0000000"
+         id="stop2595" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.046729,-3.749427e-16,2.853404e-16,1.557610,-19.51799,3.452086)"
+       r="17.171415"
+       fy="2.8969381"
+       fx="19.701141"
+       cy="2.8969381"
+       cx="19.701141"
+       id="radialGradient8656"
+       xlink:href="#linearGradient8650"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,2.511012e-15,16.87306)"
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2591"
+       id="radialGradient2597"
+       cx="22.291636"
+       cy="32.797512"
+       fx="22.291636"
+       fy="32.797512"
+       r="16.9562"
+       gradientTransform="matrix(0.843022,1.871885e-16,-2.265228e-16,1.020168,4.499298,1.381992)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="27.398876"
+     inkscape:cx="20.508639"
+     inkscape:zoom="11.313708"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#4e9a06"
+     stroke="#4e9a06" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Go Next</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>next</rdf:li>
+            <rdf:li>right</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&gt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(1.271186,0.000000,0.000000,1.271186,-8.119376,-15.10179)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.29946522;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path8643"
+       d="M 8.5541875,15.517348 L 8.5541875,32.511768 L 21.538,32.511768 L 21.538,41.056806 L 41.497835,24.150365 L 21.41919,7.1251168 L 21.41919,15.522652 L 8.5541875,15.517348 z "
+       style="opacity:1;color:#000000;fill:url(#radialGradient2597);fill-opacity:1;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path8645"
+       d="M 21.962385,8.2485033 L 21.962385,16.054978 L 9.1452151,16.054978 L 9.1452151,25.095691 C 26.895215,27.095691 25.778752,17.640403 40.528752,24.140403 L 21.962385,8.2485033 z "
+       style="opacity:0.5080214;color:#000000;fill:url(#radialGradient8656);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.48128339;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 9.537702,16.561892 L 9.537702,31.546332 L 22.523069,31.546332 L 22.523069,38.941498 L 40.001083,24.145807 L 22.507108,9.3654066 L 22.507108,16.566789 L 9.537702,16.561892 z "
+       id="path8658"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/go-previous.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,854 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-previous.svg"
+   sodipodi:docbase="/home/andreas/projekt/tango/scalable"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective128" />
+    <linearGradient
+       id="linearGradient2591">
+      <stop
+         style="stop-color:#73d216"
+         offset="0"
+         id="stop2593" />
+      <stop
+         style="stop-color:#4e9a06"
+         offset="1.0000000"
+         id="stop2595" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10314">
+      <stop
+         style="stop-color:#7ea5d6;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop10316" />
+      <stop
+         style="stop-color:#467ec5;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop10318" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8938">
+      <stop
+         id="stop8940"
+         offset="0.0000000"
+         style="stop-color:#fdc674;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8942"
+         offset="1.0000000"
+         style="stop-color:#d88103;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7636"
+       inkscape:collect="always">
+      <stop
+         id="stop7638"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop7640"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7614">
+      <stop
+         id="stop7616"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.21590909"
+         id="stop7649" />
+      <stop
+         style="stop-color:#838383;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop7632" />
+      <stop
+         id="stop7618"
+         offset="1"
+         style="stop-color:#838383;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7608">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7610" />
+      <stop
+         id="stop7622"
+         offset="0.46022728"
+         style="stop-color:#e3e3e3;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#dadada;stop-opacity:0.67058824;"
+         offset="0.61970556"
+         id="stop7624" />
+      <stop
+         style="stop-color:#d1d1d1;stop-opacity:0.34285715;"
+         offset="1.0000000"
+         id="stop7612" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7602">
+      <stop
+         id="stop7604"
+         offset="0.0000000"
+         style="stop-color:#f6f6f6;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7606"
+         offset="1.0000000"
+         style="stop-color:#e0e0e0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7586">
+      <stop
+         id="stop7588"
+         offset="0.0000000"
+         style="stop-color:#525252;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7590"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient12836">
+      <stop
+         style="stop-color:#515152;stop-opacity:1;"
+         offset="0"
+         id="stop12838" />
+      <stop
+         style="stop-color:#515152;stop-opacity:0;"
+         offset="1"
+         id="stop12840" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient12828">
+      <stop
+         style="stop-color:#cccccd;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop12830" />
+      <stop
+         id="stop12862"
+         offset="0.0000000"
+         style="stop-color:#adadae;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#8f8f90;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop12832" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient12810">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop12812" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop12814" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11625">
+      <stop
+         style="stop-color:#fce94f;stop-opacity:1;"
+         offset="0"
+         id="stop11627" />
+      <stop
+         style="stop-color:#fce94f;stop-opacity:0;"
+         offset="1"
+         id="stop11629" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11615">
+      <stop
+         style="stop-color:#636363;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11617" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop11619" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11602">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11604" />
+      <stop
+         style="stop-color:#c5c5c5;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop11606" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11594">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop11596" />
+      <stop
+         style="stop-color:#d1d1d1;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop11598" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11520">
+      <stop
+         style="stop-color:#fbfbfb;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11522" />
+      <stop
+         style="stop-color:#dcdcdc;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop11524" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11508">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11510" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11512" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11494">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop11496" />
+      <stop
+         style="stop-color:#ef2929;stop-opacity:0;"
+         offset="1"
+         id="stop11498" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11415">
+      <stop
+         style="stop-color:#204a87;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop11417" />
+      <stop
+         id="stop11423"
+         offset="0.50000000"
+         style="stop-color:#204a87;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#204a87;stop-opacity:0;"
+         offset="1"
+         id="stop11419" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11399">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11401" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11403" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11415"
+       id="linearGradient11425"
+       gradientUnits="userSpaceOnUse"
+       x1="15.828360"
+       y1="3.7744560"
+       x2="43.615788"
+       y2="34.462429"
+       gradientTransform="translate(-60.28571,-0.285714)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11415"
+       id="linearGradient11427"
+       gradientUnits="userSpaceOnUse"
+       x1="9.6957054"
+       y1="9.3458843"
+       x2="35.679932"
+       y2="39.033859"
+       gradientTransform="translate(-60.57143,0.000000)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11415"
+       id="linearGradient11439"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-60.85714,0.428571)"
+       x1="13.267134"
+       y1="19.774456"
+       x2="26.758644"
+       y2="33.462429" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11399"
+       id="radialGradient11441"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.487395,0.000000,20.06483)"
+       cx="12.071428"
+       cy="39.142857"
+       fx="12.071428"
+       fy="39.142857"
+       r="8.5000000" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11494"
+       id="radialGradient11500"
+       cx="27.577173"
+       cy="15.048258"
+       fx="27.577173"
+       fy="15.048258"
+       r="3.8335034"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11494"
+       id="radialGradient11504"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)"
+       cx="27.577173"
+       cy="16.049133"
+       fx="27.577173"
+       fy="16.049133"
+       r="3.8335034" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11508"
+       id="radialGradient11514"
+       cx="30.203562"
+       cy="44.565483"
+       fx="30.203562"
+       fy="44.565483"
+       r="6.5659914"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,2.166583e-14,29.48178)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11520"
+       id="radialGradient11526"
+       cx="24.445690"
+       cy="35.878170"
+       fx="24.445690"
+       fy="35.878170"
+       r="20.530962"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.995058,-1.535926e-32,0.000000,1.855412,24.94925,-30.20430)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11508"
+       id="radialGradient11532"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,-5.348412e-14,29.48178)"
+       cx="30.203562"
+       cy="44.565483"
+       fx="30.203562"
+       fy="44.565483"
+       r="6.5659914" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11594"
+       id="linearGradient11600"
+       x1="20.092352"
+       y1="8.9471626"
+       x2="31.799011"
+       y2="38.947163"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.045319,0.000000,0.000000,0.957884,48.16627,1.415543)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11520"
+       id="linearGradient11608"
+       x1="24.445671"
+       y1="0.49847093"
+       x2="24.445671"
+       y2="39.447163"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.984324,0.000000,0.000000,0.957884,49.65734,1.415543)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11615"
+       id="radialGradient11621"
+       cx="25.000000"
+       cy="27.749998"
+       fx="25.000000"
+       fy="27.749998"
+       r="4.7500000"
+       gradientTransform="matrix(3.570338,3.171097e-15,-4.005596e-15,4.509900,-64.25843,-94.25499)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11631"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11635"
+       gradientUnits="userSpaceOnUse"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000"
+       gradientTransform="translate(2.000000,0.000000)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11639"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11643"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11647"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(8.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11655"
+       gradientUnits="userSpaceOnUse"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11657"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(2.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11659"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11661"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12810"
+       id="linearGradient12816"
+       x1="65.623963"
+       y1="21.459777"
+       x2="87.528968"
+       y2="21.459777"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12810"
+       id="linearGradient12818"
+       gradientUnits="userSpaceOnUse"
+       x1="84.998962"
+       y1="25.209778"
+       x2="62.591469"
+       y2="12.022278" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12828"
+       id="radialGradient12834"
+       cx="88.593018"
+       cy="33.398670"
+       fx="88.593018"
+       fy="33.398670"
+       r="7.0056136"
+       gradientTransform="matrix(0.969219,0.227988,-0.194668,0.827570,9.443870,-15.99848)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12836"
+       id="linearGradient12842"
+       x1="88.750000"
+       y1="31.656250"
+       x2="92.062500"
+       y2="36.656250"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12810"
+       id="linearGradient12878"
+       gradientUnits="userSpaceOnUse"
+       x1="65.623963"
+       y1="21.459777"
+       x2="87.528968"
+       y2="21.459777" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12836"
+       id="linearGradient12880"
+       gradientUnits="userSpaceOnUse"
+       x1="88.750000"
+       y1="31.656250"
+       x2="92.062500"
+       y2="36.656250" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12828"
+       id="radialGradient12882"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.969219,0.227988,-0.194668,0.827570,9.443870,-15.99848)"
+       cx="88.593018"
+       cy="33.398670"
+       fx="88.593018"
+       fy="33.398670"
+       r="7.0056136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12810"
+       id="linearGradient12884"
+       gradientUnits="userSpaceOnUse"
+       x1="84.998962"
+       y1="25.209778"
+       x2="62.591469"
+       y2="12.022278" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11615"
+       id="radialGradient12894"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.570338,3.171097e-15,-4.005596e-15,4.509900,-64.25843,-94.25499)"
+       cx="25.000000"
+       cy="27.749998"
+       fx="25.000000"
+       fy="27.749998"
+       r="4.7500000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12896"
+       gradientUnits="userSpaceOnUse"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000"
+       gradientTransform="translate(7.267442e-2,-0.181686)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12898"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(2.072674,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.072674,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12902"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12911"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(7.267442e-2,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12913"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(2.072674,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12915"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.072674,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       y2="21.067410"
+       x2="24.445690"
+       y1="33.447811"
+       x1="31.597168"
+       gradientTransform="matrix(0.476329,0.000000,0.000000,0.627721,62.07560,9.156933)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7584"
+       xlink:href="#linearGradient11594"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.407878,2.776254e-16,-5.900875e-16,1.861050,14.96976,-20.55775)"
+       r="6.0270013"
+       fy="29.099535"
+       fx="24.399090"
+       cy="29.099535"
+       cx="24.399090"
+       id="radialGradient7592"
+       xlink:href="#linearGradient7586"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="11.042997"
+       x2="22.585604"
+       y1="34.149513"
+       x1="22.585604"
+       gradientTransform="matrix(1.059222,0.000000,0.000000,0.808101,48.08657,4.001391)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7596"
+       xlink:href="#linearGradient7608"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientTransform="translate(49.32070,0.000000)"
+       gradientUnits="userSpaceOnUse"
+       y2="38.454056"
+       x2="28.284273"
+       y1="28.554562"
+       x1="25.279068"
+       id="linearGradient7642"
+       xlink:href="#linearGradient7636"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.777122,-8.126449e-2,6.891211e-2,2.223012,4.035118,-33.24798)"
+       r="4.4774761"
+       fy="29.609560"
+       fx="24.483574"
+       cy="29.609560"
+       cx="24.483574"
+       id="radialGradient7647"
+       xlink:href="#linearGradient7614"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.046729,-3.749427e-16,-2.853404e-16,1.557610,67.59375,3.275309)"
+       r="17.171415"
+       fy="5.7859797"
+       fx="25.075571"
+       cy="5.7859797"
+       cx="25.075571"
+       id="radialGradient8656"
+       xlink:href="#linearGradient8650"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,6.772795e-15,16.87306)"
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2591"
+       id="radialGradient2597"
+       cx="22.291636"
+       cy="32.797512"
+       fx="22.291636"
+       fy="32.797512"
+       r="16.956199"
+       gradientTransform="matrix(-0.843022,1.871885e-16,2.265228e-16,1.020168,43.57646,1.205215)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="25.461494"
+     inkscape:cx="15.433072"
+     inkscape:zoom="16"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#4e9a06"
+     stroke="#4e9a06" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Go Previous</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>previous</rdf:li>
+            <rdf:li>left</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&lt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(-1.271186,0.000000,0.000000,1.271186,56.19514,-15.27857)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.29946521;color:#000000;fill:url(#radialGradient8668);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path8643"
+       d="M 39.490316,15.496821 L 39.490316,32.491241 L 26.537753,32.491241 L 26.537753,40.973779 L 6.577917,23.973588 L 26.531563,6.7295901 L 26.531563,15.502125 L 39.490316,15.496821 z "
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient2597);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path8645"
+       d="M 25.988368,7.9779766 L 25.988368,16.034451 L 38.930538,16.034451 L 38.930538,24.918914 C 22.180538,18.668914 22.797001,30.213626 7.547,23.963626 L 25.988368,7.9779766 z "
+       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient8656);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 38.475551,16.541365 L 38.475551,31.463305 L 25.490184,31.463305 L 25.490184,38.764721 L 8.168419,23.96903 L 25.506145,9.0636299 L 25.506145,16.546262 L 38.475551,16.541365 z "
+       id="path8658"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/go-up.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-up.svg"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   inkscape:version="0.46"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective23" />
+    <linearGradient
+       id="linearGradient2304">
+      <stop
+         id="stop2306"
+         offset="0"
+         style="stop-color:#73d216" />
+      <stop
+         id="stop2308"
+         offset="1.0000000"
+         style="stop-color:#4e9a06" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8650"
+       id="radialGradient1438"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-3.749427e-16,-2.046729,1.557610,-2.853404e-16,2.767009,66.93275)"
+       cx="24.53788"
+       cy="0.40010813"
+       fx="24.53788"
+       fy="0.40010813"
+       r="17.171415" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2304"
+       id="radialGradient1441"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.871885e-16,-0.843022,1.020168,2.265228e-16,0.606436,42.58614)"
+       cx="11.319205"
+       cy="22.454971"
+       fx="11.319205"
+       fy="22.454971"
+       r="16.956199" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient1444"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,1.614716e-15,16.87306)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="30"
+     inkscape:window-x="0"
+     inkscape:window-height="818"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="25.620377"
+     inkscape:cx="9.6380363"
+     inkscape:zoom="13.059378"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#73d216"
+     stroke="#73d216" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Go Up</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>higher</rdf:li>
+            <rdf:li>up</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&gt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(1.214466,0.000000,0.000000,0.595458,-6.163846,16.31275)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.29946521;color:#000000;fill:url(#radialGradient1444);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path8643"
+       d="M 14.491792,38.500000 L 32.469477,38.500000 L 32.469477,25.547437 L 40.500000,25.547437 L 23.374809,5.4992135 L 6.5285585,25.489471 L 14.497096,25.555762 L 14.491792,38.500000 z "
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1441);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cccscc"
+       id="path8645"
+       d="M 7.5855237,25.03253 L 14.995821,25.03253 L 15.062422,31.594339 C 20.718034,20.593878 31.055517,22.749928 31.656768,15.966674 C 31.656768,15.966674 23.366938,6.4219692 23.366938,6.4219692 L 7.5855237,25.03253 z "
+       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient1438);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 15.602735,37.500000 L 31.502578,37.500000 L 31.502578,24.507050 L 38.311576,24.507050 L 23.361206,7.0700896 L 8.6546798,24.550470 L 15.475049,24.528373 L 15.602735,37.500000 z "
+       id="path8658"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/preferences-system.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="90.000000"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   width="48px"
+   height="48px"
+   id="svg11300"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/categories"
+   sodipodi:docname="preferences-system.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective60" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2250">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2252" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2254" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2265">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2267" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop2269" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2257">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2259" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3087">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop3089" />
+      <stop
+         id="stop3095"
+         offset="0"
+         style="stop-color:#9fbce1;stop-opacity:1;" />
+      <stop
+         style="stop-color:#6b95ca;stop-opacity:1;"
+         offset="0"
+         id="stop2242" />
+      <stop
+         id="stop2244"
+         offset="0.75"
+         style="stop-color:#3d6aa5;stop-opacity:1;" />
+      <stop
+         style="stop-color:#386eb4;stop-opacity:1;"
+         offset="1"
+         id="stop3091" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3077">
+      <stop
+         style="stop-color:#98a0a9;stop-opacity:1;"
+         offset="0"
+         id="stop3079" />
+      <stop
+         style="stop-color:#c3d0dd;stop-opacity:1;"
+         offset="1"
+         id="stop3081" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3061">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3063" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop3065" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3049">
+      <stop
+         style="stop-color:#b6b6b6;stop-opacity:1;"
+         offset="0"
+         id="stop3051" />
+      <stop
+         id="stop2262"
+         offset="0.5"
+         style="stop-color:#f2f2f2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1;"
+         offset="0.67612958"
+         id="stop2264" />
+      <stop
+         id="stop2268"
+         offset="0.84051722"
+         style="stop-color:#d8d8d8;stop-opacity:1;" />
+      <stop
+         id="stop2266"
+         offset="0.875"
+         style="stop-color:#f2f2f2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#dbdbdb;stop-opacity:1;"
+         offset="1"
+         id="stop3053" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3041">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3043" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3045" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3041"
+       id="radialGradient3047"
+       cx="24.8125"
+       cy="39.125"
+       fx="24.8125"
+       fy="39.125"
+       r="17.6875"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.374558,7.194333e-15,24.47041)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3049"
+       id="linearGradient3055"
+       x1="19.648342"
+       y1="42.253601"
+       x2="20.631224"
+       y2="6.7758031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.878270,0.000000,0.000000,0.878270,2.536988,4.967681)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3061"
+       id="linearGradient3067"
+       x1="50.152931"
+       y1="-3.6324477"
+       x2="25.291086"
+       y2="-4.3002653"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.878270,-1.375944e-15,1.375944e-15,0.878270,5.328299,1.650243)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3077"
+       id="linearGradient3083"
+       x1="38.227654"
+       y1="13.602527"
+       x2="37.53537"
+       y2="6.6285896"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.878270,0.000000,0.000000,0.878270,2.847503,5.588712)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3087"
+       id="linearGradient3093"
+       x1="9.7503242"
+       y1="32.28376"
+       x2="16.915297"
+       y2="39.443218"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.878270,0.000000,0.000000,0.878270,2.536988,4.967681)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2257"
+       id="linearGradient2263"
+       x1="12.004697"
+       y1="35.688461"
+       x2="10.650805"
+       y2="33.194965"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.007254,-2.636526e-2,2.636526e-2,1.007254,1.593411,7.919100e-2)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2265"
+       id="linearGradient2271"
+       x1="14.017542"
+       y1="36.942543"
+       x2="15.415793"
+       y2="38.268368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.878099,-1.732370e-2,1.732370e-2,0.878099,2.163687,4.067899)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2250"
+       id="linearGradient2256"
+       x1="31.177404"
+       y1="19.821514"
+       x2="40.859177"
+       y2="9.6568537"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3041"
+       id="radialGradient2260"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.374558,7.272829e-15,24.47041)"
+       cx="24.8125"
+       cy="39.125"
+       fx="24.8125"
+       fy="39.125"
+       r="17.6875" />
+  </defs>
+  <sodipodi:namedview
+     stroke="#204a87"
+     fill="#3465a4"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.25490196"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4"
+     inkscape:cx="19.425317"
+     inkscape:cy="26.37487"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="1034"
+     inkscape:window-height="818"
+     inkscape:window-x="400"
+     inkscape:window-y="30" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>Preferences System</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>preferences</rdf:li>
+            <rdf:li>settings</rdf:li>
+            <rdf:li>control panel</rdf:li>
+            <rdf:li>tweaks</rdf:li>
+            <rdf:li>system</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       transform="matrix(0.751118,0.000000,0.000000,0.578703,17.04087,19.36341)"
+       d="M 42.5 39.125 A 17.6875 6.625 0 1 1  7.125,39.125 A 17.6875 6.625 0 1 1  42.5 39.125 z"
+       sodipodi:ry="6.625"
+       sodipodi:rx="17.6875"
+       sodipodi:cy="39.125"
+       sodipodi:cx="24.8125"
+       id="path2258"
+       style="opacity:0.19886367;color:#000000;fill:url(#radialGradient2260);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.3125;color:#000000;fill:url(#radialGradient3047);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path3039"
+       sodipodi:cx="24.8125"
+       sodipodi:cy="39.125"
+       sodipodi:rx="17.6875"
+       sodipodi:ry="6.625"
+       d="M 42.5 39.125 A 17.6875 6.625 0 1 1  7.125,39.125 A 17.6875 6.625 0 1 1  42.5 39.125 z"
+       transform="matrix(0.836071,0.000000,0.000000,0.685436,-7.959607,15.71781)" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient3055);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 17.906713,21.215676 L 36.899302,40.6474 C 37.667788,41.52567 40.102812,42.204461 41.729787,40.6474 C 43.300913,39.143787 42.937408,37.024536 41.400436,35.487563 L 23.176333,15.946056 C 25.426333,9.696056 20.872444,4.446488 14.997444,5.571488 L 13.73493,6.7242174 L 17.687145,10.456865 L 17.906713,13.750381 L 14.955871,16.443984 L 11.429472,16.05584 L 7.8066086,12.652544 C 7.8066086,12.652544 6.5364873,13.907448 6.5364873,13.907448 C 5.9457238,19.548765 11.844213,24.590676 17.906713,21.215676 z "
+       id="path2140"
+       sodipodi:nodetypes="cczcccccccccsc" />
+    <path
+       sodipodi:nodetypes="cczccccccccccc"
+       id="path3057"
+       d="M 18.117385,19.9401 L 37.320267,39.967712 C 37.915174,40.647605 39.800194,41.173077 41.059681,39.967712 C 42.275934,38.803723 41.994534,37.163152 40.804721,35.973338 L 22.313189,16.352183 C 23.813189,9.852183 20.454401,6.3475455 15.454401,6.4725455 L 15.18427,6.7459223 L 18.787193,9.982189 L 18.917359,14.163983 L 15.303442,17.462466 L 11.061136,17.004257 L 7.8845536,14.012776 L 7.5319165,14.442835 C 7.2194165,20.411585 14.023635,23.1276 18.117385,19.9401 z "
+       style="opacity:0.42613639;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999917;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <rect
+       style="opacity:0.17045456;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3067);stroke-width:0.9999972;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect3059"
+       width="23.268276"
+       height="2.0554912"
+       x="28.185335"
+       y="-2.6184492"
+       rx="0.88388073"
+       ry="0.88388073"
+       transform="matrix(0.697938,0.716158,-0.716158,0.697938,0.000000,0.000000)" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient3083);fill-opacity:1;fill-rule:nonzero;stroke:#878f9d;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 22.498794,30.12538 C 23.332335,29.410917 35.782628,16.676871 35.782628,16.676871 L 38.856573,16.457303 L 43.687058,9.7604906 L 39.662731,6.1752987 L 33.405057,11.554705 L 33.405057,14.628651 L 20.670142,27.857593 C 20.066332,28.461403 21.730308,30.784082 22.498794,30.12538 z "
+       id="path2144"
+       sodipodi:nodetypes="ccccccccc" />
+    <path
+       sodipodi:nodetypes="ccccccccc"
+       id="path3085"
+       d="M 22.401987,29.085455 C 23.04876,28.531078 35.426388,15.855648 35.426388,15.855648 L 38.354971,15.607649 L 42.568887,9.945584 L 39.679156,7.3965946 L 34.202578,12.114067 L 34.357836,14.965022 L 21.681731,28.257345 C 21.213213,28.725863 21.805692,29.596565 22.401987,29.085455 z "
+       style="opacity:0.53977272;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2256);stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#linearGradient3093);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.9999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
+       d="M 8.4653111,43.611561 C 9.7818986,45.07679 13.438996,45.739726 15.060755,42.901647 C 15.767862,41.664211 17.154698,38.198845 23.341883,32.630379 C 24.381029,31.696208 25.481792,29.559241 24.54863,28.406512 L 22.133387,25.991269 C 21.145334,24.893432 18.398973,25.40552 17.272212,26.942145 C 13.913455,31.538339 8.4261393,35.197025 7.1887023,35.638967 C 4.8207828,36.484652 5.0872917,39.975116 6.6538792,41.635454 L 8.4653111,43.611561 z "
+       id="path2142"
+       sodipodi:nodetypes="ccccccscc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#a1a1a1;stroke-width:1.13860166;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2146"
+       sodipodi:cx="41.875"
+       sodipodi:cy="37.5"
+       sodipodi:rx="1.375"
+       sodipodi:ry="1.375"
+       d="M 43.25 37.5 A 1.375 1.375 0 1 1  40.5,37.5 A 1.375 1.375 0 1 1  43.25 37.5 z"
+       transform="matrix(0.878270,0.000000,0.000000,0.878270,2.427204,5.077464)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.60227272;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path3101"
+       sodipodi:cx="19.003494"
+       sodipodi:cy="28.20101"
+       sodipodi:rx="1.767767"
+       sodipodi:ry="1.767767"
+       d="M 20.771261 28.20101 A 1.767767 1.767767 0 1 1  17.235727,28.20101 A 1.767767 1.767767 0 1 1  20.771261 28.20101 z"
+       transform="matrix(0.570876,0.000000,0.000000,0.570876,9.154848,11.25111)" />
+    <path
+       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2263);stroke-width:2.29450917;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 18.678905,29.624807 C 18.678905,29.624807 11.509014,36.92442 8.1502573,38.161857"
+       id="path3103"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="csccccscc"
+       id="path2270"
+       d="M 8.8060013,42.48669 C 10.247267,44.232307 13.405535,44.647919 14.397161,42.116101 C 15.078468,40.376589 17.730783,36.450314 22.594745,32.072748 C 23.411654,31.338363 24.277003,29.658419 23.543411,28.752218 L 21.644704,26.853511 C 20.867961,25.990463 18.708951,26.393033 17.823164,27.601028 C 15.182728,31.214257 9.3398194,35.940582 7.9274145,36.406654 C 5.7406198,37.128264 6.1504221,39.627953 7.3819713,40.933203 L 8.8060013,42.48669 z "
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999946;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;opacity:0.19886364" />
+    <path
+       style="opacity:0.27840911;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2271);stroke-width:2.29450917;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 20.824602,31.261024 C 20.824602,31.261024 13.501839,37.878429 11.910849,42.121069"
+       id="path2247"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/user-home.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,529 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg97"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/places"
+   sodipodi:docname="user-home.svg"
+   inkscape:export-filename="/home/jimmac/Desktop/horlander-style3.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective80" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6719"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6717"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient6715"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10997">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop10999" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop11001" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient127"
+       inkscape:collect="always">
+      <stop
+         id="stop128"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop129"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient9806">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop9808" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop9810" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9766">
+      <stop
+         style="stop-color:#6194cb;stop-opacity:1;"
+         offset="0"
+         id="stop9768" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="1"
+         id="stop9770" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3096">
+      <stop
+         id="stop3098"
+         offset="0"
+         style="stop-color:#424242;stop-opacity:1;" />
+      <stop
+         id="stop3100"
+         offset="1.0000000"
+         style="stop-color:#777777;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient319"
+       inkscape:collect="always">
+      <stop
+         id="stop320"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop321"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1789">
+      <stop
+         style="stop-color:#202020;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop1790" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop1791" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1789"
+       id="radialGradient238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.056008,1.513357e-2,0.142618,1.251599,-2.276279,-10.28106)"
+       cx="20.706017"
+       cy="37.517986"
+       fx="20.706017"
+       fy="37.517986"
+       r="30.905205" />
+    <linearGradient
+       id="linearGradient3983">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.87628865;"
+         offset="0.0000000"
+         id="stop3984" />
+      <stop
+         style="stop-color:#fffffe;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop3985" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3983"
+       id="linearGradient491"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)"
+       x1="6.2297964"
+       y1="13.773066"
+       x2="9.8980894"
+       y2="66.834053" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="46.689312"
+       x2="12.853771"
+       y1="32.567184"
+       x1="13.035696"
+       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)"
+       id="linearGradient322"
+       xlink:href="#linearGradient319"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.1802502"
+       x2="15.514889"
+       y1="31.367750"
+       x1="18.112709"
+       id="linearGradient3104"
+       xlink:href="#linearGradient3096"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9766"
+       id="linearGradient9772"
+       x1="22.175976"
+       y1="36.987999"
+       x2="22.065331"
+       y2="32.050499"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9806"
+       id="radialGradient9812"
+       cx="24.35099"
+       cy="41.591846"
+       fx="24.35099"
+       fy="41.591846"
+       r="19.136078"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.242494,-8.239935e-18,31.50606)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10997"
+       id="linearGradient11003"
+       x1="19.489662"
+       y1="6.1438289"
+       x2="19.387241"
+       y2="8.1000004"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient127"
+       id="linearGradient2296"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.207872,0,0,0.827902,-0.952004,-0.117547)"
+       x1="21.354231"
+       y1="26.383648"
+       x2="20.796143"
+       y2="50.770691" />
+  </defs>
+  <sodipodi:namedview
+     fill="#729fcf"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.74901961"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.458333"
+     inkscape:cx="13.520215"
+     inkscape:cy="24"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1016"
+     inkscape:window-height="818"
+     inkscape:window-x="0"
+     inkscape:window-y="30"
+     inkscape:showpageshadow="false"
+     stroke="#3465a4"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <sodipodi:guide
+       orientation="horizontal"
+       position="51.881402"
+       id="guide3948" />
+    <inkscape:grid
+       id="GridFromPre046Settings"
+       type="xygrid"
+       originx="0px"
+       originy="0px"
+       spacingx="1px"
+       spacingy="1px"
+       color="#0000ff"
+       empcolor="#0000ff"
+       opacity="0.2"
+       empopacity="0.4"
+       empspacing="4" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Home Folder Icon</dc:title>
+        <dc:date />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>folder</rdf:li>
+            <rdf:li>directory</rdf:li>
+            <rdf:li>home</rdf:li>
+            <rdf:li>user</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Garrett LeSage</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Folder"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       transform="matrix(2.262383e-2,0,0,2.086758e-2,43.38343,36.36962)"
+       id="g6707">
+      <rect
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect6709"
+         width="1339.6335"
+         height="478.35718"
+         x="-1559.2523"
+         y="-150.69685" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         id="path6711"
+         sodipodi:nodetypes="cccc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path6713"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    </g>
+    <path
+       d="M 4.5217805,38.687417 C 4.5435766,39.103721 4.9816854,39.520026 5.39799,39.520026 L 36.725011,39.520026 C 37.141313,39.520026 37.535823,39.103721 37.514027,38.687417 L 36.577584,11.460682 C 36.555788,11.044379 36.117687,10.628066 35.701383,10.628066 L 22.43051,10.628066 C 21.945453,10.628066 21.196037,10.312477 21.028866,9.5214338 L 20.417475,6.6283628 C 20.262006,5.8926895 19.535261,5.5904766 19.118957,5.5904766 L 4.3400975,5.5904766 C 3.9237847,5.5904766 3.5292767,6.0067807 3.5510726,6.4230849 L 4.5217805,38.687417 z "
+       id="path216"
+       style="fill:url(#radialGradient238);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3104);stroke-width:0.99844444;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="ccccccssssccc"
+       transform="matrix(1.00104,0,0,1.002076,-5.390137e-2,-0.102085)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="opacity:0.45142858;color:#000000;fill:url(#linearGradient491);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21380496;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 6.068343,38.864023 C 6.0846856,39.176251 5.8874317,39.384402 5.5697582,39.280326 L 5.5697582,39.280326 C 5.2520766,39.176251 5.033027,38.968099 5.0166756,38.65587 L 4.068956,6.5913839 C 4.0526131,6.2791558 4.2341418,6.0906134 4.5463699,6.0906134 L 18.96842,6.0429196 C 19.280648,6.0429196 19.900363,6.3433923 20.101356,7.3651014 L 20.674845,10.180636 C 20.247791,9.715379 20.255652,9.7010175 20.037287,9.0239299 L 19.631192,7.7647478 C 19.412142,7.0371009 18.932991,6.9328477 18.620763,6.9328477 L 5.7329889,6.9328477 C 5.4207613,6.9328477 5.2235075,7.1409999 5.2398583,7.4532364 L 6.1778636,38.968099 L 6.068343,38.864023 z "
+       id="path219"
+       sodipodi:nodetypes="cccccccccscccccc"
+       transform="matrix(0.993563,0,0,0.992049,-4.175005e-2,5.133802e-3)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <g
+       id="g3950">
+      <path
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 5.0421736,18.5625 L 35.489104,18.5625"
+         id="path9784"
+         sodipodi:nodetypes="cc" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path9778"
+         d="M 4.9806965,12.5625 L 35.488057,12.5625"
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 5.2265927,22.5625 L 35.492173,22.5625"
+         id="path9788"
+         sodipodi:nodetypes="cc" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path9798"
+         d="M 5.3861577,32.5625 L 35.494881,32.5625"
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 5.5091398,34.5625 L 35.496893,34.5625"
+         id="path9800"
+         sodipodi:nodetypes="cc" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path9782"
+         d="M 5.0421736,16.5625 L 35.489104,16.5625"
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path9786"
+         d="M 5.1958537,20.5625 L 35.491649,20.5625"
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 5.0114345,14.5625 L 35.48858,14.5625"
+         id="path9780"
+         sodipodi:nodetypes="cc" />
+      <g
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         inkscape:export-ydpi="74.800003"
+         inkscape:export-xdpi="74.800003"
+         inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+         transform="matrix(1.053404,0,5.515434e-2,1.040068,-9.163336,2.458743)"
+         id="g220"
+         style="fill:#ffffff;fill-opacity:0.75706213;fill-rule:nonzero;stroke:none;stroke-width:0.99946535;stroke-miterlimit:4">
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           sodipodi:nodetypes="cscscs"
+           id="path221"
+           d="M 42.417183,8.5151772 C 42.422267,8.4180642 42.289022,8.268189 42.182066,8.2681716 L 29.150665,8.2660527 C 29.150665,8.2660527 30.062379,8.8540072 31.352477,8.8622963 L 42.405974,8.9333167 C 42.41706,8.7215889 42.408695,8.6772845 42.417183,8.5151772 z "
+           style="fill:#ffffff;fill-opacity:0.50847461" />
+      </g>
+      <path
+         sodipodi:nodetypes="cc"
+         id="path9790"
+         d="M 5.2265927,24.5625 L 35.492173,24.5625"
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 5.3246666,30.5625 L 35.493876,30.5625"
+         id="path9796"
+         sodipodi:nodetypes="cc" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path9794"
+         d="M 5.3246666,28.5625 L 35.493876,28.5625"
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path9802"
+         d="M 5.5091398,36.5625 L 35.496893,36.5625"
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 5.2880638,26.5625 L 35.493184,26.5625"
+         id="path9792"
+         sodipodi:nodetypes="cc" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path9774"
+         d="M 4.8737534,8.5624999 L 19.657487,8.5624999"
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 4.9220969,10.5625 L 20.202912,10.5625"
+         id="path9776"
+         sodipodi:nodetypes="cc" />
+    </g>
+    <path
+       style="color:#000000;fill:url(#linearGradient9772);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1.00452971;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+       d="M 39.783532,39.51062 C 40.927426,39.466556 41.746608,38.414321 41.830567,37.189615 C 42.622354,25.640928 43.489927,15.957666 43.489927,15.957666 C 43.562082,15.710182 43.322016,15.462699 43.009787,15.462699 L 8.6386304,15.462699 C 8.6386304,15.462699 6.7883113,37.329591 6.7883113,37.329591 C 6.6737562,38.311657 6.3223038,39.134309 5.2384755,39.513304 L 39.783532,39.51062 z "
+       id="path233"
+       sodipodi:nodetypes="cscccscc"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-ydpi="74.800003"
+       transform="matrix(0.993091,0,0,0.997896,0.297717,6.983205e-2)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       sodipodi:nodetypes="ccsscsc"
+       id="path304"
+       d="M 9.6202444,16.463921 L 42.411343,16.528735 L 40.837297,36.530714 C 40.752975,37.602225 40.386619,37.958929 38.964641,37.958929 C 37.093139,37.958929 10.286673,37.926522 7.569899,37.926522 C 7.8034973,37.605711 7.9036547,36.937899 7.9049953,36.92191 L 9.6202444,16.463921 z "
+       style="opacity:0.46590911;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient322);stroke-width:1.00452948px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+       transform="matrix(0.993091,0,0,0.997896,0.297717,6.983205e-2)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path323"
+       d="M 9.6202481,16.223182 L 8.4536014,31.866453 C 8.4536014,31.866453 16.749756,27.718375 27.119949,27.718375 C 37.490142,27.718375 42.675239,16.223182 42.675239,16.223182 L 9.6202481,16.223182 z "
+       style="fill:#ffffff;fill-opacity:0.0892857;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       transform="matrix(0.993091,0,0,0.997896,0.297717,6.983205e-2)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       d="M 16.569914,27.404847 L 15.862615,35 L 23.713868,35 L 24.285565,28.86095 L 28.558755,28.86095 L 27.987057,35 L 32.867565,35 L 33.574862,27.404847 L 36.245113,27.402613 L 25.834954,19.752712 L 14,27.402613 L 16.569914,27.404847 z "
+       style="fill:url(#linearGradient2296);fill-opacity:1;fill-rule:evenodd;stroke-width:3pt"
+       id="path892"
+       transform="matrix(0.988981,0,0,0.983782,1.154266,0.56763)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <g
+       inkscape:export-ydpi="74.800003"
+       inkscape:export-xdpi="74.800003"
+       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
+       style="opacity:0.41477272;fill:url(#linearGradient11003);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4"
+       transform="matrix(1.040764,0.000000,5.449252e-2,1.365642,-8.358528,0.921788)"
+       id="g217" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="pattern" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/view-refresh.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="90.000000"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   width="48px"
+   height="48px"
+   id="svg11300"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="view-refresh.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective58" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2690">
+      <stop
+         style="stop-color:#c4d7eb;stop-opacity:1;"
+         offset="0"
+         id="stop2692" />
+      <stop
+         style="stop-color:#c4d7eb;stop-opacity:0;"
+         offset="1"
+         id="stop2694" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2682">
+      <stop
+         style="stop-color:#3977c3;stop-opacity:1;"
+         offset="0"
+         id="stop2684" />
+      <stop
+         style="stop-color:#89aedc;stop-opacity:0;"
+         offset="1"
+         id="stop2686" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2402">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="0"
+         id="stop2404" />
+      <stop
+         style="stop-color:#528ac5;stop-opacity:1;"
+         offset="1"
+         id="stop2406" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2380">
+      <stop
+         style="stop-color:#b9cfe7;stop-opacity:1"
+         offset="0"
+         id="stop2382" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1"
+         id="stop2384" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2871">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2873" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1"
+         offset="1"
+         id="stop2875" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2847">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2849" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:0;"
+         offset="1"
+         id="stop2851" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2831">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2833" />
+      <stop
+         id="stop2855"
+         offset="0.33333334"
+         style="stop-color:#5b86be;stop-opacity:1;" />
+      <stop
+         style="stop-color:#83a8d8;stop-opacity:0;"
+         offset="1"
+         id="stop2835" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2797">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2799" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2801" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8662">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop8664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8666" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2831"
+       id="linearGradient1486"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0.465413,-0.277593)"
+       x1="13.478554"
+       y1="10.612206"
+       x2="15.419417"
+       y2="19.115122" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2847"
+       id="linearGradient1488"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,47.52791,45.84741)"
+       x1="37.128052"
+       y1="29.729605"
+       x2="37.065414"
+       y2="26.194071" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2797"
+       id="linearGradient1491"
+       gradientUnits="userSpaceOnUse"
+       x1="5.9649176"
+       y1="26.048164"
+       x2="52.854097"
+       y2="26.048164" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2797"
+       id="linearGradient1493"
+       gradientUnits="userSpaceOnUse"
+       x1="5.9649176"
+       y1="26.048164"
+       x2="52.854097"
+       y2="26.048164" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2871"
+       id="linearGradient1501"
+       gradientUnits="userSpaceOnUse"
+       x1="46.834816"
+       y1="45.264122"
+       x2="45.380436"
+       y2="50.939667" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient1503"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.536723,-9.680928e-14,16.87306)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2380"
+       id="linearGradient2386"
+       x1="62.513836"
+       y1="36.061237"
+       x2="15.984863"
+       y2="20.60858"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2402"
+       id="linearGradient2408"
+       x1="18.935766"
+       y1="23.667896"
+       x2="53.588622"
+       y2="26.649362"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2682"
+       id="linearGradient2688"
+       x1="36.713837"
+       y1="31.455952"
+       x2="37.124462"
+       y2="24.842253"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2690"
+       id="linearGradient2696"
+       x1="32.647972"
+       y1="30.748846"
+       x2="37.124462"
+       y2="24.842253"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     stroke="#3465a4"
+     fill="#729fcf"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.25490196"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.6568542"
+     inkscape:cx="2.4438651"
+     inkscape:cy="18.153347"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="891"
+     inkscape:window-height="818"
+     inkscape:window-x="0"
+     inkscape:window-y="30" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:title>View Refresh</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>reload</rdf:li>
+            <rdf:li>refresh</rdf:li>
+            <rdf:li>view</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       transform="matrix(-1.489736,0,0,-1.001252,61.20865,75.2819)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.38333333;color:#000000;fill:url(#radialGradient1503);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="color:#000000;fill:url(#linearGradient1486);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1488);stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 20.152913,10.409904 C 20.152913,10.409904 11.215413,9.784904 13.965413,20.284904 L 6.2779132,20.284904 C 6.2779132,20.284904 6.7779132,8.409904 20.152913,10.409904 z "
+       id="path2865"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="cccc" />
+    <g
+       id="g1878"
+       transform="matrix(-0.579051,-0.489228,-0.489228,0.579051,56.91585,13.37137)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       style="fill:url(#linearGradient2386);fill-opacity:1.0;stroke:#3465a4;stroke-opacity:1">
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path1880"
+         d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.113843,3.1515478 L 7.6245439,20.496754 L 22.714328,33.219189 C 22.714328,33.219189 22.462411,23.337969 22.462411,23.337969 C 41.292171,24.336946 55.444038,37.409698 44.306783,50.229694 z "
+         style="opacity:1;color:#000000;fill:url(#linearGradient2386);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient1501);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+    <path
+       sodipodi:nodetypes="cccc"
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       id="path2839"
+       d="M 28.375,33.4375 C 28.375,33.4375 37.3125,34.0625 34.5625,23.5625 L 42.338388,23.5625 C 42.338388,25.065102 41.75,35.4375 28.375,33.4375 z "
+       style="color:#000000;fill:url(#linearGradient2696);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient2688);stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <g
+       style="color:#000000;fill:url(#linearGradient2408);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient1501);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;opacity:1"
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       transform="matrix(0.579051,0.489228,0.489228,-0.579051,-7.921023,30.53599)"
+       id="g2779">
+      <path
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         style="opacity:1;color:#000000;fill:url(#linearGradient2408);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient1501);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+         d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.399432,3.0690297 L 7.793943,20.424005 L 22.462411,33.006349 C 22.462411,33.006349 22.462411,23.337969 22.462411,23.337969 C 41.292171,24.336946 55.444038,37.409698 44.306783,50.229694 z "
+         id="path2781"
+         sodipodi:nodetypes="ccccccc" />
+    </g>
+    <path
+       style="opacity:0.27222224;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 7.0625,38.1875 L 7.125,23.3125 L 20.0625,22.9375 L 15.673627,28.116317 L 19.540852,30.489516 C 16.540852,32.739516 14.991304,32.911644 13.991304,35.474144 L 11.174446,33.363872 L 7.0625,38.1875 z "
+       id="path2791"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="cccccccc" />
+    <g
+       id="g2793"
+       transform="matrix(0.508536,0.429651,0.429651,-0.508536,-3.973188,30.54119)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1">
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path2795"
+         d="M 51.090265,45.943705 C 60.210465,30.723955 46.631614,12.20113 19.485058,11.948579 L 19.513464,3.7032834 L 6.5341979,19.296639 L 19.367661,30.26876 C 19.367661,30.26876 19.423281,21.261882 19.423281,21.261882 C 36.951096,21.037973 54.618466,31.365254 51.090265,45.943705 z "
+         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1493);stroke-width:1.50208926;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+    <g
+       style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       transform="matrix(-0.508536,-0.429651,-0.429651,0.508536,53.049,13.36548)"
+       id="g2805">
+      <path
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1491);stroke-width:1.50208926;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+         d="M 51.389927,46.505946 C 60.510127,31.286196 47.050763,12.432359 19.628482,12.069755 L 19.342824,4.0507204 L 6.3413093,19.379475 L 19.809059,30.764589 C 19.809059,30.764589 19.627294,21.311346 19.627294,21.311346 C 37.872231,21.693318 54.411175,32.236592 51.389927,46.505946 z "
+         id="path2807"
+         sodipodi:nodetypes="ccccccc" />
+    </g>
+    <path
+       style="opacity:0.27222224;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 6.8125,16.5 C 10.405935,6.0587275 23.256282,10.355393 27,12 C 31.175307,12.211475 32.674736,9.164996 36,9 C 21.950264,-0.7899963 7.1875,2.5 6.8125,16.5 z "
+       id="path2811"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="cccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/view-zoom-in.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,436 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg6431"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="list-add.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs6433">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective70" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2091">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2093" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop2095" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7916">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop7918" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.34020618;"
+         offset="1.0000000"
+         id="stop7920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8662">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop8664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8666" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient1503"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2847">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2849" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:0;"
+         offset="1"
+         id="stop2851" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2847"
+       id="linearGradient1488"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
+       x1="37.128052"
+       y1="29.729605"
+       x2="37.065414"
+       y2="26.194071" />
+    <linearGradient
+       id="linearGradient2831">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2833" />
+      <stop
+         id="stop2855"
+         offset="0.33333334"
+         style="stop-color:#5b86be;stop-opacity:1;" />
+      <stop
+         style="stop-color:#83a8d8;stop-opacity:0;"
+         offset="1"
+         id="stop2835" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2831"
+       id="linearGradient1486"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-48.30498,-6.043298)"
+       x1="13.478554"
+       y1="10.612206"
+       x2="15.419417"
+       y2="19.115122" />
+    <linearGradient
+       id="linearGradient2380">
+      <stop
+         style="stop-color:#b9cfe7;stop-opacity:1"
+         offset="0"
+         id="stop2382" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1"
+         id="stop2384" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2682">
+      <stop
+         style="stop-color:#3977c3;stop-opacity:1;"
+         offset="0"
+         id="stop2684" />
+      <stop
+         style="stop-color:#89aedc;stop-opacity:0;"
+         offset="1"
+         id="stop2686" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2682"
+       id="linearGradient2688"
+       x1="36.713837"
+       y1="31.455952"
+       x2="37.124462"
+       y2="24.842253"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-48.77039,-5.765705)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2690">
+      <stop
+         style="stop-color:#c4d7eb;stop-opacity:1;"
+         offset="0"
+         id="stop2692" />
+      <stop
+         style="stop-color:#c4d7eb;stop-opacity:0;"
+         offset="1"
+         id="stop2694" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2690"
+       id="linearGradient2696"
+       x1="32.647972"
+       y1="30.748846"
+       x2="37.124462"
+       y2="24.842253"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-48.77039,-5.765705)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2871">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2873" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1"
+         offset="1"
+         id="stop2875" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2402">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="0"
+         id="stop2404" />
+      <stop
+         style="stop-color:#528ac5;stop-opacity:1;"
+         offset="1"
+         id="stop2406" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2797"
+       id="linearGradient1493"
+       gradientUnits="userSpaceOnUse"
+       x1="5.9649176"
+       y1="26.048164"
+       x2="52.854097"
+       y2="26.048164" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2797">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2799" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2801" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2797"
+       id="linearGradient1491"
+       gradientUnits="userSpaceOnUse"
+       x1="5.9649176"
+       y1="26.048164"
+       x2="52.854097"
+       y2="26.048164" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient7179">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop7181" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop7183" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2316">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2318" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.65979379;"
+         offset="1"
+         id="stop2320" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1322">
+      <stop
+         id="stop1324"
+         offset="0.0000000"
+         style="stop-color:#729fcf" />
+      <stop
+         id="stop1326"
+         offset="1.0000000"
+         style="stop-color:#5187d6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1322"
+       id="linearGradient4975"
+       x1="34.892849"
+       y1="36.422989"
+       x2="45.918697"
+       y2="48.547989"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-18.01785,-13.57119)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7179"
+       id="linearGradient7185"
+       x1="13.435029"
+       y1="13.604306"
+       x2="22.374878"
+       y2="23.554308"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7179"
+       id="linearGradient7189"
+       gradientUnits="userSpaceOnUse"
+       x1="13.435029"
+       y1="13.604306"
+       x2="22.374878"
+       y2="23.554308"
+       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2380"
+       id="linearGradient7180"
+       gradientUnits="userSpaceOnUse"
+       x1="62.513836"
+       y1="36.061237"
+       x2="15.984863"
+       y2="20.60858" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2871"
+       id="linearGradient7182"
+       gradientUnits="userSpaceOnUse"
+       x1="46.834816"
+       y1="45.264122"
+       x2="45.380436"
+       y2="50.939667" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2402"
+       id="linearGradient7184"
+       gradientUnits="userSpaceOnUse"
+       x1="18.935766"
+       y1="23.667896"
+       x2="53.588622"
+       y2="26.649362" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2871"
+       id="linearGradient7186"
+       gradientUnits="userSpaceOnUse"
+       x1="46.834816"
+       y1="45.264122"
+       x2="45.380436"
+       y2="50.939667" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7916"
+       id="linearGradient7922"
+       x1="16.874998"
+       y1="22.851799"
+       x2="27.900846"
+       y2="34.976799"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2091"
+       id="radialGradient2097"
+       cx="23.070683"
+       cy="35.127438"
+       fx="23.070683"
+       fy="35.127438"
+       r="10.319340"
+       gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.15686275"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="-123.56934"
+     inkscape:cy="0.031886897"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1280"
+     inkscape:window-height="818"
+     inkscape:window-x="0"
+     inkscape:window-y="30"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata6436">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Add</dc:title>
+        <dc:date>2006-01-04</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://tango-project.org</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>add</rdf:li>
+            <rdf:li>plus</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.10824742;fill:url(#radialGradient2097);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path1361"
+       sodipodi:cx="22.958872"
+       sodipodi:cy="34.94062"
+       sodipodi:rx="10.31934"
+       sodipodi:ry="2.320194"
+       d="M 33.278212 34.94062 A 10.31934 2.320194 0 1 1  12.639532,34.94062 A 10.31934 2.320194 0 1 1  33.278212 34.94062 z"
+       transform="matrix(1.550487,0,0,1.978714,-12.4813,-32.49103)" />
+    <path
+       style="font-size:59.901077px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#75a1d0;fill-opacity:1.0000000;stroke:#3465a4;stroke-width:1.0000004px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+       d="M 27.514356,37.542682 L 27.514356,28.515722 L 37.492820,28.475543 L 37.492820,21.480219 L 27.523285,21.480219 L 27.514356,11.520049 L 20.498082,11.531210 L 20.502546,21.462362 L 10.512920,21.536022 L 10.477206,28.504561 L 20.511475,28.475543 L 20.518171,37.515896 L 27.514356,37.542682 z "
+       id="text1314"
+       sodipodi:nodetypes="ccccccccccccc" />
+    <path
+       style="font-size:59.901077px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;opacity:0.40860215;fill:url(#linearGradient4975);fill-opacity:1.0000000;stroke:url(#linearGradient7922);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+       d="M 26.498702,36.533920 L 26.498702,27.499738 L 36.501304,27.499738 L 36.494607,22.475309 L 26.507630,22.475309 L 26.507630,12.480335 L 21.512796,12.498193 L 21.521725,22.475309 L 11.495536,22.493166 L 11.468750,27.466256 L 21.533143,27.475185 L 21.519750,36.502670 L 26.498702,36.533920 z "
+       id="path7076"
+       sodipodi:nodetypes="ccccccccccccc" />
+    <path
+       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.31182796"
+       d="M 11.000000,25.000000 C 11.000000,26.937500 36.984375,24.031250 36.984375,24.968750 L 36.984375,21.968750 L 27.000000,22.000000 L 27.000000,12.034772 L 21.000000,12.034772 L 21.000000,22.000000 L 11.000000,22.000000 L 11.000000,25.000000 z "
+       id="path7914"
+       sodipodi:nodetypes="ccccccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/view-zoom-original.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,371 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.1"
+   id="svg6431"
+   height="48px"
+   width="48px">
+  <defs
+     id="defs6433">
+    <linearGradient
+       id="linearGradient2091">
+      <stop
+         id="stop2093"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop2095"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7916">
+      <stop
+         id="stop7918"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop7920"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.34020618;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient1503"
+       xlink:href="#linearGradient8662" />
+    <linearGradient
+       id="linearGradient2847">
+      <stop
+         id="stop2849"
+         offset="0"
+         style="stop-color:#3465a4;stop-opacity:1;" />
+      <stop
+         id="stop2851"
+         offset="1"
+         style="stop-color:#3465a4;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       y2="26.194071"
+       x2="37.065414"
+       y1="29.729605"
+       x1="37.128052"
+       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1488"
+       xlink:href="#linearGradient2847" />
+    <linearGradient
+       id="linearGradient2831">
+      <stop
+         id="stop2833"
+         offset="0"
+         style="stop-color:#3465a4;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5b86be;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop2855" />
+      <stop
+         id="stop2835"
+         offset="1"
+         style="stop-color:#83a8d8;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       y2="19.115122"
+       x2="15.419417"
+       y1="10.612206"
+       x1="13.478554"
+       gradientTransform="translate(-48.30498,-6.043298)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1486"
+       xlink:href="#linearGradient2831" />
+    <linearGradient
+       id="linearGradient2380">
+      <stop
+         id="stop2382"
+         offset="0"
+         style="stop-color:#b9cfe7;stop-opacity:1" />
+      <stop
+         id="stop2384"
+         offset="1"
+         style="stop-color:#729fcf;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2682">
+      <stop
+         id="stop2684"
+         offset="0"
+         style="stop-color:#3977c3;stop-opacity:1;" />
+      <stop
+         id="stop2686"
+         offset="1"
+         style="stop-color:#89aedc;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-48.77039,-5.765705)"
+       gradientUnits="userSpaceOnUse"
+       y2="24.842253"
+       x2="37.124462"
+       y1="31.455952"
+       x1="36.713837"
+       id="linearGradient2688"
+       xlink:href="#linearGradient2682" />
+    <linearGradient
+       id="linearGradient2690">
+      <stop
+         id="stop2692"
+         offset="0"
+         style="stop-color:#c4d7eb;stop-opacity:1;" />
+      <stop
+         id="stop2694"
+         offset="1"
+         style="stop-color:#c4d7eb;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-48.77039,-5.765705)"
+       gradientUnits="userSpaceOnUse"
+       y2="24.842253"
+       x2="37.124462"
+       y1="30.748846"
+       x1="32.647972"
+       id="linearGradient2696"
+       xlink:href="#linearGradient2690" />
+    <linearGradient
+       id="linearGradient2871">
+      <stop
+         id="stop2873"
+         offset="0"
+         style="stop-color:#3465a4;stop-opacity:1;" />
+      <stop
+         id="stop2875"
+         offset="1"
+         style="stop-color:#3465a4;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2402">
+      <stop
+         id="stop2404"
+         offset="0"
+         style="stop-color:#729fcf;stop-opacity:1;" />
+      <stop
+         id="stop2406"
+         offset="1"
+         style="stop-color:#528ac5;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       y2="26.048164"
+       x2="52.854097"
+       y1="26.048164"
+       x1="5.9649176"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1493"
+       xlink:href="#linearGradient2797" />
+    <linearGradient
+       id="linearGradient2797">
+      <stop
+         id="stop2799"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2801"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       y2="26.048164"
+       x2="52.854097"
+       y1="26.048164"
+       x1="5.9649176"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1491"
+       xlink:href="#linearGradient2797" />
+    <linearGradient
+       id="linearGradient7179">
+      <stop
+         id="stop7181"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop7183"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2316">
+      <stop
+         id="stop2318"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop2320"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0.65979379;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1322">
+      <stop
+         style="stop-color:#729fcf"
+         offset="0.0000000"
+         id="stop1324" />
+      <stop
+         style="stop-color:#5187d6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop1326" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-16.158044,-13.57119)"
+       gradientUnits="userSpaceOnUse"
+       y2="48.547989"
+       x2="45.918697"
+       y1="36.422989"
+       x1="34.892849"
+       id="linearGradient4975"
+       xlink:href="#linearGradient1322" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="23.554308"
+       x2="22.374878"
+       y1="13.604306"
+       x1="13.435029"
+       id="linearGradient7185"
+       xlink:href="#linearGradient7179" />
+    <linearGradient
+       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)"
+       y2="23.554308"
+       x2="22.374878"
+       y1="13.604306"
+       x1="13.435029"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7189"
+       xlink:href="#linearGradient7179" />
+    <linearGradient
+       y2="20.60858"
+       x2="15.984863"
+       y1="36.061237"
+       x1="62.513836"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7180"
+       xlink:href="#linearGradient2380" />
+    <linearGradient
+       y2="50.939667"
+       x2="45.380436"
+       y1="45.264122"
+       x1="46.834816"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7182"
+       xlink:href="#linearGradient2871" />
+    <linearGradient
+       y2="26.649362"
+       x2="53.588622"
+       y1="23.667896"
+       x1="18.935766"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7184"
+       xlink:href="#linearGradient2402" />
+    <linearGradient
+       y2="50.939667"
+       x2="45.380436"
+       y1="45.264122"
+       x1="46.834816"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7186"
+       xlink:href="#linearGradient2871" />
+    <linearGradient
+       gradientTransform="translate(1.8597996)"
+       gradientUnits="userSpaceOnUse"
+       y2="34.976799"
+       x2="27.900846"
+       y1="22.851799"
+       x1="16.874998"
+       id="linearGradient7922"
+       xlink:href="#linearGradient7916" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4184041,0.02503119,-0.01273728,0.42257812,-7.1268356,21.308007)"
+       r="10.319340"
+       fy="35.127438"
+       fx="23.070683"
+       cy="35.127438"
+       cx="23.070683"
+       id="radialGradient2097"
+       xlink:href="#linearGradient2091" />
+  </defs>
+  <metadata
+     id="metadata6436">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:date>2006-01-04</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://tango-project.org</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>add</rdf:li>
+            <rdf:li>plus</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1">
+    <ellipse
+       ry="4.5910006"
+       rx="16.000002"
+       cy="36.646465"
+       cx="24.975922"
+       id="path1361"
+       style="opacity:0.10824741;fill:url(#radialGradient2097);fill-opacity:1;stroke:none;stroke-width:5.25468683;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    <path
+       id="text1314"
+       d="m 29.374162,37.542682 v -9.02696 l 0.01114,-0.04018 v -6.995324 h -0.0022 l -0.0089,-9.96017 -4.565294,0.01116 -2.080467,0.04553 -5.868635,2.830125 -0.01961,8.166666 5.531084,-2.45098 0.0067,17.393347 z"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.90107727px;line-height:125%;font-family:'Bitstream Vera Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#75a1d0;fill-opacity:1;stroke:#3465a4;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path7076"
+       d="m 28.358508,36.53392 v -9.034182 0 l 0.0089,-5.024429 v 0 -9.994974 L 23.372574,12.498195 17.859806,15 v 6 L 23.350002,18.593137 23.392894,32 l -0.01339,4.502672 z"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.90107727px;line-height:125%;font-family:'Bitstream Vera Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;opacity:0.40860219;fill:url(#linearGradient4975);fill-opacity:1;stroke:url(#linearGradient7922);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path7914"
+       d="m 22.859806,25 c 0,1.9375 5.984375,-0.96875 5.984375,-0.03125 v -3 L 28.859806,22 l 0.02124,-9.982614 -2.521242,-0.0087 -3.45915,-0.0087 -5.54085,2.685751 -0.0098,6.989086 5.509804,-2.287582 V 24 Z"
+       style="opacity:0.31182796;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/tango/scalable/view-zoom-out.svg	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,424 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg6431"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="list-remove.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs6433">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective69" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2091">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2093" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop2095" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2091"
+       id="radialGradient2097"
+       cx="23.070683"
+       cy="35.127438"
+       fx="23.070683"
+       fy="35.127438"
+       r="10.319340"
+       gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient7916">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop7918" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.34020618;"
+         offset="1.0000000"
+         id="stop7920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8662">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop8664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8666" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8662"
+       id="radialGradient1503"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
+       cx="24.837126"
+       cy="36.421127"
+       fx="24.837126"
+       fy="36.421127"
+       r="15.644737" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2847">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2849" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:0;"
+         offset="1"
+         id="stop2851" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2847"
+       id="linearGradient1488"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
+       x1="37.128052"
+       y1="29.729605"
+       x2="37.065414"
+       y2="26.194071" />
+    <linearGradient
+       id="linearGradient2831">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2833" />
+      <stop
+         id="stop2855"
+         offset="0.33333334"
+         style="stop-color:#5b86be;stop-opacity:1;" />
+      <stop
+         style="stop-color:#83a8d8;stop-opacity:0;"
+         offset="1"
+         id="stop2835" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2831"
+       id="linearGradient1486"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-48.30498,-6.043298)"
+       x1="13.478554"
+       y1="10.612206"
+       x2="15.419417"
+       y2="19.115122" />
+    <linearGradient
+       id="linearGradient2380">
+      <stop
+         style="stop-color:#b9cfe7;stop-opacity:1"
+         offset="0"
+         id="stop2382" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1"
+         offset="1"
+         id="stop2384" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2682">
+      <stop
+         style="stop-color:#3977c3;stop-opacity:1;"
+         offset="0"
+         id="stop2684" />
+      <stop
+         style="stop-color:#89aedc;stop-opacity:0;"
+         offset="1"
+         id="stop2686" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2682"
+       id="linearGradient2688"
+       x1="36.713837"
+       y1="31.455952"
+       x2="37.124462"
+       y2="24.842253"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-48.77039,-5.765705)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2690">
+      <stop
+         style="stop-color:#c4d7eb;stop-opacity:1;"
+         offset="0"
+         id="stop2692" />
+      <stop
+         style="stop-color:#c4d7eb;stop-opacity:0;"
+         offset="1"
+         id="stop2694" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2690"
+       id="linearGradient2696"
+       x1="32.647972"
+       y1="30.748846"
+       x2="37.124462"
+       y2="24.842253"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-48.77039,-5.765705)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2871">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop2873" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1"
+         offset="1"
+         id="stop2875" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2402">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="0"
+         id="stop2404" />
+      <stop
+         style="stop-color:#528ac5;stop-opacity:1;"
+         offset="1"
+         id="stop2406" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2797"
+       id="linearGradient1493"
+       gradientUnits="userSpaceOnUse"
+       x1="5.9649176"
+       y1="26.048164"
+       x2="52.854097"
+       y2="26.048164" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2797">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2799" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2801" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2797"
+       id="linearGradient1491"
+       gradientUnits="userSpaceOnUse"
+       x1="5.9649176"
+       y1="26.048164"
+       x2="52.854097"
+       y2="26.048164" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient7179">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop7181" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop7183" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2316">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2318" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.65979379;"
+         offset="1"
+         id="stop2320" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1322">
+      <stop
+         id="stop1324"
+         offset="0.0000000"
+         style="stop-color:#729fcf" />
+      <stop
+         id="stop1326"
+         offset="1.0000000"
+         style="stop-color:#5187d6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1322"
+       id="linearGradient4975"
+       x1="34.892849"
+       y1="36.422989"
+       x2="45.918697"
+       y2="48.547989"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-18.01785,-13.57119)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7179"
+       id="linearGradient7185"
+       x1="13.435029"
+       y1="13.604306"
+       x2="22.374878"
+       y2="23.554308"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7179"
+       id="linearGradient7189"
+       gradientUnits="userSpaceOnUse"
+       x1="13.435029"
+       y1="13.604306"
+       x2="22.374878"
+       y2="23.554308"
+       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2380"
+       id="linearGradient7180"
+       gradientUnits="userSpaceOnUse"
+       x1="62.513836"
+       y1="36.061237"
+       x2="15.984863"
+       y2="20.60858" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2871"
+       id="linearGradient7182"
+       gradientUnits="userSpaceOnUse"
+       x1="46.834816"
+       y1="45.264122"
+       x2="45.380436"
+       y2="50.939667" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2402"
+       id="linearGradient7184"
+       gradientUnits="userSpaceOnUse"
+       x1="18.935766"
+       y1="23.667896"
+       x2="53.588622"
+       y2="26.649362" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2871"
+       id="linearGradient7186"
+       gradientUnits="userSpaceOnUse"
+       x1="46.834816"
+       y1="45.264122"
+       x2="45.380436"
+       y2="50.939667" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7916"
+       id="linearGradient7922"
+       x1="16.874998"
+       y1="22.851799"
+       x2="27.900846"
+       y2="34.976799"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.10980392"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="-123.27226"
+     inkscape:cy="26.474252"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1280"
+     inkscape:window-height="818"
+     inkscape:window-x="0"
+     inkscape:window-y="30"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata6436">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Remove</dc:title>
+        <dc:date>2006-01-04</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://tango-project.org</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>remove</rdf:li>
+            <rdf:li>delete</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="font-size:59.901077px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#75a1d0;fill-opacity:1.0000000;stroke:#3465a4;stroke-width:1.0000004px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+       d="M 27.514356,28.359472 L 39.633445,28.475543 L 39.633445,21.480219 L 27.523285,21.480219 L 20.502546,21.462362 L 8.5441705,21.489147 L 8.5084565,28.457686 L 20.511475,28.475543 L 27.514356,28.359472 z "
+       id="text1314"
+       sodipodi:nodetypes="ccccccccc" />
+    <path
+       style="font-size:59.901077px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;opacity:0.40860215;fill:url(#linearGradient4975);fill-opacity:1.0000000;stroke:url(#linearGradient7922);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+       d="M 38.579429,27.484113 L 38.588357,22.475309 L 9.5267863,22.493166 L 9.5000003,27.466256 L 38.579429,27.484113 z "
+       id="path7076"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.31182796"
+       d="M 9.0000000,25.000000 C 9.0000000,26.937500 39.125000,24.062500 39.125000,25.000000 L 39.125000,22.000000 L 9.0000000,22.000000 L 9.0000000,25.000000 z "
+       id="path7914"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+</svg>
Binary file libgui/src/icons/top_left_corner.png has changed
Binary file libgui/src/icons/top_right_corner.png has changed
Binary file libgui/src/icons/top_side.png has changed
Binary file libgui/src/icons/user-home.png has changed
--- a/libgui/src/icons/user-home.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,529 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg97"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/places"
-   sodipodi:docname="user-home.svg"
-   inkscape:export-filename="/home/jimmac/Desktop/horlander-style3.png"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-ydpi="90.000000"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective80" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient6719"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient5060">
-      <stop
-         style="stop-color:black;stop-opacity:1;"
-         offset="0"
-         id="stop5062" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5064" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5060"
-       id="radialGradient6717"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
-       cx="605.71429"
-       cy="486.64789"
-       fx="605.71429"
-       fy="486.64789"
-       r="117.14286" />
-    <linearGradient
-       id="linearGradient5048">
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="0"
-         id="stop5050" />
-      <stop
-         id="stop5056"
-         offset="0.5"
-         style="stop-color:black;stop-opacity:1;" />
-      <stop
-         style="stop-color:black;stop-opacity:0;"
-         offset="1"
-         id="stop5052" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient5048"
-       id="linearGradient6715"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
-       x1="302.85715"
-       y1="366.64789"
-       x2="302.85715"
-       y2="609.50507" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient10997">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop10999" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop11001" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient127"
-       inkscape:collect="always">
-      <stop
-         id="stop128"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop129"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient9806">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop9808" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop9810" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient9766">
-      <stop
-         style="stop-color:#6194cb;stop-opacity:1;"
-         offset="0"
-         id="stop9768" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="1"
-         id="stop9770" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3096">
-      <stop
-         id="stop3098"
-         offset="0"
-         style="stop-color:#424242;stop-opacity:1;" />
-      <stop
-         id="stop3100"
-         offset="1.0000000"
-         style="stop-color:#777777;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient319"
-       inkscape:collect="always">
-      <stop
-         id="stop320"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop321"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1789">
-      <stop
-         style="stop-color:#202020;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop1790" />
-      <stop
-         style="stop-color:#b9b9b9;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop1791" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1789"
-       id="radialGradient238"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.056008,1.513357e-2,0.142618,1.251599,-2.276279,-10.28106)"
-       cx="20.706017"
-       cy="37.517986"
-       fx="20.706017"
-       fy="37.517986"
-       r="30.905205" />
-    <linearGradient
-       id="linearGradient3983">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.87628865;"
-         offset="0.0000000"
-         id="stop3984" />
-      <stop
-         style="stop-color:#fffffe;stop-opacity:0.0000000;"
-         offset="1.0000000"
-         id="stop3985" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3983"
-       id="linearGradient491"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.516844,0,0,0.708978,-0.879573,-1.318166)"
-       x1="6.2297964"
-       y1="13.773066"
-       x2="9.8980894"
-       y2="66.834053" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="46.689312"
-       x2="12.853771"
-       y1="32.567184"
-       x1="13.035696"
-       gradientTransform="matrix(1.317489,0,0,0.816256,-0.879573,-1.318166)"
-       id="linearGradient322"
-       xlink:href="#linearGradient319"
-       inkscape:collect="always" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="6.1802502"
-       x2="15.514889"
-       y1="31.367750"
-       x1="18.112709"
-       id="linearGradient3104"
-       xlink:href="#linearGradient3096"
-       inkscape:collect="always" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9766"
-       id="linearGradient9772"
-       x1="22.175976"
-       y1="36.987999"
-       x2="22.065331"
-       y2="32.050499"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient9806"
-       id="radialGradient9812"
-       cx="24.35099"
-       cy="41.591846"
-       fx="24.35099"
-       fy="41.591846"
-       r="19.136078"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.242494,-8.239935e-18,31.50606)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient10997"
-       id="linearGradient11003"
-       x1="19.489662"
-       y1="6.1438289"
-       x2="19.387241"
-       y2="8.1000004"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient127"
-       id="linearGradient2296"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.207872,0,0,0.827902,-0.952004,-0.117547)"
-       x1="21.354231"
-       y1="26.383648"
-       x2="20.796143"
-       y2="50.770691" />
-  </defs>
-  <sodipodi:namedview
-     fill="#729fcf"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.74901961"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="15.458333"
-     inkscape:cx="13.520215"
-     inkscape:cy="24"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1016"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false"
-     stroke="#3465a4"
-     showguides="true"
-     inkscape:guide-bbox="true">
-    <sodipodi:guide
-       orientation="horizontal"
-       position="51.881402"
-       id="guide3948" />
-    <inkscape:grid
-       id="GridFromPre046Settings"
-       type="xygrid"
-       originx="0px"
-       originy="0px"
-       spacingx="1px"
-       spacingy="1px"
-       color="#0000ff"
-       empcolor="#0000ff"
-       opacity="0.2"
-       empopacity="0.4"
-       empspacing="4" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Home Folder Icon</dc:title>
-        <dc:date />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>folder</rdf:li>
-            <rdf:li>directory</rdf:li>
-            <rdf:li>home</rdf:li>
-            <rdf:li>user</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Garrett LeSage</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Folder"
-     inkscape:groupmode="layer">
-    <g
-       style="display:inline"
-       transform="matrix(2.262383e-2,0,0,2.086758e-2,43.38343,36.36962)"
-       id="g6707">
-      <rect
-         style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         id="rect6709"
-         width="1339.6335"
-         height="478.35718"
-         x="-1559.2523"
-         y="-150.69685" />
-      <path
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
-         id="path6711"
-         sodipodi:nodetypes="cccc" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path6713"
-         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
-         style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-    </g>
-    <path
-       d="M 4.5217805,38.687417 C 4.5435766,39.103721 4.9816854,39.520026 5.39799,39.520026 L 36.725011,39.520026 C 37.141313,39.520026 37.535823,39.103721 37.514027,38.687417 L 36.577584,11.460682 C 36.555788,11.044379 36.117687,10.628066 35.701383,10.628066 L 22.43051,10.628066 C 21.945453,10.628066 21.196037,10.312477 21.028866,9.5214338 L 20.417475,6.6283628 C 20.262006,5.8926895 19.535261,5.5904766 19.118957,5.5904766 L 4.3400975,5.5904766 C 3.9237847,5.5904766 3.5292767,6.0067807 3.5510726,6.4230849 L 4.5217805,38.687417 z "
-       id="path216"
-       style="fill:url(#radialGradient238);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3104);stroke-width:0.99844444;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       sodipodi:nodetypes="ccccccssssccc"
-       transform="matrix(1.00104,0,0,1.002076,-5.390137e-2,-0.102085)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-    <path
-       style="opacity:0.45142858;color:#000000;fill:url(#linearGradient491);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21380496;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 6.068343,38.864023 C 6.0846856,39.176251 5.8874317,39.384402 5.5697582,39.280326 L 5.5697582,39.280326 C 5.2520766,39.176251 5.033027,38.968099 5.0166756,38.65587 L 4.068956,6.5913839 C 4.0526131,6.2791558 4.2341418,6.0906134 4.5463699,6.0906134 L 18.96842,6.0429196 C 19.280648,6.0429196 19.900363,6.3433923 20.101356,7.3651014 L 20.674845,10.180636 C 20.247791,9.715379 20.255652,9.7010175 20.037287,9.0239299 L 19.631192,7.7647478 C 19.412142,7.0371009 18.932991,6.9328477 18.620763,6.9328477 L 5.7329889,6.9328477 C 5.4207613,6.9328477 5.2235075,7.1409999 5.2398583,7.4532364 L 6.1778636,38.968099 L 6.068343,38.864023 z "
-       id="path219"
-       sodipodi:nodetypes="cccccccccscccccc"
-       transform="matrix(0.993563,0,0,0.992049,-4.175005e-2,5.133802e-3)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-    <g
-       id="g3950">
-      <path
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 5.0421736,18.5625 L 35.489104,18.5625"
-         id="path9784"
-         sodipodi:nodetypes="cc" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path9778"
-         d="M 4.9806965,12.5625 L 35.488057,12.5625"
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 5.2265927,22.5625 L 35.492173,22.5625"
-         id="path9788"
-         sodipodi:nodetypes="cc" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path9798"
-         d="M 5.3861577,32.5625 L 35.494881,32.5625"
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 5.5091398,34.5625 L 35.496893,34.5625"
-         id="path9800"
-         sodipodi:nodetypes="cc" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path9782"
-         d="M 5.0421736,16.5625 L 35.489104,16.5625"
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path9786"
-         d="M 5.1958537,20.5625 L 35.491649,20.5625"
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 5.0114345,14.5625 L 35.48858,14.5625"
-         id="path9780"
-         sodipodi:nodetypes="cc" />
-      <g
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         inkscape:export-ydpi="74.800003"
-         inkscape:export-xdpi="74.800003"
-         inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-         transform="matrix(1.053404,0,5.515434e-2,1.040068,-9.163336,2.458743)"
-         id="g220"
-         style="fill:#ffffff;fill-opacity:0.75706213;fill-rule:nonzero;stroke:none;stroke-width:0.99946535;stroke-miterlimit:4">
-        <path
-           inkscape:r_cy="true"
-           inkscape:r_cx="true"
-           sodipodi:nodetypes="cscscs"
-           id="path221"
-           d="M 42.417183,8.5151772 C 42.422267,8.4180642 42.289022,8.268189 42.182066,8.2681716 L 29.150665,8.2660527 C 29.150665,8.2660527 30.062379,8.8540072 31.352477,8.8622963 L 42.405974,8.9333167 C 42.41706,8.7215889 42.408695,8.6772845 42.417183,8.5151772 z "
-           style="fill:#ffffff;fill-opacity:0.50847461" />
-      </g>
-      <path
-         sodipodi:nodetypes="cc"
-         id="path9790"
-         d="M 5.2265927,24.5625 L 35.492173,24.5625"
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 5.3246666,30.5625 L 35.493876,30.5625"
-         id="path9796"
-         sodipodi:nodetypes="cc" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path9794"
-         d="M 5.3246666,28.5625 L 35.493876,28.5625"
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path9802"
-         d="M 5.5091398,36.5625 L 35.496893,36.5625"
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 5.2880638,26.5625 L 35.493184,26.5625"
-         id="path9792"
-         sodipodi:nodetypes="cc" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path9774"
-         d="M 4.8737534,8.5624999 L 19.657487,8.5624999"
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
-      <path
-         style="opacity:0.11363633;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-         d="M 4.9220969,10.5625 L 20.202912,10.5625"
-         id="path9776"
-         sodipodi:nodetypes="cc" />
-    </g>
-    <path
-       style="color:#000000;fill:url(#linearGradient9772);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1.00452971;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
-       d="M 39.783532,39.51062 C 40.927426,39.466556 41.746608,38.414321 41.830567,37.189615 C 42.622354,25.640928 43.489927,15.957666 43.489927,15.957666 C 43.562082,15.710182 43.322016,15.462699 43.009787,15.462699 L 8.6386304,15.462699 C 8.6386304,15.462699 6.7883113,37.329591 6.7883113,37.329591 C 6.6737562,38.311657 6.3223038,39.134309 5.2384755,39.513304 L 39.783532,39.51062 z "
-       id="path233"
-       sodipodi:nodetypes="cscccscc"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-ydpi="74.800003"
-       transform="matrix(0.993091,0,0,0.997896,0.297717,6.983205e-2)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-    <path
-       sodipodi:nodetypes="ccsscsc"
-       id="path304"
-       d="M 9.6202444,16.463921 L 42.411343,16.528735 L 40.837297,36.530714 C 40.752975,37.602225 40.386619,37.958929 38.964641,37.958929 C 37.093139,37.958929 10.286673,37.926522 7.569899,37.926522 C 7.8034973,37.605711 7.9036547,36.937899 7.9049953,36.92191 L 9.6202444,16.463921 z "
-       style="opacity:0.46590911;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient322);stroke-width:1.00452948px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
-       transform="matrix(0.993091,0,0,0.997896,0.297717,6.983205e-2)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path323"
-       d="M 9.6202481,16.223182 L 8.4536014,31.866453 C 8.4536014,31.866453 16.749756,27.718375 27.119949,27.718375 C 37.490142,27.718375 42.675239,16.223182 42.675239,16.223182 L 9.6202481,16.223182 z "
-       style="fill:#ffffff;fill-opacity:0.0892857;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       transform="matrix(0.993091,0,0,0.997896,0.297717,6.983205e-2)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-    <path
-       d="M 16.569914,27.404847 L 15.862615,35 L 23.713868,35 L 24.285565,28.86095 L 28.558755,28.86095 L 27.987057,35 L 32.867565,35 L 33.574862,27.404847 L 36.245113,27.402613 L 25.834954,19.752712 L 14,27.402613 L 16.569914,27.404847 z "
-       style="fill:url(#linearGradient2296);fill-opacity:1;fill-rule:evenodd;stroke-width:3pt"
-       id="path892"
-       transform="matrix(0.988981,0,0,0.983782,1.154266,0.56763)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-    <g
-       inkscape:export-ydpi="74.800003"
-       inkscape:export-xdpi="74.800003"
-       inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png"
-       style="opacity:0.41477272;fill:url(#linearGradient11003);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4"
-       transform="matrix(1.040764,0.000000,5.449252e-2,1.365642,-8.358528,0.921788)"
-       id="g217" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="pattern" />
-</svg>
Binary file libgui/src/icons/view-refresh.png has changed
--- a/libgui/src/icons/view-refresh.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,393 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   inkscape:export-ydpi="90.000000"
-   inkscape:export-xdpi="90.000000"
-   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
-   width="48px"
-   height="48px"
-   id="svg11300"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   sodipodi:docname="view-refresh.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective58" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2690">
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:1;"
-         offset="0"
-         id="stop2692" />
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:0;"
-         offset="1"
-         id="stop2694" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2682">
-      <stop
-         style="stop-color:#3977c3;stop-opacity:1;"
-         offset="0"
-         id="stop2684" />
-      <stop
-         style="stop-color:#89aedc;stop-opacity:0;"
-         offset="1"
-         id="stop2686" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2402">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="0"
-         id="stop2404" />
-      <stop
-         style="stop-color:#528ac5;stop-opacity:1;"
-         offset="1"
-         id="stop2406" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2380">
-      <stop
-         style="stop-color:#b9cfe7;stop-opacity:1"
-         offset="0"
-         id="stop2382" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1"
-         id="stop2384" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2871">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2873" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1"
-         offset="1"
-         id="stop2875" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2847">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2849" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:0;"
-         offset="1"
-         id="stop2851" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2831">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2833" />
-      <stop
-         id="stop2855"
-         offset="0.33333334"
-         style="stop-color:#5b86be;stop-opacity:1;" />
-      <stop
-         style="stop-color:#83a8d8;stop-opacity:0;"
-         offset="1"
-         id="stop2835" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2797">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2799" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2801" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2831"
-       id="linearGradient1486"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0.465413,-0.277593)"
-       x1="13.478554"
-       y1="10.612206"
-       x2="15.419417"
-       y2="19.115122" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2847"
-       id="linearGradient1488"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,-1,47.52791,45.84741)"
-       x1="37.128052"
-       y1="29.729605"
-       x2="37.065414"
-       y2="26.194071" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797"
-       id="linearGradient1491"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797"
-       id="linearGradient1493"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871"
-       id="linearGradient1501"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient1503"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.536723,-9.680928e-14,16.87306)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2380"
-       id="linearGradient2386"
-       x1="62.513836"
-       y1="36.061237"
-       x2="15.984863"
-       y2="20.60858"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2402"
-       id="linearGradient2408"
-       x1="18.935766"
-       y1="23.667896"
-       x2="53.588622"
-       y2="26.649362"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2682"
-       id="linearGradient2688"
-       x1="36.713837"
-       y1="31.455952"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2690"
-       id="linearGradient2696"
-       x1="32.647972"
-       y1="30.748846"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     stroke="#3465a4"
-     fill="#729fcf"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.25490196"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6568542"
-     inkscape:cx="2.4438651"
-     inkscape:cy="18.153347"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="891"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>View Refresh</dc:title>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>reload</rdf:li>
-            <rdf:li>refresh</rdf:li>
-            <rdf:li>view</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       transform="matrix(-1.489736,0,0,-1.001252,61.20865,75.2819)"
-       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
-       sodipodi:ry="8.3968935"
-       sodipodi:rx="15.644737"
-       sodipodi:cy="36.421127"
-       sodipodi:cx="24.837126"
-       id="path8660"
-       style="opacity:0.38333333;color:#000000;fill:url(#radialGradient1503);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true" />
-    <path
-       style="color:#000000;fill:url(#linearGradient1486);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1488);stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-       d="M 20.152913,10.409904 C 20.152913,10.409904 11.215413,9.784904 13.965413,20.284904 L 6.2779132,20.284904 C 6.2779132,20.284904 6.7779132,8.409904 20.152913,10.409904 z "
-       id="path2865"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       sodipodi:nodetypes="cccc" />
-    <g
-       id="g1878"
-       transform="matrix(-0.579051,-0.489228,-0.489228,0.579051,56.91585,13.37137)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       style="fill:url(#linearGradient2386);fill-opacity:1.0;stroke:#3465a4;stroke-opacity:1">
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path1880"
-         d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.113843,3.1515478 L 7.6245439,20.496754 L 22.714328,33.219189 C 22.714328,33.219189 22.462411,23.337969 22.462411,23.337969 C 41.292171,24.336946 55.444038,37.409698 44.306783,50.229694 z "
-         style="opacity:1;color:#000000;fill:url(#linearGradient2386);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient1501);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-    </g>
-    <path
-       sodipodi:nodetypes="cccc"
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       id="path2839"
-       d="M 28.375,33.4375 C 28.375,33.4375 37.3125,34.0625 34.5625,23.5625 L 42.338388,23.5625 C 42.338388,25.065102 41.75,35.4375 28.375,33.4375 z "
-       style="color:#000000;fill:url(#linearGradient2696);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient2688);stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
-    <g
-       style="color:#000000;fill:url(#linearGradient2408);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient1501);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;opacity:1"
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       transform="matrix(0.579051,0.489228,0.489228,-0.579051,-7.921023,30.53599)"
-       id="g2779">
-      <path
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         style="opacity:1;color:#000000;fill:url(#linearGradient2408);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient1501);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-         d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.399432,3.0690297 L 7.793943,20.424005 L 22.462411,33.006349 C 22.462411,33.006349 22.462411,23.337969 22.462411,23.337969 C 41.292171,24.336946 55.444038,37.409698 44.306783,50.229694 z "
-         id="path2781"
-         sodipodi:nodetypes="ccccccc" />
-    </g>
-    <path
-       style="opacity:0.27222224;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 7.0625,38.1875 L 7.125,23.3125 L 20.0625,22.9375 L 15.673627,28.116317 L 19.540852,30.489516 C 16.540852,32.739516 14.991304,32.911644 13.991304,35.474144 L 11.174446,33.363872 L 7.0625,38.1875 z "
-       id="path2791"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       sodipodi:nodetypes="cccccccc" />
-    <g
-       id="g2793"
-       transform="matrix(0.508536,0.429651,0.429651,-0.508536,-3.973188,30.54119)"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1">
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path2795"
-         d="M 51.090265,45.943705 C 60.210465,30.723955 46.631614,12.20113 19.485058,11.948579 L 19.513464,3.7032834 L 6.5341979,19.296639 L 19.367661,30.26876 C 19.367661,30.26876 19.423281,21.261882 19.423281,21.261882 C 36.951096,21.037973 54.618466,31.365254 51.090265,45.943705 z "
-         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1493);stroke-width:1.50208926;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-         inkscape:r_cx="true"
-         inkscape:r_cy="true" />
-    </g>
-    <g
-       style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
-       inkscape:r_cy="true"
-       inkscape:r_cx="true"
-       transform="matrix(-0.508536,-0.429651,-0.429651,0.508536,53.049,13.36548)"
-       id="g2805">
-      <path
-         inkscape:r_cy="true"
-         inkscape:r_cx="true"
-         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1491);stroke-width:1.50208926;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
-         d="M 51.389927,46.505946 C 60.510127,31.286196 47.050763,12.432359 19.628482,12.069755 L 19.342824,4.0507204 L 6.3413093,19.379475 L 19.809059,30.764589 C 19.809059,30.764589 19.627294,21.311346 19.627294,21.311346 C 37.872231,21.693318 54.411175,32.236592 51.389927,46.505946 z "
-         id="path2807"
-         sodipodi:nodetypes="ccccccc" />
-    </g>
-    <path
-       style="opacity:0.27222224;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       d="M 6.8125,16.5 C 10.405935,6.0587275 23.256282,10.355393 27,12 C 31.175307,12.211475 32.674736,9.164996 36,9 C 21.950264,-0.7899963 7.1875,2.5 6.8125,16.5 z "
-       id="path2811"
-       inkscape:r_cx="true"
-       inkscape:r_cy="true"
-       sodipodi:nodetypes="cccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/widget-close-light.png has changed
--- a/libgui/src/icons/widget-close-light.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="32"
-   height="32"
-   id="svg2"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="widget-close-light.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1217"
-     inkscape:window-height="737"
-     id="namedview7"
-     showgrid="true"
-     inkscape:zoom="13.632822"
-     inkscape:cx="17.746364"
-     inkscape:cy="1.4474508"
-     inkscape:window-x="-1"
-     inkscape:window-y="34"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2984"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <path
-     d="M 25,25 7,7"
-     id="path2989"
-     style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cc" />
-  <path
-     sodipodi:nodetypes="cc"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     id="path2985"
-     d="M 25,7 7,25" />
-</svg>
Binary file libgui/src/icons/widget-close.png has changed
--- a/libgui/src/icons/widget-close.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="32"
-   height="32"
-   id="svg2"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="widget-close.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1217"
-     inkscape:window-height="737"
-     id="namedview7"
-     showgrid="true"
-     inkscape:zoom="13.632822"
-     inkscape:cx="17.746364"
-     inkscape:cy="17.927867"
-     inkscape:window-x="-1"
-     inkscape:window-y="34"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2984"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <path
-     d="M 25,25 7,7"
-     id="path2989"
-     style="fill:none;stroke:#141414;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cc" />
-  <path
-     sodipodi:nodetypes="cc"
-     inkscape:connector-curvature="0"
-     style="fill:none;stroke:#141414;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     id="path2985"
-     d="M 25,7 7,25" />
-</svg>
Binary file libgui/src/icons/widget-dock-light.png has changed
--- a/libgui/src/icons/widget-dock-light.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="32"
-   height="32"
-   id="svg2"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="widget-dock-light.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1080"
-     inkscape:window-height="731"
-     id="namedview11"
-     showgrid="true"
-     inkscape:zoom="14.648618"
-     inkscape:cx="19.259858"
-     inkscape:cy="16.85961"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3792">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2988"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <g
-     transform="translate(-7.7007624,-11.348432)"
-     id="g3792"
-     style="stroke-linecap:square;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke:#141414;stroke-opacity:1">
-    <rect
-       width="22.000002"
-       height="23.000002"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="12.700763"
-       y="15.616543"
-       id="rect3794"
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       width="22"
-       height="2.0000005"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="12.700763"
-       y="15.616543"
-       id="rect3796"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-  <path
-     d="M 14,4.2681109 14,27.268111"
-     id="path3800"
-     style="fill:none;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cc" />
-  <path
-     d="m 14,17.268111 13,0"
-     id="path3804"
-     style="fill:none;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cc" />
-</svg>
Binary file libgui/src/icons/widget-dock.png has changed
--- a/libgui/src/icons/widget-dock.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="32"
-   height="32"
-   id="svg2"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="widget-dock.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1080"
-     inkscape:window-height="731"
-     id="namedview11"
-     showgrid="true"
-     inkscape:zoom="18.044858"
-     inkscape:cx="19.259858"
-     inkscape:cy="17.962102"
-     inkscape:window-x="126"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3792">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2988"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <g
-     transform="translate(-7.7007624,-11.348432)"
-     id="g3792"
-     style="stroke-linecap:square;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke:#141414;stroke-opacity:1">
-    <rect
-       width="22.000002"
-       height="23.000002"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="12.700763"
-       y="15.736354"
-       id="rect3794"
-       style="color:#000000;fill:none;stroke:#141414;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       width="22"
-       height="2.0000005"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="12.700763"
-       y="15.736354"
-       id="rect3796"
-       style="color:#000000;fill:#141414;fill-opacity:1;stroke:#141414;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-  <path
-     d="M 14,4.3879221 14,27.387922"
-     id="path3800"
-     style="fill:none;stroke:#141414;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cc" />
-  <path
-     d="m 14,17.387922 13,0"
-     id="path3804"
-     style="fill:none;stroke:#141414;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cc" />
-</svg>
Binary file libgui/src/icons/widget-undock-light.png has changed
--- a/libgui/src/icons/widget-undock-light.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="32"
-   height="32"
-   id="svg2"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="widget-undock-light.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview5953"
-     showgrid="false"
-     inkscape:zoom="9.4204102"
-     inkscape:cx="16"
-     inkscape:cy="16"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3792" />
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <g
-     transform="translate(-7.2158478,-11.926544)"
-     id="g3792"
-     style="stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">
-    <rect
-       width="15.999999"
-       height="15"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="12.215848"
-       y="24.291922"
-       id="rect3794"
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       width="16"
-       height="1.9999998"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="12.215848"
-       y="24.291922"
-       id="rect3796"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       width="16"
-       height="1.9999998"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="18.215847"
-       y="16.291922"
-       id="rect2988"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-  <path
-     d="m 11,4.3653773 0,9.9999997"
-     id="path3800"
-     style="fill:none;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  <path
-     d="m 21,19.365377 6,0 0,-14.9999997"
-     id="path3804"
-     style="fill:none;stroke:#ffffff;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-</svg>
Binary file libgui/src/icons/widget-undock.png has changed
--- a/libgui/src/icons/widget-undock.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="32"
-   height="32"
-   id="svg2"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="widget-undock.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1105"
-     inkscape:window-height="720"
-     id="namedview3783"
-     showgrid="true"
-     inkscape:zoom="16.421381"
-     inkscape:cx="24.012447"
-     inkscape:cy="16.356858"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3792">
-    <inkscape:grid
-       type="xygrid"
-       id="grid3785"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <g
-     transform="translate(-7.2158478,-11.926544)"
-     id="g3792"
-     style="stroke:#141414;stroke-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none">
-    <rect
-       width="15.999999"
-       height="15"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="12.215848"
-       y="24.291922"
-       id="rect3794"
-       style="color:#000000;fill:none;stroke:#141414;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       width="16"
-       height="1.9999998"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="12.215848"
-       y="24.291922"
-       id="rect3796"
-       style="color:#000000;fill:#141414;fill-opacity:1;stroke:#141414;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       width="16"
-       height="1.9999998"
-       rx="0.2512264"
-       ry="0.0025005043"
-       x="18.215847"
-       y="16.291922"
-       id="rect2988"
-       style="color:#000000;fill:#141414;fill-opacity:1;stroke:#141414;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-  <path
-     d="m 11,4.3653773 0,9.9999997"
-     id="path3800"
-     style="fill:none;stroke:#141414;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cc" />
-  <path
-     d="m 21,19.365377 6,0 0,-14.9999997"
-     id="path3804"
-     style="fill:none;stroke:#141414;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="ccc" />
-</svg>
Binary file libgui/src/icons/zoom-in.png has changed
--- a/libgui/src/icons/zoom-in.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,436 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg6431"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   sodipodi:docname="list-add.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs6433">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective70" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2091">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2093" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2095" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7916">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7918" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.34020618;"
-         offset="1.0000000"
-         id="stop7920" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient1503"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2847">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2849" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:0;"
-         offset="1"
-         id="stop2851" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2847"
-       id="linearGradient1488"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
-       x1="37.128052"
-       y1="29.729605"
-       x2="37.065414"
-       y2="26.194071" />
-    <linearGradient
-       id="linearGradient2831">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2833" />
-      <stop
-         id="stop2855"
-         offset="0.33333334"
-         style="stop-color:#5b86be;stop-opacity:1;" />
-      <stop
-         style="stop-color:#83a8d8;stop-opacity:0;"
-         offset="1"
-         id="stop2835" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2831"
-       id="linearGradient1486"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.30498,-6.043298)"
-       x1="13.478554"
-       y1="10.612206"
-       x2="15.419417"
-       y2="19.115122" />
-    <linearGradient
-       id="linearGradient2380">
-      <stop
-         style="stop-color:#b9cfe7;stop-opacity:1"
-         offset="0"
-         id="stop2382" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1"
-         id="stop2384" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2682">
-      <stop
-         style="stop-color:#3977c3;stop-opacity:1;"
-         offset="0"
-         id="stop2684" />
-      <stop
-         style="stop-color:#89aedc;stop-opacity:0;"
-         offset="1"
-         id="stop2686" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2682"
-       id="linearGradient2688"
-       x1="36.713837"
-       y1="31.455952"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.77039,-5.765705)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2690">
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:1;"
-         offset="0"
-         id="stop2692" />
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:0;"
-         offset="1"
-         id="stop2694" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2690"
-       id="linearGradient2696"
-       x1="32.647972"
-       y1="30.748846"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.77039,-5.765705)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2871">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2873" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1"
-         offset="1"
-         id="stop2875" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2402">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="0"
-         id="stop2404" />
-      <stop
-         style="stop-color:#528ac5;stop-opacity:1;"
-         offset="1"
-         id="stop2406" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797"
-       id="linearGradient1493"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2797">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2799" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2801" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797"
-       id="linearGradient1491"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7179">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7181" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop7183" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2318" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.65979379;"
-         offset="1"
-         id="stop2320" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1322">
-      <stop
-         id="stop1324"
-         offset="0.0000000"
-         style="stop-color:#729fcf" />
-      <stop
-         id="stop1326"
-         offset="1.0000000"
-         style="stop-color:#5187d6;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1322"
-       id="linearGradient4975"
-       x1="34.892849"
-       y1="36.422989"
-       x2="45.918697"
-       y2="48.547989"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-18.01785,-13.57119)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7179"
-       id="linearGradient7185"
-       x1="13.435029"
-       y1="13.604306"
-       x2="22.374878"
-       y2="23.554308"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7179"
-       id="linearGradient7189"
-       gradientUnits="userSpaceOnUse"
-       x1="13.435029"
-       y1="13.604306"
-       x2="22.374878"
-       y2="23.554308"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2380"
-       id="linearGradient7180"
-       gradientUnits="userSpaceOnUse"
-       x1="62.513836"
-       y1="36.061237"
-       x2="15.984863"
-       y2="20.60858" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871"
-       id="linearGradient7182"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2402"
-       id="linearGradient7184"
-       gradientUnits="userSpaceOnUse"
-       x1="18.935766"
-       y1="23.667896"
-       x2="53.588622"
-       y2="26.649362" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871"
-       id="linearGradient7186"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7916"
-       id="linearGradient7922"
-       x1="16.874998"
-       y1="22.851799"
-       x2="27.900846"
-       y2="34.976799"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2091"
-       id="radialGradient2097"
-       cx="23.070683"
-       cy="35.127438"
-       fx="23.070683"
-       fy="35.127438"
-       r="10.319340"
-       gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.15686275"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-123.56934"
-     inkscape:cy="0.031886897"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1280"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata6436">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Add</dc:title>
-        <dc:date>2006-01-04</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://tango-project.org</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>add</rdf:li>
-            <rdf:li>plus</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.10824742;fill:url(#radialGradient2097);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path1361"
-       sodipodi:cx="22.958872"
-       sodipodi:cy="34.94062"
-       sodipodi:rx="10.31934"
-       sodipodi:ry="2.320194"
-       d="M 33.278212 34.94062 A 10.31934 2.320194 0 1 1  12.639532,34.94062 A 10.31934 2.320194 0 1 1  33.278212 34.94062 z"
-       transform="matrix(1.550487,0,0,1.978714,-12.4813,-32.49103)" />
-    <path
-       style="font-size:59.901077px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#75a1d0;fill-opacity:1.0000000;stroke:#3465a4;stroke-width:1.0000004px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
-       d="M 27.514356,37.542682 L 27.514356,28.515722 L 37.492820,28.475543 L 37.492820,21.480219 L 27.523285,21.480219 L 27.514356,11.520049 L 20.498082,11.531210 L 20.502546,21.462362 L 10.512920,21.536022 L 10.477206,28.504561 L 20.511475,28.475543 L 20.518171,37.515896 L 27.514356,37.542682 z "
-       id="text1314"
-       sodipodi:nodetypes="ccccccccccccc" />
-    <path
-       style="font-size:59.901077px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;opacity:0.40860215;fill:url(#linearGradient4975);fill-opacity:1.0000000;stroke:url(#linearGradient7922);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
-       d="M 26.498702,36.533920 L 26.498702,27.499738 L 36.501304,27.499738 L 36.494607,22.475309 L 26.507630,22.475309 L 26.507630,12.480335 L 21.512796,12.498193 L 21.521725,22.475309 L 11.495536,22.493166 L 11.468750,27.466256 L 21.533143,27.475185 L 21.519750,36.502670 L 26.498702,36.533920 z "
-       id="path7076"
-       sodipodi:nodetypes="ccccccccccccc" />
-    <path
-       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.31182796"
-       d="M 11.000000,25.000000 C 11.000000,26.937500 36.984375,24.031250 36.984375,24.968750 L 36.984375,21.968750 L 27.000000,22.000000 L 27.000000,12.034772 L 21.000000,12.034772 L 21.000000,22.000000 L 11.000000,22.000000 L 11.000000,25.000000 z "
-       id="path7914"
-       sodipodi:nodetypes="ccccccccc" />
-  </g>
-</svg>
Binary file libgui/src/icons/zoom-original.png has changed
--- a/libgui/src/icons/zoom-original.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,371 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   id="svg6431"
-   height="48px"
-   width="48px">
-  <defs
-     id="defs6433">
-    <linearGradient
-       id="linearGradient2091">
-      <stop
-         id="stop2093"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2095"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient7916">
-      <stop
-         id="stop7918"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop7920"
-         offset="1.0000000"
-         style="stop-color:#ffffff;stop-opacity:0.34020618;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient8662">
-      <stop
-         id="stop8664"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop8666"
-         offset="1"
-         style="stop-color:#000000;stop-opacity:0;" />
-    </linearGradient>
-    <radialGradient
-       r="15.644737"
-       fy="36.421127"
-       fx="24.837126"
-       cy="36.421127"
-       cx="24.837126"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
-       gradientUnits="userSpaceOnUse"
-       id="radialGradient1503"
-       xlink:href="#linearGradient8662" />
-    <linearGradient
-       id="linearGradient2847">
-      <stop
-         id="stop2849"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         id="stop2851"
-         offset="1"
-         style="stop-color:#3465a4;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.194071"
-       x2="37.065414"
-       y1="29.729605"
-       x1="37.128052"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1488"
-       xlink:href="#linearGradient2847" />
-    <linearGradient
-       id="linearGradient2831">
-      <stop
-         id="stop2833"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         style="stop-color:#5b86be;stop-opacity:1;"
-         offset="0.33333334"
-         id="stop2855" />
-      <stop
-         id="stop2835"
-         offset="1"
-         style="stop-color:#83a8d8;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="19.115122"
-       x2="15.419417"
-       y1="10.612206"
-       x1="13.478554"
-       gradientTransform="translate(-48.30498,-6.043298)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1486"
-       xlink:href="#linearGradient2831" />
-    <linearGradient
-       id="linearGradient2380">
-      <stop
-         id="stop2382"
-         offset="0"
-         style="stop-color:#b9cfe7;stop-opacity:1" />
-      <stop
-         id="stop2384"
-         offset="1"
-         style="stop-color:#729fcf;stop-opacity:1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2682">
-      <stop
-         id="stop2684"
-         offset="0"
-         style="stop-color:#3977c3;stop-opacity:1;" />
-      <stop
-         id="stop2686"
-         offset="1"
-         style="stop-color:#89aedc;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-48.77039,-5.765705)"
-       gradientUnits="userSpaceOnUse"
-       y2="24.842253"
-       x2="37.124462"
-       y1="31.455952"
-       x1="36.713837"
-       id="linearGradient2688"
-       xlink:href="#linearGradient2682" />
-    <linearGradient
-       id="linearGradient2690">
-      <stop
-         id="stop2692"
-         offset="0"
-         style="stop-color:#c4d7eb;stop-opacity:1;" />
-      <stop
-         id="stop2694"
-         offset="1"
-         style="stop-color:#c4d7eb;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-48.77039,-5.765705)"
-       gradientUnits="userSpaceOnUse"
-       y2="24.842253"
-       x2="37.124462"
-       y1="30.748846"
-       x1="32.647972"
-       id="linearGradient2696"
-       xlink:href="#linearGradient2690" />
-    <linearGradient
-       id="linearGradient2871">
-      <stop
-         id="stop2873"
-         offset="0"
-         style="stop-color:#3465a4;stop-opacity:1;" />
-      <stop
-         id="stop2875"
-         offset="1"
-         style="stop-color:#3465a4;stop-opacity:1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2402">
-      <stop
-         id="stop2404"
-         offset="0"
-         style="stop-color:#729fcf;stop-opacity:1;" />
-      <stop
-         id="stop2406"
-         offset="1"
-         style="stop-color:#528ac5;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.048164"
-       x2="52.854097"
-       y1="26.048164"
-       x1="5.9649176"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1493"
-       xlink:href="#linearGradient2797" />
-    <linearGradient
-       id="linearGradient2797">
-      <stop
-         id="stop2799"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop2801"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       y2="26.048164"
-       x2="52.854097"
-       y1="26.048164"
-       x1="5.9649176"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient1491"
-       xlink:href="#linearGradient2797" />
-    <linearGradient
-       id="linearGradient7179">
-      <stop
-         id="stop7181"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
-      <stop
-         id="stop7183"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         id="stop2318"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:1;" />
-      <stop
-         id="stop2320"
-         offset="1"
-         style="stop-color:#ffffff;stop-opacity:0.65979379;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1322">
-      <stop
-         style="stop-color:#729fcf"
-         offset="0.0000000"
-         id="stop1324" />
-      <stop
-         style="stop-color:#5187d6;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop1326" />
-    </linearGradient>
-    <linearGradient
-       gradientTransform="translate(-16.158044,-13.57119)"
-       gradientUnits="userSpaceOnUse"
-       y2="48.547989"
-       x2="45.918697"
-       y1="36.422989"
-       x1="34.892849"
-       id="linearGradient4975"
-       xlink:href="#linearGradient1322" />
-    <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="23.554308"
-       x2="22.374878"
-       y1="13.604306"
-       x1="13.435029"
-       id="linearGradient7185"
-       xlink:href="#linearGradient7179" />
-    <linearGradient
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)"
-       y2="23.554308"
-       x2="22.374878"
-       y1="13.604306"
-       x1="13.435029"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7189"
-       xlink:href="#linearGradient7179" />
-    <linearGradient
-       y2="20.60858"
-       x2="15.984863"
-       y1="36.061237"
-       x1="62.513836"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7180"
-       xlink:href="#linearGradient2380" />
-    <linearGradient
-       y2="50.939667"
-       x2="45.380436"
-       y1="45.264122"
-       x1="46.834816"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7182"
-       xlink:href="#linearGradient2871" />
-    <linearGradient
-       y2="26.649362"
-       x2="53.588622"
-       y1="23.667896"
-       x1="18.935766"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7184"
-       xlink:href="#linearGradient2402" />
-    <linearGradient
-       y2="50.939667"
-       x2="45.380436"
-       y1="45.264122"
-       x1="46.834816"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient7186"
-       xlink:href="#linearGradient2871" />
-    <linearGradient
-       gradientTransform="translate(1.8597996)"
-       gradientUnits="userSpaceOnUse"
-       y2="34.976799"
-       x2="27.900846"
-       y1="22.851799"
-       x1="16.874998"
-       id="linearGradient7922"
-       xlink:href="#linearGradient7916" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.4184041,0.02503119,-0.01273728,0.42257812,-7.1268356,21.308007)"
-       r="10.319340"
-       fy="35.127438"
-       fx="23.070683"
-       cy="35.127438"
-       cx="23.070683"
-       id="radialGradient2097"
-       xlink:href="#linearGradient2091" />
-  </defs>
-  <metadata
-     id="metadata6436">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-        <dc:date>2006-01-04</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://tango-project.org</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>add</rdf:li>
-            <rdf:li>plus</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <ellipse
-       ry="4.5910006"
-       rx="16.000002"
-       cy="36.646465"
-       cx="24.975922"
-       id="path1361"
-       style="opacity:0.10824741;fill:url(#radialGradient2097);fill-opacity:1;stroke:none;stroke-width:5.25468683;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-    <path
-       id="text1314"
-       d="m 29.374162,37.542682 v -9.02696 l 0.01114,-0.04018 v -6.995324 h -0.0022 l -0.0089,-9.96017 -4.565294,0.01116 -2.080467,0.04553 -5.868635,2.830125 -0.01961,8.166666 5.531084,-2.45098 0.0067,17.393347 z"
-       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.90107727px;line-height:125%;font-family:'Bitstream Vera Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#75a1d0;fill-opacity:1;stroke:#3465a4;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path7076"
-       d="m 28.358508,36.53392 v -9.034182 0 l 0.0089,-5.024429 v 0 -9.994974 L 23.372574,12.498195 17.859806,15 v 6 L 23.350002,18.593137 23.392894,32 l -0.01339,4.502672 z"
-       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.90107727px;line-height:125%;font-family:'Bitstream Vera Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;opacity:0.40860219;fill:url(#linearGradient4975);fill-opacity:1;stroke:url(#linearGradient7922);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path7914"
-       d="m 22.859806,25 c 0,1.9375 5.984375,-0.96875 5.984375,-0.03125 v -3 L 28.859806,22 l 0.02124,-9.982614 -2.521242,-0.0087 -3.45915,-0.0087 -5.54085,2.685751 -0.0098,6.989086 5.509804,-2.287582 V 24 Z"
-       style="opacity:0.31182796;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-  </g>
-</svg>
Binary file libgui/src/icons/zoom-out.png has changed
--- a/libgui/src/icons/zoom-out.svg	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,424 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg6431"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
-   sodipodi:docname="list-remove.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs6433">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective69" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2091">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2093" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2095" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2091"
-       id="radialGradient2097"
-       cx="23.070683"
-       cy="35.127438"
-       fx="23.070683"
-       fy="35.127438"
-       r="10.319340"
-       gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient7916">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7918" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.34020618;"
-         offset="1.0000000"
-         id="stop7920" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient8662">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop8664" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop8666" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient8662"
-       id="radialGradient1503"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,-1.018989e-13,16.87306)"
-       cx="24.837126"
-       cy="36.421127"
-       fx="24.837126"
-       fy="36.421127"
-       r="15.644737" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2847">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2849" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:0;"
-         offset="1"
-         id="stop2851" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2847"
-       id="linearGradient1488"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,-1.242480,40.08170)"
-       x1="37.128052"
-       y1="29.729605"
-       x2="37.065414"
-       y2="26.194071" />
-    <linearGradient
-       id="linearGradient2831">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2833" />
-      <stop
-         id="stop2855"
-         offset="0.33333334"
-         style="stop-color:#5b86be;stop-opacity:1;" />
-      <stop
-         style="stop-color:#83a8d8;stop-opacity:0;"
-         offset="1"
-         id="stop2835" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2831"
-       id="linearGradient1486"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.30498,-6.043298)"
-       x1="13.478554"
-       y1="10.612206"
-       x2="15.419417"
-       y2="19.115122" />
-    <linearGradient
-       id="linearGradient2380">
-      <stop
-         style="stop-color:#b9cfe7;stop-opacity:1"
-         offset="0"
-         id="stop2382" />
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1"
-         offset="1"
-         id="stop2384" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2682">
-      <stop
-         style="stop-color:#3977c3;stop-opacity:1;"
-         offset="0"
-         id="stop2684" />
-      <stop
-         style="stop-color:#89aedc;stop-opacity:0;"
-         offset="1"
-         id="stop2686" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2682"
-       id="linearGradient2688"
-       x1="36.713837"
-       y1="31.455952"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.77039,-5.765705)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2690">
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:1;"
-         offset="0"
-         id="stop2692" />
-      <stop
-         style="stop-color:#c4d7eb;stop-opacity:0;"
-         offset="1"
-         id="stop2694" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2690"
-       id="linearGradient2696"
-       x1="32.647972"
-       y1="30.748846"
-       x2="37.124462"
-       y2="24.842253"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-48.77039,-5.765705)" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2871">
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1;"
-         offset="0"
-         id="stop2873" />
-      <stop
-         style="stop-color:#3465a4;stop-opacity:1"
-         offset="1"
-         id="stop2875" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2402">
-      <stop
-         style="stop-color:#729fcf;stop-opacity:1;"
-         offset="0"
-         id="stop2404" />
-      <stop
-         style="stop-color:#528ac5;stop-opacity:1;"
-         offset="1"
-         id="stop2406" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797"
-       id="linearGradient1493"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient2797">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2799" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop2801" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2797"
-       id="linearGradient1491"
-       gradientUnits="userSpaceOnUse"
-       x1="5.9649176"
-       y1="26.048164"
-       x2="52.854097"
-       y2="26.048164" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient7179">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop7181" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0;"
-         offset="1"
-         id="stop7183" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2316">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2318" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:0.65979379;"
-         offset="1"
-         id="stop2320" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient1322">
-      <stop
-         id="stop1324"
-         offset="0.0000000"
-         style="stop-color:#729fcf" />
-      <stop
-         id="stop1326"
-         offset="1.0000000"
-         style="stop-color:#5187d6;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient1322"
-       id="linearGradient4975"
-       x1="34.892849"
-       y1="36.422989"
-       x2="45.918697"
-       y2="48.547989"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-18.01785,-13.57119)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7179"
-       id="linearGradient7185"
-       x1="13.435029"
-       y1="13.604306"
-       x2="22.374878"
-       y2="23.554308"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7179"
-       id="linearGradient7189"
-       gradientUnits="userSpaceOnUse"
-       x1="13.435029"
-       y1="13.604306"
-       x2="22.374878"
-       y2="23.554308"
-       gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,47.93934,50.02474)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2380"
-       id="linearGradient7180"
-       gradientUnits="userSpaceOnUse"
-       x1="62.513836"
-       y1="36.061237"
-       x2="15.984863"
-       y2="20.60858" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871"
-       id="linearGradient7182"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2402"
-       id="linearGradient7184"
-       gradientUnits="userSpaceOnUse"
-       x1="18.935766"
-       y1="23.667896"
-       x2="53.588622"
-       y2="26.649362" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2871"
-       id="linearGradient7186"
-       gradientUnits="userSpaceOnUse"
-       x1="46.834816"
-       y1="45.264122"
-       x2="45.380436"
-       y2="50.939667" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient7916"
-       id="linearGradient7922"
-       x1="16.874998"
-       y1="22.851799"
-       x2="27.900846"
-       y2="34.976799"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.10980392"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-123.27226"
-     inkscape:cy="26.474252"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1280"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false" />
-  <metadata
-     id="metadata6436">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Remove</dc:title>
-        <dc:date>2006-01-04</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://tango-project.org</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>remove</rdf:li>
-            <rdf:li>delete</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       style="font-size:59.901077px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#75a1d0;fill-opacity:1.0000000;stroke:#3465a4;stroke-width:1.0000004px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
-       d="M 27.514356,28.359472 L 39.633445,28.475543 L 39.633445,21.480219 L 27.523285,21.480219 L 20.502546,21.462362 L 8.5441705,21.489147 L 8.5084565,28.457686 L 20.511475,28.475543 L 27.514356,28.359472 z "
-       id="text1314"
-       sodipodi:nodetypes="ccccccccc" />
-    <path
-       style="font-size:59.901077px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;opacity:0.40860215;fill:url(#linearGradient4975);fill-opacity:1.0000000;stroke:url(#linearGradient7922);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
-       d="M 38.579429,27.484113 L 38.588357,22.475309 L 9.5267863,22.493166 L 9.5000003,27.466256 L 38.579429,27.484113 z "
-       id="path7076"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.31182796"
-       d="M 9.0000000,25.000000 C 9.0000000,26.937500 39.125000,24.062500 39.125000,25.000000 L 39.125000,22.000000 L 9.0000000,22.000000 L 9.0000000,25.000000 z "
-       id="path7914"
-       sodipodi:nodetypes="ccccc" />
-  </g>
-</svg>
--- a/libgui/src/m-editor/file-editor-interface.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/m-editor/file-editor-interface.h	Tue Nov 15 13:15:28 2022 -0800
@@ -98,7 +98,8 @@
                                     bool breakpoint_marker = false,
                                     bool insert = true,
                                     const QString& cond = "",
-                                    int index = -1) = 0;
+                                    int index = -1,
+                                    const QString& bookmarks = QString ()) = 0;
   };
 }
 
--- a/libgui/src/m-editor/file-editor-tab.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/m-editor/file-editor-tab.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -45,6 +45,7 @@
 #include <QPrintDialog>
 #include <QPushButton>
 #include <QScrollBar>
+#include <QSaveFile>
 #include <QStyle>
 #include <QTextBlock>
 #include <QTextCodec>
@@ -508,6 +509,9 @@
         update_lexer ();
       }
 
+    // set the window title to actual filename (not modified)
+    update_window_title (m_edit_area->isModified ());
+
     // update the file editor with current editing directory
     emit editor_state_changed (m_copy_available, m_is_octave_file,
                                m_edit_area->isModified ());
@@ -531,6 +535,14 @@
     return true;
   }
 
+  void file_editor_tab::enable_file_watcher (bool do_enable)
+  {
+    if (do_enable)
+      m_file_system_watcher.addPath (m_file_name);
+    else
+      m_file_system_watcher.removePath (m_file_name);
+  }
+
   // We cannot create a breakpoint when the file is modified
   // because the line number the editor is providing might
   // not match what Octave core is interpreting in the
@@ -895,7 +907,13 @@
     m_edit_area->setMarginsBackgroundColor (bgm);
     m_edit_area->setFoldMarginColors (bgm, fgm);
 
-    bgm = interpolate_color (bg, fg, 0.5, 0.1);
+    QColor current_line_bg
+      = settings->color_value (ed_highlight_current_line_color, mode);
+    if (current_line_bg == settings_color_no_change)
+       bgm = interpolate_color (bg, fg, 0.5, 0.1);  // It is the "auto" color
+     else
+       bgm = current_line_bg;  // Specific color given
+
     m_edit_area->setCaretLineBackgroundColor (bgm);
 
     // color indicator for highlighting all occurrences:
@@ -1026,7 +1044,7 @@
     if (ID != this)
       return;
 
-    if (m_edit_area->isModified () | ! valid_file_name ())
+    if (m_edit_area->isModified () || ! valid_file_name ())
       {
         save_file (m_file_name);  // save file dialog
 
@@ -1122,6 +1140,27 @@
     m_edit_area->setCursorPosition (prevline, 0);
   }
 
+
+  QString file_editor_tab::get_all_bookmarks ()
+  {
+    QString bmlist;
+    int line = 0;
+
+    while (line > -1)
+      {
+        line = m_edit_area->markerFindNext (line, (1 << marker::bookmark));
+        if (line > -1)
+          {
+            if (! bmlist.isEmpty ())
+              bmlist += ",";
+            bmlist += QString::number (line);
+            line++;   // search from next line, otherwise same line found again
+          }
+      }
+
+    return bmlist;
+  }
+
   void file_editor_tab::remove_bookmark (const QWidget *ID)
   {
     if (ID != this)
@@ -1844,9 +1883,8 @@
     QApplication::restoreOverrideCursor ();
 
     m_copy_available = false;     // no selection yet available
+    m_edit_area->setModified (false); // loaded file is not modified yet
     set_file_name (file_to_load);
-    update_window_title (false); // window title (no modification)
-    m_edit_area->setModified (false); // loaded file is not modified yet
 
     update_eol_indicator ();
 
@@ -2183,7 +2221,7 @@
                                       bool remove_on_success,
                                       bool restore_breakpoints)
   {
-    QFile file (file_to_save);
+    QSaveFile file (file_to_save);
 
     // stop watching file
     QStringList trackedFiles = m_file_system_watcher.files ();
@@ -2207,7 +2245,7 @@
 
     // open the file for writing (use QIODevice::ReadWrite for avoiding
     // truncating the previous file contents)
-    if (! file.open (QIODevice::ReadWrite))
+    if (! file.open (QIODevice::WriteOnly))
       {
         // Unsuccessful, begin watching file again if it was being
         // watched previously.
@@ -2248,37 +2286,47 @@
 
     out.flush ();
     QApplication::restoreOverrideCursor ();
-    file.resize (file.pos());
-    file.flush ();
-    file.close ();
-
-    // file exists now
-    QFileInfo file_info = QFileInfo (file);
-    QString full_file_to_save = file_info.canonicalFilePath ();
-
-    // save filename after closing file as set_file_name starts watching again
-    set_file_name (full_file_to_save);   // make absolute
-
-    // set the window title to actual filename (not modified)
-    update_window_title (false);
-
-    // file is save -> not modified, update encoding in statusbar
-    m_edit_area->setModified (false);
-    m_enc_indicator->setText (m_encoding);
-
-    emit tab_ready_to_close ();
-
-    if (remove_on_success)
+
+    // Finish writing by committing the changes to disk,
+    // where nothing is done when an error occurred while writing above
+    bool writing_ok = file.commit ();
+
+    if (writing_ok)
       {
-        emit tab_remove_request ();
-        return;  // Don't touch member variables after removal
+        // Writing was successful: file exists now
+        QFileInfo file_info = QFileInfo (file.fileName ());
+        QString full_file_to_save = file_info.canonicalFilePath ();
+
+        // file is save -> not modified, update encoding in statusbar
+        m_edit_area->setModified (false);
+        m_enc_indicator->setText (m_encoding);
+
+        // save filename after closing file as set_file_name starts watching again
+        set_file_name (full_file_to_save);   // make absolute
+
+        emit tab_ready_to_close ();
+
+        if (remove_on_success)
+          {
+            emit tab_remove_request ();
+            return;  // Don't touch member variables after removal
+          }
+
+        // Attempt to restore the breakpoints if that is desired.
+        // This is only allowed if the tab is not closing since changing
+        // breakpoints would reopen the tab in this case.
+        if (restore_breakpoints)
+          check_restore_breakpoints ();
       }
-
-    // Attempt to restore the breakpoints if that is desired.
-    // This is only allowed if the tab is not closing since changing
-    // breakpoints would reopen the tab in this case.
-    if (restore_breakpoints)
-      check_restore_breakpoints ();
+    else
+      {
+        QMessageBox::critical (nullptr,
+                               tr ("Octave Editor"),
+                               tr ("The changes could not be saved to the file\n"
+                                   "%1")
+                                   .arg (file.fileName ())
+                              );
+      }
   }
 
   void file_editor_tab::save_file_as (bool remove_on_success)
--- a/libgui/src/m-editor/file-editor-tab.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/m-editor/file-editor-tab.h	Tue Nov 15 13:15:28 2022 -0800
@@ -64,6 +64,8 @@
     bool conditional_close (void);
 
     void update_breakpoints ();
+    void set_file_name (const QString& fileName);
+    void enable_file_watcher (bool do_enable);
 
     QString file_name (void) const { return m_file_name; }
     QString encoding (void) const { return m_encoding; }
@@ -255,7 +257,6 @@
   protected:
 
     void closeEvent (QCloseEvent *event);
-    void set_file_name (const QString& fileName);
 
   private:
 
@@ -275,8 +276,12 @@
     void update_lexer (void);
 
     void show_dialog (QDialog *dlg, bool modal);
+
   public:
+
     int check_file_modified (bool remove = false);
+    QString get_all_bookmarks (void);
+
   private:
     void do_comment_selected_text (bool comment, bool input_str = false);
     void do_indent_selected_text (bool indent);
--- a/libgui/src/m-editor/file-editor.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/m-editor/file-editor.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -337,12 +337,16 @@
     QStringList session_lines
       = settings->value (ed_session_lines).toStringList ();
 
+    QStringList session_bookmarks
+      = settings->value (ed_session_bookmarks).toStringList ();
+
     // fill a list of the struct and sort it (depending on index)
     QList<session_data> s_data;
 
     bool do_encoding = (session_encodings.count () == sessionFileNames.count ());
     bool do_index = (session_index.count () == sessionFileNames.count ());
     bool do_lines = (session_lines.count () == sessionFileNames.count ());
+    bool do_bookmarks = (session_bookmarks.count () == sessionFileNames.count ());
 
     for (int n = 0; n < sessionFileNames.count (); ++n)
       {
@@ -351,13 +355,15 @@
           continue;
 
         session_data item = { 0, -1, sessionFileNames.at (n),
-                              QString (), QString ()};
+                              QString (), QString (), QString ()};
         if (do_lines)
           item.line = session_lines.at (n).toInt ();
         if (do_index)
           item.index = session_index.at (n).toInt ();
         if (do_encoding)
           item.encoding = session_encodings.at (n);
+        if (do_bookmarks)
+          item.bookmarks = session_bookmarks.at (n);
 
         s_data << item;
       }
@@ -367,7 +373,8 @@
     // finally open the files with the desired encoding in the desired order
     for (int n = 0; n < s_data.count (); ++n)
       request_open_file (s_data.at (n).file_name, s_data.at (n).encoding,
-                         s_data.at (n).line);
+                         s_data.at (n).line, false, false, true, "", -1,
+                         s_data.at (n).bookmarks);
   }
 
   void file_editor::activate (void)
@@ -440,6 +447,7 @@
     QStringList fet_encodings;
     QStringList fet_index;
     QStringList fet_lines;
+    QStringList fet_bookmarks;
 
     std::list<file_editor_tab *> editor_tab_lst = m_tab_widget->tab_list ();
 
@@ -460,6 +468,8 @@
             int l, c;
             editor_tab->qsci_edit_area ()->getCursorPosition (&l, &c);
             fet_lines.append (index.setNum (l + 1));
+
+            fet_bookmarks.append (editor_tab->get_all_bookmarks ());
           }
       }
 
@@ -467,6 +477,7 @@
     settings->setValue (ed_session_enc.key, fet_encodings);
     settings->setValue (ed_session_ind.key, fet_index);
     settings->setValue (ed_session_lines.key, fet_lines);
+    settings->setValue (ed_session_bookmarks.key, fet_bookmarks);
     settings->sync ();
   }
 
@@ -676,6 +687,11 @@
        {
          // INTERPRETER THREAD
 
+         // Act as though this action was entered at the command propmt
+         // so that the interpreter will check for updated file time
+         // stamps.
+         Vlast_prompt_time.stamp ();
+
          tree_evaluator& tw = interp.get_evaluator ();
 
          if (tw.in_debug_repl ())
@@ -1167,7 +1183,7 @@
   {
     // Clear old list of file data and declare a structure for file data
     m_tmp_closed_files.clear ();
-    session_data f_data;
+    removed_file_data f_data;
 
     // Preprocessing old name(s)
     QString old_name_clean = old_name.trimmed ();
@@ -1201,22 +1217,12 @@
 
             if (editor_tab)
               {
-                // Get index and line.
-
-                f_data.encoding = editor_tab->encoding ();
-                f_data.index = m_tab_widget->indexOf (editor_tab);
-                int l, c;
-                editor_tab->qsci_edit_area ()->getCursorPosition (&l, &c);
-                f_data.line = l + 1;
-
-                // Close it silently
-                m_no_focus = true;  // Remember for not focussing editor
-                editor_tab->file_has_changed (QString (), true);  // Close the tab
-                m_no_focus = false;  // Back to normal
-
-                // For reloading old file if error while removing
-                f_data.file_name = old_names.at (i);
-                // For reloading new file (if new_file is not empty)
+
+                editor_tab->enable_file_watcher (false);
+
+                // For re-enabling tracking if error while removing/renaming
+                f_data.editor_tab = editor_tab;
+                // For renaming into new file (if new_file is not empty)
                 if (new_is_dir)
                   {
                     std::string ndir = new_name.toStdString ();
@@ -1239,27 +1245,24 @@
   {
     m_no_focus = true;  // Remember for not focussing editor
 
-    // Loop over all files that have to be reloaded.  Start at the end of the
+    // Loop over all files that have to be handled.  Start at the end of the
     // list, otherwise the stored indexes are not correct.
     for (int i = m_tmp_closed_files.count () - 1; i >= 0; i--)
       {
-        // Load old or new file
         if (load_new)
           {
-            if (! m_tmp_closed_files.at (i).new_file_name.isEmpty ())
-              request_open_file (m_tmp_closed_files.at (i).new_file_name,
-                                 m_tmp_closed_files.at (i).encoding,
-                                 m_tmp_closed_files.at (i).line,
-                                 false, false, true, "",
-                                 m_tmp_closed_files.at (i).index);
+            // Close file (remove) or rename into new file (rename)
+            if (m_tmp_closed_files.at (i).new_file_name.isEmpty ())
+              m_tmp_closed_files.at (i).editor_tab->file_has_changed (QString (), true);
+            else
+              m_tmp_closed_files.at (i).editor_tab->set_file_name (
+                                    m_tmp_closed_files.at (i).new_file_name);
           }
         else
           {
-            request_open_file (m_tmp_closed_files.at (i).file_name,
-                               m_tmp_closed_files.at (i).encoding,
-                               m_tmp_closed_files.at (i).line,
-                               false, false, true, "",
-                               m_tmp_closed_files.at (i).index);
+            // Something went wrong while renaming or removing:
+            // Leave everything as it is but reactivate tracking
+            m_tmp_closed_files.at (i).editor_tab->enable_file_watcher (true);
           }
 
       }
@@ -1329,10 +1332,13 @@
     // in several Qt versions (https://bugreports.qt.io/browse/QTBUG-61092)
     if (! rotated)
       {
+        QString icon = global_icon_paths.at (ICON_THEME_OCTAVE) + "widget-close.png";
+
         QString close_button_css_mac (
             "QTabBar::close-button"
-            "  { width: 6px; image: url(:/actions/icons/widget-close.png);"
-            "    subcontrol-position: button; }\n"
+            " { image: url(" + icon + ");"
+            " padding: 4px;"
+            "   subcontrol-position: bottom; }\n"
             "QTabBar::close-button:hover"
             "  { background-color: #cccccc; }");
 
@@ -1540,7 +1546,8 @@
                                        const QString& encoding,
                                        int line, bool debug_pointer,
                                        bool breakpoint_marker, bool insert,
-                                       const QString& cond, int index)
+                                       const QString& cond, int index,
+                                       const QString& bookmarks)
   {
     resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
     gui_settings *settings = rmgr.get_settings ();
@@ -1716,6 +1723,17 @@
                   }
               }
 
+            if (! bookmarks.isEmpty ())
+              {
+                // Restore bookmarks
+                for (const auto& bms : bookmarks.split (','))
+                  {
+                    int bm = bms.toInt ();
+                    if (fileEditorTab)
+                      fileEditorTab->qsci_edit_area ()->markerAdd (bm, marker::bookmark);
+                  }
+              }
+
             if (! ((breakpoint_marker || debug_pointer) && is_editor_console_tabbed ()))
               {
                 // update breakpoint pointers, really show editor
@@ -2215,15 +2233,16 @@
     view_menu->addSeparator ();
 
     m_zoom_in_action
-      = add_action (view_menu, rmgr.icon ("zoom-in"), tr ("Zoom &In"),
+      = add_action (view_menu, rmgr.icon ("view-zoom-in"), tr ("Zoom &In"),
                     SLOT (zoom_in (bool)));
 
     m_zoom_out_action
-      = add_action (view_menu, rmgr.icon ("zoom-out"), tr ("Zoom &Out"),
+      = add_action (view_menu, rmgr.icon ("view-zoom-out"), tr ("Zoom &Out"),
                     SLOT (zoom_out (bool)));
 
     m_zoom_normal_action
-      = add_action (view_menu, tr ("&Normal Size"), SLOT (zoom_normal (bool)));
+      = add_action (view_menu, rmgr.icon ("view-zoom-original"), tr ("&Normal Size"),
+                    SLOT (zoom_normal (bool)));
 
     view_menu->addSeparator ();
 
@@ -2379,7 +2398,6 @@
              this, &file_editor::active_tab_changed);
 
     resize (500, 400);
-    setWindowIcon (QIcon (":/actions/icons/logo.png"));
     set_title (tr ("Editor"));
 
     check_actions ();
@@ -2704,7 +2722,7 @@
                                        const QString& new_name)
   {
     QDir old_dir (old_name);
-    session_data f_data;
+    removed_file_data f_data;
 
     std::list<file_editor_tab *> editor_tab_lst = m_tab_widget->tab_list ();
 
@@ -2731,52 +2749,39 @@
             && (rel_path_to_file.left (3) != QString ("../")))
           {
             // The currently considered file is included in the
-            // removed/renamed diectory: Delete it.
-            m_no_focus = true;  // Remember for not focussing editor
-
+            // removed/renamed diectory: remeber it
             if (editor_tab)
               {
-                // Get index and line
-                int l, c;
-                editor_tab->qsci_edit_area ()->getCursorPosition (&l, &c);
-                f_data.line = l + 1;
-                f_data.index = m_tab_widget->indexOf (editor_tab);
-                // Close
-                editor_tab->file_has_changed (QString (), true);
-              }
-            m_no_focus = false;  // Back to normal
-
-            // Store file for possible later reload
-            f_data.file_name = file_name;
-
-            // Add the new file path and the encoding for later reloading
-            // if new_name is given
-            if (! new_name.isEmpty ())
-              {
-                QDir new_dir (new_name);
-                QString append_to_new_dir;
-                if (new_dir.exists ())
+                editor_tab->enable_file_watcher (false);
+                f_data.editor_tab = editor_tab;
+
+                // Add the new file path and the encoding for later reloading
+                // if new_name is given
+                if (! new_name.isEmpty ())
                   {
-                    // The new directory already exists (movefile was used).
-                    // This means, we have to add the name (not the path)
-                    // of the old dir and the relative path to the file
-                    // to new dir.
-                    append_to_new_dir
-                      = old_dir.dirName () + "/" + rel_path_to_file;
+                    QDir new_dir (new_name);
+                    QString append_to_new_dir;
+                    if (new_dir.exists ())
+                      {
+                        // The new directory already exists (movefile was used).
+                        // This means, we have to add the name (not the path)
+                        // of the old dir and the relative path to the file
+                        // to new dir.
+                        append_to_new_dir
+                          = old_dir.dirName () + "/" + rel_path_to_file;
+                      }
+                    else
+                      append_to_new_dir = rel_path_to_file;
+
+                    f_data.new_file_name
+                      = new_dir.absoluteFilePath (append_to_new_dir);
                   }
                 else
-                  append_to_new_dir = rel_path_to_file;
-
-                f_data.new_file_name
-                  = new_dir.absoluteFilePath (append_to_new_dir);
+                  f_data.new_file_name = ""; // no new name, just removing this file
+
+                // Store data in list for later reloading
+                m_tmp_closed_files << f_data;
               }
-            else
-              f_data.new_file_name = ""; // no new name, just removing this file
-
-            f_data.encoding = editor_tab->encoding (); // store the encoding
-
-            // Store data in list for later reloading
-            m_tmp_closed_files << f_data;
           }
       }
   }
--- a/libgui/src/m-editor/file-editor.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/m-editor/file-editor.h	Tue Nov 15 13:15:28 2022 -0800
@@ -82,6 +82,7 @@
       QString file_name;
       QString new_file_name;
       QString encoding;
+      QString bookmarks;
 
       bool operator < (const session_data& other) const
       {
@@ -89,6 +90,12 @@
       }
     };
 
+    struct removed_file_data
+    {
+      file_editor_tab *editor_tab;
+      QString new_file_name;
+    };
+
     file_editor (QWidget *p, base_qobject& oct_qobj);
 
     ~file_editor (void) = default;
@@ -307,7 +314,8 @@
                             const QString& encoding = QString (),
                             int line = -1, bool debug_pointer = false,
                             bool breakpoint_marker = false, bool insert = true,
-                            const QString& cond = "", int index = -1);
+                            const QString& cond = "", int index = -1,
+                            const QString& bookmarks = QString ());
     void request_preferences (bool);
     void request_styles_preferences (bool);
 
@@ -487,7 +495,7 @@
     QPointer<find_dialog> m_find_dialog;
 
     // List of data on temporarily closed files for later reloading.
-    QList<session_data> m_tmp_closed_files;
+    QList<removed_file_data> m_tmp_closed_files;
   };
 }
 
--- a/libgui/src/m-editor/find-dialog.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/m-editor/find-dialog.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -94,7 +94,6 @@
       m_in_sel (false), m_sel_beg (-1), m_sel_end (-1)
   {
     setWindowTitle (tr ("Editor: Find and Replace"));
-    setWindowIcon (QIcon (":/actions/icons/find.png"));
 
     m_search_label = new QLabel (tr ("Find &what:"));
     m_search_line_edit = new QComboBox (this);
--- a/libgui/src/m-editor/octave-qscintilla.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/m-editor/octave-qscintilla.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -948,8 +948,11 @@
 
              // Remove line and column from first line of error message only
              // if it is related to the tmp itself, i.e. only if the
-             // the error stack size is 0 or 1
-             if (stack.size () < 2)
+             // the error stack size is 0, 1, or, if in debug mode, 2
+             size_t max_stack_size = 1;
+             if (dbg)
+               max_stack_size = 2;
+             if (stack.size () <= max_stack_size)
                {
                  QRegExp rx ("source: error sourcing file [^\n]*$");
                  if (new_msg.contains (rx))
@@ -984,9 +987,12 @@
                    }
                }
 
-             // Drop first stack level, i.e. temporary function file
+             // Drop first stack level, which is the temporary function file,
+             // or, if in debug mode, drop first two stack levels
              if (stack.size () > 0)
                stack.pop_back ();
+             if (dbg && (stack.size () > 0))
+               stack.pop_back ();
 
              // Clean up before throwing the modified error.
              emit ctx_menu_run_finished_signal (show_dbg_file, err_line,
@@ -1035,7 +1041,7 @@
     rmgr.remove_tmp_file (tmp_hist);
 
     emit interpreter_event
-      ([this, dbg, auto_repeat] (interpreter& interp)
+      ([=] (interpreter& interp)
        {
          // INTERPRETER THREAD
          if (dbg)
--- a/libgui/src/main-window.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/main-window.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -58,8 +58,8 @@
 
 #if defined (HAVE_QSCINTILLA)
 #  include "file-editor.h"
+#  include "command-widget.h"
 #endif
-#include "command-widget.h"
 #include "gui-preferences-cs.h"
 #include "gui-preferences-dw.h"
 #include "gui-preferences-ed.h"
@@ -135,6 +135,8 @@
 
     setObjectName (gui_obj_name_main_window);
 
+    rmgr.config_icon_theme ();
+
     rmgr.update_network_settings ();
 
     // We provide specific terminal capabilities, so ensure that
@@ -170,6 +172,7 @@
     QApplication *qapp = m_octave_qobj.qapplication ();
 
     m_default_style = qapp->style ()->objectName ();
+    m_default_palette = qapp->palette ();
 
     gui_settings *settings = rmgr.get_settings ();
 
@@ -279,6 +282,11 @@
         connect (cmd_widget, &QTerminal::clear_command_window_request,
                  this, &main_window::handle_clear_command_window_request);
       }
+    else
+      {
+        connect (this, &main_window::execute_command_signal,
+                 m_command_window, &terminal_dock_widget::execute_command_signal);
+      }
   }
 
   void main_window::adopt_documentation_widget (void)
@@ -828,7 +836,6 @@
 
     // Wait for worker to suspend
     qt_link->lock ();
-
     // Close the file if opened
 #if defined (HAVE_QSCINTILLA)
     m_editor_window->handle_file_remove (o, n);
@@ -855,7 +862,7 @@
 
   void main_window::open_octave_packages_page (void)
   {
-    QDesktopServices::openUrl (QUrl ("https://octave.org/packages.html"));
+    QDesktopServices::openUrl (QUrl ("https://packages.octave.org/index.html"));
   }
 
   void main_window::open_contribute_page (void)
@@ -910,32 +917,28 @@
     if (preferred_style == global_style.def.toString ())
       preferred_style = m_default_style;
 
-    QStyle *new_style = QStyleFactory::create (preferred_style);
-    if (new_style)
+    QApplication* qapp = m_octave_qobj.qapplication();
+
+    if (preferred_style == global_extra_styles.at (EXTRA_STYLE_FUSION_DARK))
       {
-        QApplication *qapp = m_octave_qobj.qapplication ();
-
-        qapp->setStyle (new_style);
+        QStyle *new_style = QStyleFactory::create (QStringLiteral("Fusion"));
+        if (new_style)
+          qapp->setStyle (new_style);
+        qapp->setPalette (getFusionDarkPalette());
+        qapp->setStyleSheet ("QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }");
+      }
+    else
+      {
+        QStyle *new_style = QStyleFactory::create (preferred_style);
+        if (new_style)
+          {
+            qapp->setPalette (m_default_palette);
+            qapp->setStyle (new_style);
+          }
       }
 
     // the widget's icons (when floating)
-    QString icon_set
-      = settings->value (dw_icon_set).toString ();
-
-    int count = 0;
-    int icon_set_found = 0; // default
-
-    while (! dw_icon_set_names[count].name.isEmpty ())
-      {
-        // while not end of data
-        if (dw_icon_set_names[count].name == icon_set)
-          {
-            // data of desired icon set found
-            icon_set_found = count;
-            break;
-          }
-        count++;
-      }
+    QString icon_set = settings->value (dw_icon_set).toString ();
 
     QString icon;
     for (auto *widget : dock_widget_list ())
@@ -944,8 +947,8 @@
         if (! name.isEmpty ())
           {
             // if child has a name
-            icon = dw_icon_set_names[icon_set_found].path; // prefix | octave-logo
-            if (dw_icon_set_names[icon_set_found].name != "NONE")
+            icon = dw_icon_set_names[icon_set];
+            if (icon_set != "NONE")
               icon += name + ".png"; // add widget name and ext.
             widget->setWindowIcon (QIcon (icon));
           }
@@ -1012,6 +1015,33 @@
 
   }
 
+  QPalette main_window::getFusionDarkPalette()
+  {
+    QPalette darkPalette;
+    darkPalette.setColor(QPalette::Window, QColor(53, 53, 53));
+    darkPalette.setColor(QPalette::WindowText, Qt::white);
+    darkPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor(127, 127, 127));
+    darkPalette.setColor(QPalette::Base, QColor(42, 42, 42));
+    darkPalette.setColor(QPalette::AlternateBase, QColor(66, 66, 66));
+    darkPalette.setColor(QPalette::ToolTipBase, Qt::white);
+    darkPalette.setColor(QPalette::ToolTipText, Qt::white);
+    darkPalette.setColor(QPalette::Text, Qt::white);
+    darkPalette.setColor(QPalette::Disabled, QPalette::Text, QColor(127, 127, 127));
+    darkPalette.setColor(QPalette::Dark, QColor(35, 35, 35));
+    darkPalette.setColor(QPalette::Shadow, QColor(20, 20, 20));
+    darkPalette.setColor(QPalette::Button, QColor(53, 53, 53));
+    darkPalette.setColor(QPalette::ButtonText, Qt::white);
+    darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(127, 127, 127));
+    darkPalette.setColor(QPalette::BrightText, Qt::red);
+    darkPalette.setColor(QPalette::Link, QColor(42, 130, 218));
+    darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218));
+    darkPalette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(80, 80, 80));
+    darkPalette.setColor(QPalette::HighlightedText, Qt::white);
+    darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(127, 127, 127));
+
+    return darkPalette;
+  }
+
   void main_window::prepare_to_exit (void)
   {
     // Find files dialog is constructed dynamically, not at time of main_window
@@ -1116,19 +1146,26 @@
 
   void main_window::execute_command_in_terminal (const QString& command)
   {
-    emit interpreter_event
-      ([=] (void)
-       {
-         // INTERPRETER THREAD
-
-         std::string pending_input = command_editor::get_current_line ();
-
-         command_editor::set_initial_input (pending_input);
-         command_editor::replace_line (command.toStdString ());
-         command_editor::redisplay ();
-         command_editor::interrupt_event_loop ();
-         command_editor::accept_line ();
-       });
+    if (m_octave_qobj.experimental_terminal_widget ())
+      {
+        emit execute_command_signal (command);
+      }
+    else
+      {
+        emit interpreter_event
+          ([=] (void)
+           {
+             // INTERPRETER THREAD
+
+             std::string pending_input = command_editor::get_current_line ();
+
+             command_editor::set_initial_input (pending_input);
+             command_editor::replace_line (command.toStdString ());
+             command_editor::redisplay ();
+             command_editor::interrupt_event_loop ();
+             command_editor::accept_line ();
+           });
+      }
 
     focus_console_after_command ();
   }
@@ -1555,24 +1592,20 @@
         // setting the geometry to the max. available geometry. However, on
         // X11, the available geometry (excluding task bar etc.) is equal to
         // the total geometry leading to a full screen mode without window
-        // decorations. This in turn can be avoided by reducing the max.
-        // size by a few pixels.
-
-        // Get available geometry for current screen.
+        // decorations. This in turn can be avoided by explicitly adding
+        // a title bar in the window flags.
+
+        // Get available geometry for current screen and set this
+        // window's geometry to it.
         QScreen *s = windowHandle ()->screen ();
         QRect av_geom = s->availableGeometry ();
-
-        QList<QScreen *> screen_list = QGuiApplication::screens ();
-        if (screen_list.length () > 1)
-          {
-            // If we have more than one monitor and available and total
-            // geometry are the same, reduce this too large geometry
-            QRect new_geom (av_geom.x () + 1, av_geom.y () + 1,
-                            av_geom.width ()-2, av_geom.height ()-2);
-            setGeometry (new_geom);
-          }
-        else
-          setGeometry (av_geom);  // Set (correct) available geometry
+        setGeometry (av_geom);  // Set (correct) available geometry
+
+        // Force full title bar
+        setWindowFlags(Qt::WindowTitleHint
+                       | Qt::WindowMinMaxButtonsHint
+                       | Qt::WindowSystemMenuHint
+                       | Qt::WindowCloseButtonHint);
       }
 
     if (! restoreState (settings->value (mw_state).toByteArray ()))
@@ -1781,6 +1814,7 @@
           });
       }
 
+    m_command_window->init_command_prompt ();
     focus_command_window ();  // make sure that the command window has focus
   }
 
@@ -2020,7 +2054,7 @@
 
   void main_window::construct (void)
   {
-    setWindowIcon (QIcon (":/actions/icons/logo.png"));
+    setWindowIcon (QIcon (dw_icon_set_names["NONE"]));
 
     interpreter_qobject *interp_qobj = m_octave_qobj.interpreter_qobj ();
 
@@ -2592,7 +2626,7 @@
     m_main_tool_bar->addWidget (m_current_directory_combo_box);
     resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
     QAction *current_dir_up
-      = m_main_tool_bar->addAction (rmgr.icon ("go-up"),
+      = m_main_tool_bar->addAction (rmgr.icon ("folder-up", false, "go-up"),
                                     tr ("One directory up"));
     QAction *current_dir_search
       = m_main_tool_bar->addAction (rmgr.icon ("folder"),
--- a/libgui/src/main-window.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/main-window.h	Tue Nov 15 13:15:28 2022 -0800
@@ -129,6 +129,8 @@
     void interpreter_event (const fcn_callback& fcn);
     void interpreter_event (const meth_callback& meth);
 
+    void execute_command_signal (const QString& command);
+
   public slots:
 
     void focus_changed (QWidget *w_old, QWidget *w_new);
@@ -153,10 +155,10 @@
     void open_donate_page (void);
     void process_settings_dialog_request (const QString& desired_tab
                                           = QString ());
-
     void show_about_octave (void);
     void notice_settings (const gui_settings *settings,
                           bool update_by_worker = false);
+    QPalette getFusionDarkPalette();
     void prepare_to_exit (void);
     void go_to_previous_widget (void);
     void reset_windows (void);
@@ -309,6 +311,7 @@
     QString m_default_encoding;
 
     QString m_default_style;
+    QPalette m_default_palette;
 
     //! Toolbar.
 
--- a/libgui/src/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -1,113 +1,254 @@
 octave_gui_ICONS = \
-  %reldir%/icons/applications-system.png \
-  %reldir%/icons/bookmark-new.png \
-  %reldir%/icons/bottom_left_corner.png \
-  %reldir%/icons/bottom_right_corner.png \
-  %reldir%/icons/bottom_side.png \
-  %reldir%/icons/bp-next.png \
-  %reldir%/icons/bp-prev.png \
-  %reldir%/icons/bp-rm-all.png \
-  %reldir%/icons/bp-toggle.png \
-  %reldir%/icons/circle.png \
-  %reldir%/icons/cross.png \
-  %reldir%/icons/db-cont.png \
-  %reldir%/icons/db-step-in.png \
-  %reldir%/icons/db-step-out.png \
-  %reldir%/icons/db-step.png \
-  %reldir%/icons/db-stop.png \
-  %reldir%/icons/dialog-error.png \
-  %reldir%/icons/dialog-information.png \
-  %reldir%/icons/dialog-warning.png \
-  %reldir%/icons/document-new.png \
-  %reldir%/icons/document-open.png \
-  %reldir%/icons/document-print.png \
-  %reldir%/icons/document-save.png \
-  %reldir%/icons/document-save-as.png \
-  %reldir%/icons/edit-copy.png \
-  %reldir%/icons/edit-cut.png \
-  %reldir%/icons/edit-delete.png \
-  %reldir%/icons/edit-find.png \
-  %reldir%/icons/edit-find-replace.png \
-  %reldir%/icons/edit-paste.png \
-  %reldir%/icons/edit-redo.png \
-  %reldir%/icons/edit-undo.png \
-  %reldir%/icons/figure-axes.png \
-  %reldir%/icons/figure-grid.png \
-  %reldir%/icons/figure-pan.png \
-  %reldir%/icons/figure-rotate.png \
-  %reldir%/icons/figure-text.png \
-  %reldir%/icons/figure-zoom-in.png \
-  %reldir%/icons/figure-zoom-original.png \
-  %reldir%/icons/figure-zoom-out.png \
-  %reldir%/icons/fleur.png \
-  %reldir%/icons/folder.png \
-  %reldir%/icons/folder-new.png \
-  %reldir%/icons/go-down.png \
-  %reldir%/icons/go-first.png \
-  %reldir%/icons/go-home.png \
-  %reldir%/icons/go-last.png \
-  %reldir%/icons/go-next.png \
-  %reldir%/icons/go-previous.png \
-  %reldir%/icons/go-up.png \
-  %reldir%/icons/graphic_logo_DocumentationDockWidget.png \
-  %reldir%/icons/graphic_logo_Figure.png \
-  %reldir%/icons/graphic_logo_FileEditor.png \
-  %reldir%/icons/graphic_logo_FilesDockWidget.png \
-  %reldir%/icons/graphic_logo_HistoryDockWidget.png \
-  %reldir%/icons/graphic_logo_NewsDockWidget.png \
-  %reldir%/icons/graphic_logo_TerminalDockWidget.png \
-  %reldir%/icons/graphic_logo_WorkspaceView.png \
-  %reldir%/icons/graphic_logo_ReleaseWidget.png \
-  %reldir%/icons/graphic_logo_VariableEditor.png \
-  %reldir%/icons/graphic_logo_DocumentationDockWidget.svg \
-  %reldir%/icons/graphic_logo_FileEditor.svg \
-  %reldir%/icons/graphic_logo_FilesDockWidget.svg \
-  %reldir%/icons/graphic_logo_HistoryDockWidget.svg \
-  %reldir%/icons/graphic_logo_NewsDockWidget.svg \
-  %reldir%/icons/graphic_logo_TerminalDockWidget.svg \
-  %reldir%/icons/graphic_logo_WorkspaceView.svg \
-  %reldir%/icons/graphic_logo_ReleaseWidget.svg \
-  %reldir%/icons/graphic_logo_VariableEditor.svg \
-  %reldir%/icons/hand2.png \
-  %reldir%/icons/icons_license \
-  %reldir%/icons/left_side.png \
-  %reldir%/icons/letter_logo_DocumentationDockWidget.png \
-  %reldir%/icons/letter_logo_FileEditor.png \
-  %reldir%/icons/letter_logo_FilesDockWidget.png \
-  %reldir%/icons/letter_logo_HistoryDockWidget.png \
-  %reldir%/icons/letter_logo_NewsDockWidget.png \
-  %reldir%/icons/letter_logo_TerminalDockWidget.png \
-  %reldir%/icons/letter_logo_WorkspaceView.png \
-  %reldir%/icons/letter_logo_ReleaseWidget.png \
-  %reldir%/icons/letter_logo_VariableEditor.png \
-  %reldir%/icons/letter_logo_DocumentationDockWidget.svg \
-  %reldir%/icons/letter_logo_FileEditor.svg \
-  %reldir%/icons/letter_logo_FilesDockWidget.svg \
-  %reldir%/icons/letter_logo_HistoryDockWidget.svg \
-  %reldir%/icons/letter_logo_NewsDockWidget.svg \
-  %reldir%/icons/letter_logo_TerminalDockWidget.svg \
-  %reldir%/icons/letter_logo_WorkspaceView.svg \
-  %reldir%/icons/letter_logo_ReleaseWidget.svg \
-  %reldir%/icons/letter_logo_VariableEditor.svg \
-  %reldir%/icons/logo.png \
-  %reldir%/icons/plot-xy-curve.png \
-  %reldir%/icons/preferences-system.png \
-  %reldir%/icons/right_side.png \
-  %reldir%/icons/system-run.png \
-  %reldir%/icons/top_left_corner.png \
-  %reldir%/icons/top_right_corner.png \
-  %reldir%/icons/top_side.png \
-  %reldir%/icons/user-home.png \
-  %reldir%/icons/view-refresh.png \
-  %reldir%/icons/widget-close.png \
-  %reldir%/icons/widget-dock.png \
-  %reldir%/icons/widget-undock.png \
-  %reldir%/icons/widget-close-light.png \
-  %reldir%/icons/widget-dock-light.png \
-  %reldir%/icons/widget-undock-light.png \
-  %reldir%/icons/zoom-in.png \
-  %reldir%/icons/zoom-original.png \
-  %reldir%/icons/zoom-out.png
+  %reldir%/icons/license.md \
+  %reldir%/icons/cursors/bottom_left_corner.png \
+  %reldir%/icons/cursors/bottom_right_corner.png \
+  %reldir%/icons/cursors/bottom_side.png \
+  %reldir%/icons/cursors/circle.png \
+  %reldir%/icons/cursors/cross.png \
+  %reldir%/icons/cursors/fleur.png \
+  %reldir%/icons/cursors/hand2.png \
+  %reldir%/icons/cursors/left_side.png \
+  %reldir%/icons/cursors/right_side.png \
+  %reldir%/icons/cursors/top_left_corner.png \
+  %reldir%/icons/cursors/top_right_corner.png \
+  %reldir%/icons/cursors/top_side.png \
+  %reldir%/icons/octave/index.theme \
+  %reldir%/icons/octave/128x128/applications-system.png \
+  %reldir%/icons/octave/128x128/bp-next.png \
+  %reldir%/icons/octave/128x128/bp-prev.png \
+  %reldir%/icons/octave/128x128/bp-rm-all.png \
+  %reldir%/icons/octave/128x128/bp-toggle.png \
+  %reldir%/icons/octave/128x128/bookmark-new.png \
+  %reldir%/icons/octave/128x128/db-cont.png \
+  %reldir%/icons/octave/128x128/db-step-in.png \
+  %reldir%/icons/octave/128x128/db-step-out.png \
+  %reldir%/icons/octave/128x128/db-step.png \
+  %reldir%/icons/octave/128x128/db-stop.png \
+  %reldir%/icons/octave/128x128/dialog-information.png \
+  %reldir%/icons/octave/128x128/dialog-error.png \
+  %reldir%/icons/octave/128x128/document-new.png \
+  %reldir%/icons/octave/128x128/document-open.png \
+  %reldir%/icons/octave/128x128/document-print.png \
+  %reldir%/icons/octave/128x128/document-save-as.png \
+  %reldir%/icons/octave/128x128/document-save.png \
+  %reldir%/icons/octave/128x128/edit-copy.png \
+  %reldir%/icons/octave/128x128/edit-cut.png \
+  %reldir%/icons/octave/128x128/edit-find-replace.png \
+  %reldir%/icons/octave/128x128/edit-find.png \
+  %reldir%/icons/octave/128x128/edit-paste.png \
+  %reldir%/icons/octave/128x128/edit-redo.png \
+  %reldir%/icons/octave/128x128/edit-undo.png \
+  %reldir%/icons/octave/128x128/figure-axes.png \
+  %reldir%/icons/octave/128x128/figure-grid.png \
+  %reldir%/icons/octave/128x128/figure-pan.png \
+  %reldir%/icons/octave/128x128/figure-rotate.png \
+  %reldir%/icons/octave/128x128/figure-text.png \
+  %reldir%/icons/octave/128x128/figure-zoom-in.png \
+  %reldir%/icons/octave/128x128/figure-zoom-original.png \
+  %reldir%/icons/octave/128x128/figure-zoom-out.png \
+  %reldir%/icons/octave/128x128/folder-new.png \
+  %reldir%/icons/octave/128x128/folder-settings.png \
+  %reldir%/icons/octave/128x128/folder-up.png \
+  %reldir%/icons/octave/128x128/folder.png \
+  %reldir%/icons/octave/128x128/go-down.png \
+  %reldir%/icons/octave/128x128/go-first.png \
+  %reldir%/icons/octave/128x128/go-home.png \
+  %reldir%/icons/octave/128x128/go-last.png \
+  %reldir%/icons/octave/128x128/go-next.png \
+  %reldir%/icons/octave/128x128/go-previous.png \
+  %reldir%/icons/octave/128x128/go-up.png \
+  %reldir%/icons/octave/128x128/graphic_logo_DocumentationDockWidget.png \
+  %reldir%/icons/octave/128x128/graphic_logo_Figure.png \
+  %reldir%/icons/octave/128x128/graphic_logo_FileEditor.png \
+  %reldir%/icons/octave/128x128/graphic_logo_FilesDockWidget.png \
+  %reldir%/icons/octave/128x128/graphic_logo_HistoryDockWidget.png \
+  %reldir%/icons/octave/128x128/graphic_logo_NewsDockWidget.png \
+  %reldir%/icons/octave/128x128/graphic_logo_ReleaseWidget.png \
+  %reldir%/icons/octave/128x128/graphic_logo_TerminalDockWidget.png \
+  %reldir%/icons/octave/128x128/graphic_logo_VariableEditor.png \
+  %reldir%/icons/octave/128x128/graphic_logo_WorkspaceView.png \
+  %reldir%/icons/octave/128x128/letter_logo_DocumentationDockWidget.png \
+  %reldir%/icons/octave/128x128/letter_logo_FileEditor.png \
+  %reldir%/icons/octave/128x128/letter_logo_FilesDockWidget.png \
+  %reldir%/icons/octave/128x128/letter_logo_HistoryDockWidget.png \
+  %reldir%/icons/octave/128x128/letter_logo_NewsDockWidget.png \
+  %reldir%/icons/octave/128x128/letter_logo_ReleaseWidget.png \
+  %reldir%/icons/octave/128x128/letter_logo_TerminalDockWidget.png \
+  %reldir%/icons/octave/128x128/letter_logo_VariableEditor.png \
+  %reldir%/icons/octave/128x128/letter_logo_WorkspaceView.png \
+  %reldir%/icons/octave/128x128/logo.png \
+  %reldir%/icons/octave/128x128/plot-xy-curve.png \
+  %reldir%/icons/octave/128x128/system-run.png \
+  %reldir%/icons/octave/128x128/user-home.png \
+  %reldir%/icons/octave/128x128/view-zoom-in.png \
+  %reldir%/icons/octave/128x128/view-zoom-original.png \
+  %reldir%/icons/octave/128x128/view-zoom-out.png \
+  %reldir%/icons/octave/128x128/widget-close-light.png \
+  %reldir%/icons/octave/128x128/widget-close.png \
+  %reldir%/icons/octave/128x128/widget-dock-light.png \
+  %reldir%/icons/octave/128x128/widget-dock.png \
+  %reldir%/icons/octave/128x128/widget-undock-light.png \
+  %reldir%/icons/octave/128x128/widget-undock.png \
+  %reldir%/icons/octave/scalable/applications-system.svg \
+  %reldir%/icons/octave/scalable/bookmark-new.svg \
+  %reldir%/icons/octave/scalable/bp-next.svg \
+  %reldir%/icons/octave/scalable/bp-prev.svg \
+  %reldir%/icons/octave/scalable/bp-rm-all.svg \
+  %reldir%/icons/octave/scalable/bp-toggle.svg \
+  %reldir%/icons/octave/scalable/db-cont.svg \
+  %reldir%/icons/octave/scalable/db-step-in.svg \
+  %reldir%/icons/octave/scalable/db-step-out.svg \
+  %reldir%/icons/octave/scalable/db-step.svg \
+  %reldir%/icons/octave/scalable/db-stop.svg \
+  %reldir%/icons/octave/scalable/dialog-information.svg \
+  %reldir%/icons/octave/scalable/dialog-error.svg \
+  %reldir%/icons/octave/scalable/document-new.svg \
+  %reldir%/icons/octave/scalable/document-open.svg \
+  %reldir%/icons/octave/scalable/document-print.svg \
+  %reldir%/icons/octave/scalable/document-save-as.svg \
+  %reldir%/icons/octave/scalable/document-save.svg \
+  %reldir%/icons/octave/scalable/edit-copy.svg \
+  %reldir%/icons/octave/scalable/edit-cut.svg \
+  %reldir%/icons/octave/scalable/edit-find-replace.svg \
+  %reldir%/icons/octave/scalable/edit-find.svg \
+  %reldir%/icons/octave/scalable/edit-paste.svg \
+  %reldir%/icons/octave/scalable/edit-redo.svg \
+  %reldir%/icons/octave/scalable/edit-undo.svg \
+  %reldir%/icons/octave/scalable/figure-axes.svg \
+  %reldir%/icons/octave/scalable/figure-grid.svg \
+  %reldir%/icons/octave/scalable/figure-pan.svg \
+  %reldir%/icons/octave/scalable/figure-rotate.svg \
+  %reldir%/icons/octave/scalable/figure-text.svg \
+  %reldir%/icons/octave/scalable/figure-zoom-in.svg \
+  %reldir%/icons/octave/scalable/figure-zoom-original.svg \
+  %reldir%/icons/octave/scalable/figure-zoom-out.svg \
+  %reldir%/icons/octave/scalable/folder-new.svg \
+  %reldir%/icons/octave/scalable/folder-settings.svg \
+  %reldir%/icons/octave/scalable/folder-up.svg \
+  %reldir%/icons/octave/scalable/folder.svg \
+  %reldir%/icons/octave/scalable/go-down.svg \
+  %reldir%/icons/octave/scalable/go-first.svg \
+  %reldir%/icons/octave/scalable/go-home.svg \
+  %reldir%/icons/octave/scalable/go-last.svg \
+  %reldir%/icons/octave/scalable/go-next.svg \
+  %reldir%/icons/octave/scalable/go-previous.svg \
+  %reldir%/icons/octave/scalable/go-up.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_DocumentationDockWidget.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_Figure.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_FileEditor.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_FilesDockWidget.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_HistoryDockWidget.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_NewsDockWidget.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_ReleaseWidget.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_TerminalDockWidget.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_VariableEditor.svg \
+  %reldir%/icons/octave/scalable/graphic_logo_WorkspaceView.svg \
+  %reldir%/icons/octave/scalable/letter_logo_DocumentationDockWidget.svg \
+  %reldir%/icons/octave/scalable/letter_logo_FileEditor.svg \
+  %reldir%/icons/octave/scalable/letter_logo_FilesDockWidget.svg \
+  %reldir%/icons/octave/scalable/letter_logo_HistoryDockWidget.svg \
+  %reldir%/icons/octave/scalable/letter_logo_NewsDockWidget.svg \
+  %reldir%/icons/octave/scalable/letter_logo_ReleaseWidget.svg \
+  %reldir%/icons/octave/scalable/letter_logo_TerminalDockWidget.svg \
+  %reldir%/icons/octave/scalable/letter_logo_VariableEditor.svg \
+  %reldir%/icons/octave/scalable/letter_logo_WorkspaceView.svg \
+  %reldir%/icons/octave/scalable/plot-xy-curve.svg \
+  %reldir%/icons/octave/scalable/system-run.svg \
+  %reldir%/icons/octave/scalable/user-home.svg \
+  %reldir%/icons/octave/scalable/view-zoom-in.svg \
+  %reldir%/icons/octave/scalable/view-zoom-original.svg \
+  %reldir%/icons/octave/scalable/view-zoom-out.svg \
+  %reldir%/icons/octave/scalable/widget-close-light.svg \
+  %reldir%/icons/octave/scalable/widget-close.svg \
+  %reldir%/icons/octave/scalable/widget-dock-light.svg \
+  %reldir%/icons/octave/scalable/widget-dock.svg \
+  %reldir%/icons/octave/scalable/widget-undock-light.svg \
+  %reldir%/icons/octave/scalable/widget-undock.svg \
+  %reldir%/icons/tango/index.theme \
+  %reldir%/icons/tango/128x128/applications-system.png \
+  %reldir%/icons/tango/128x128/bookmark-new.png \
+  %reldir%/icons/tango/128x128/bp-next.png \
+  %reldir%/icons/tango/128x128/bp-prev.png \
+  %reldir%/icons/tango/128x128/bp-rm-all.png \
+  %reldir%/icons/tango/128x128/bp-toggle.png \
+  %reldir%/icons/tango/128x128/db-cont.png \
+  %reldir%/icons/tango/128x128/db-step-in.png \
+  %reldir%/icons/tango/128x128/db-step-out.png \
+  %reldir%/icons/tango/128x128/db-step.png \
+  %reldir%/icons/tango/128x128/db-stop.png \
+  %reldir%/icons/tango/128x128/dialog-error.png \
+  %reldir%/icons/tango/128x128/dialog-information.png \
+  %reldir%/icons/tango/128x128/dialog-warning.png \
+  %reldir%/icons/tango/128x128/document-new.png \
+  %reldir%/icons/tango/128x128/document-open.png \
+  %reldir%/icons/tango/128x128/document-print.png \
+  %reldir%/icons/tango/128x128/document-save.png \
+  %reldir%/icons/tango/128x128/document-save-as.png \
+  %reldir%/icons/tango/128x128/edit-copy.png \
+  %reldir%/icons/tango/128x128/edit-cut.png \
+  %reldir%/icons/tango/128x128/edit-delete.png \
+  %reldir%/icons/tango/128x128/edit-find-replace.png \
+  %reldir%/icons/tango/128x128/edit-find.png \
+  %reldir%/icons/tango/128x128/edit-paste.png \
+  %reldir%/icons/tango/128x128/edit-redo.png \
+  %reldir%/icons/tango/128x128/edit-undo.png \
+  %reldir%/icons/tango/128x128/folder-new.png \
+  %reldir%/icons/tango/128x128/folder.png \
+  %reldir%/icons/tango/128x128/go-down.png \
+  %reldir%/icons/tango/128x128/go-first.png \
+  %reldir%/icons/tango/128x128/go-home.png \
+  %reldir%/icons/tango/128x128/go-last.png \
+  %reldir%/icons/tango/128x128/go-next.png \
+  %reldir%/icons/tango/128x128/go-previous.png \
+  %reldir%/icons/tango/128x128/go-up.png \
+  %reldir%/icons/tango/128x128/preferences-system.png \
+  %reldir%/icons/tango/128x128/user-home.png \
+  %reldir%/icons/tango/128x128/view-refresh.png \
+  %reldir%/icons/tango/128x128/view-zoom-in.png \
+  %reldir%/icons/tango/128x128/view-zoom-original.png \
+  %reldir%/icons/tango/128x128/view-zoom-out.png \
+  %reldir%/icons/tango/scalable/applications-system.svg \
+  %reldir%/icons/tango/scalable/bookmark-new.svg \
+  %reldir%/icons/tango/scalable/bp-next.svg \
+  %reldir%/icons/tango/scalable/bp-prev.svg \
+  %reldir%/icons/tango/scalable/bp-rm-all.svg \
+  %reldir%/icons/tango/scalable/bp-toggle.svg \
+  %reldir%/icons/tango/scalable/db-cont.svg \
+  %reldir%/icons/tango/scalable/db-step-in.svg \
+  %reldir%/icons/tango/scalable/db-step-out.svg \
+  %reldir%/icons/tango/scalable/db-step.svg \
+  %reldir%/icons/tango/scalable/db-stop.svg \
+  %reldir%/icons/tango/scalable/dialog-error.svg \
+  %reldir%/icons/tango/scalable/dialog-information.svg \
+  %reldir%/icons/tango/scalable/dialog-warning.svg \
+  %reldir%/icons/tango/scalable/document-new.svg \
+  %reldir%/icons/tango/scalable/document-open.svg \
+  %reldir%/icons/tango/scalable/document-print.svg \
+  %reldir%/icons/tango/scalable/document-save.svg \
+  %reldir%/icons/tango/scalable/document-save-as.svg \
+  %reldir%/icons/tango/scalable/edit-copy.svg \
+  %reldir%/icons/tango/scalable/edit-cut.svg \
+  %reldir%/icons/tango/scalable/edit-delete.svg \
+  %reldir%/icons/tango/scalable/edit-find-replace.svg \
+  %reldir%/icons/tango/scalable/edit-find.svg \
+  %reldir%/icons/tango/scalable/edit-paste.svg \
+  %reldir%/icons/tango/scalable/edit-redo.svg \
+  %reldir%/icons/tango/scalable/edit-undo.svg \
+  %reldir%/icons/tango/scalable/folder-new.svg \
+  %reldir%/icons/tango/scalable/folder.svg \
+  %reldir%/icons/tango/scalable/go-down.svg \
+  %reldir%/icons/tango/scalable/go-first.svg \
+  %reldir%/icons/tango/scalable/go-home.svg \
+  %reldir%/icons/tango/scalable/go-last.svg \
+  %reldir%/icons/tango/scalable/go-next.svg \
+  %reldir%/icons/tango/scalable/go-previous.svg \
+  %reldir%/icons/tango/scalable/go-up.svg \
+  %reldir%/icons/tango/scalable/preferences-system.svg \
+  %reldir%/icons/tango/scalable/user-home.svg \
+  %reldir%/icons/tango/scalable/view-refresh.svg \
+  %reldir%/icons/tango/scalable/view-zoom-in.svg \
+  %reldir%/icons/tango/scalable/view-zoom-original.svg \
+  %reldir%/icons/tango/scalable/view-zoom-out.svg
 
 octave_gui_MOC =
 
@@ -124,8 +265,14 @@
 
 $(OCTAVE_GUI_SRC_M_EDITOR_MOC): | %reldir%/m-editor/$(octave_dirstamp)
 
+OCTAVE_GUI_SRC_COMMAND_WIDGET_MOC = \
+  %reldir%/moc-command-widget.cc
+
+$(OCTAVE_GUI_SRC_COMMAND_WIDGET_MOC): | %reldir%/$(octave_dirstamp)
+
 octave_gui_MOC += \
-  $(OCTAVE_GUI_SRC_M_EDITOR_MOC)
+  $(OCTAVE_GUI_SRC_M_EDITOR_MOC) \
+  $(OCTAVE_GUI_SRC_COMMAND_WIDGET_MOC)
 
 DIRSTAMP_FILES += \
   %reldir%/m-editor/$(octave_dirstamp)
@@ -134,7 +281,6 @@
 
 OCTAVE_GUI_SRC_MOC = \
   %reldir%/moc-external-editor-interface.cc \
-  %reldir%/moc-command-widget.cc \
   %reldir%/moc-community-news.cc \
   %reldir%/moc-dialog.cc \
   %reldir%/moc-documentation-dock-widget.cc \
--- a/libgui/src/octave-dock-widget.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/octave-dock-widget.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -73,11 +73,13 @@
           }
       }
 
+    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+
     // the custom (extra) title bar of the widget
     m_title_widget = new QWidget ();
 
     m_dock_action = new QAction
-      (QIcon (":/actions/icons/widget-undock.png"), "", this);
+      (rmgr.icon ("widget-undock", true), "", this);
     m_dock_action->setToolTip (tr ("Undock widget"));
     m_dock_button = new QToolButton (m_title_widget);
     m_dock_button->setDefaultAction (m_dock_action);
@@ -85,7 +87,7 @@
     m_dock_button->setIconSize (QSize (m_icon_size, m_icon_size));
 
     m_close_action = new QAction
-      (QIcon (":/actions/icons/widget-close.png"), "", this);
+      (rmgr.icon ("widget-close", true), "", this);
     m_close_action->setToolTip (tr ("Close widget"));
     m_close_button = new QToolButton (m_title_widget);
     m_close_button->setDefaultAction (m_close_action);
@@ -233,13 +235,15 @@
 
     m_close_action->setToolTip (tr ("Hide widget"));
 
-    setStyleSheet (qdockwidget_css (QString (":/actions/icons/widget-close.png"),
-                                    QString ("Close widget"),
-                                    QString (":/actions/icons/widget-undock.png"),
-                                    QString ("Undock widget"),
-                                    m_icon_size,
-                                    QString (""),
-                                    QString ("")));
+    setStyleSheet (qdockwidget_css (
+      global_icon_paths.at (ICON_THEME_OCTAVE) + "widget-close.png",
+      QString ("Close widget"),
+      global_icon_paths.at (ICON_THEME_OCTAVE) + "widget-undock.png",
+      QString ("Undock widget"),
+      m_icon_size,
+      QString (""),
+      QString ("")));
+
     if (widget ())
       widget ()->setToolTip (QString (""));
 
@@ -311,8 +315,8 @@
     // adjust the (un)dock icon
     if (titleBarWidget ())
       {
-        m_dock_action->setIcon (QIcon (":/actions/icons/widget-dock"
-                                       + m_icon_color + ".png"));
+        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+        m_dock_action->setIcon (rmgr.icon ("widget-dock" + m_icon_color, true));
         m_dock_action->setToolTip (tr ("Dock widget"));
       }
     else
@@ -370,8 +374,7 @@
              this, &octave_dock_widget::make_window);
     if (titleBarWidget ())
       {
-        m_dock_action->setIcon (QIcon (":/actions/icons/widget-undock"
-                                       + m_icon_color + ".png"));
+        m_dock_action->setIcon (rmgr.icon ("widget-undock" + m_icon_color, true));
         m_dock_action->setToolTip (tr ("Undock widget"));
       }
     else
@@ -798,22 +801,23 @@
         css_background = QString ("");
       }
 
-    QString full_dock_icon = ":/actions/icons/" + dock_icon + icon_col + ".png";
-    QString full_close_icon = ":/actions/icons/widget-close" + icon_col + ".png";
+    QString full_dock_icon = dock_icon + icon_col;
+    QString full_close_icon = "widget-close" + icon_col;
     if (titleBarWidget ())
       {
+        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
         titleBarWidget ()->setStyleSheet (css_foreground + css_background);
         css_button = QString ("QToolButton {background: transparent; border: 0px;}");
         m_dock_button->setStyleSheet (css_button);
         m_close_button->setStyleSheet (css_button);
-        m_dock_action->setIcon (QIcon (full_dock_icon));
-        m_close_action->setIcon (QIcon (full_close_icon));
+        m_dock_action->setIcon (rmgr.icon (full_dock_icon, true));
+        m_close_action->setIcon (rmgr.icon (full_close_icon, true));
       }
     else
       {
-        setStyleSheet (qdockwidget_css (full_close_icon,
+        setStyleSheet (qdockwidget_css (global_icon_paths.at (ICON_THEME_OCTAVE) + full_close_icon + ".png",
                                         close_tooltip,
-                                        full_dock_icon,
+                                        global_icon_paths.at (ICON_THEME_OCTAVE) + full_dock_icon + ".png",
                                         dock_tooltip,
                                         m_icon_size,
                                         css_foreground,
--- a/libgui/src/octave-qobject.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/octave-qobject.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -40,7 +40,9 @@
 // QTerminal includes
 #include "QTerminal.h"
 
-#include "command-widget.h"
+#if defined (HAVE_QSCINTILLA)
+#  include "command-widget.h"
+#endif
 #include "community-news.h"
 #include "documentation-dock-widget.h"
 #include "files-dock-widget.h"
@@ -313,6 +315,7 @@
 
             // After settings.
             config_translators ();
+            m_resource_manager.config_icon_theme ();
 
             // Initilize the shortcut-manager
             m_shortcut_manager.init_data ();
@@ -460,6 +463,7 @@
           = QPointer<terminal_dock_widget> (new terminal_dock_widget (mw, *this));
         if (experimental_terminal_widget ())
           {
+#if defined (HAVE_QSCINTILLA)
             command_widget *cmd_widget
               = m_terminal_widget->get_command_widget ();
 
@@ -473,12 +477,16 @@
                      this, &base_qobject::interpreter_stop);
 
             connect (qt_link (), &qt_interpreter_events::interpreter_output_signal,
-                     m_terminal_widget, &terminal_dock_widget::interpreter_output);
+                     m_terminal_widget, &terminal_dock_widget::interpreter_output_signal);
 
             connect (qt_link (), &qt_interpreter_events::update_prompt_signal,
-                     m_terminal_widget, &terminal_dock_widget::update_prompt);
+                     m_terminal_widget, &terminal_dock_widget::update_prompt_signal);
+
+            connect (qt_link (), &qt_interpreter_events::new_command_line_signal,
+                     m_terminal_widget, &terminal_dock_widget::new_command_line_signal);
 
             connect_interpreter_events (cmd_widget);
+#endif
           }
         else
           {
@@ -731,7 +739,7 @@
   QPointer<release_notes> base_qobject::release_notes_widget (void)
   {
     if (! m_release_notes)
-      m_release_notes = QPointer<release_notes> (new release_notes ());
+      m_release_notes = QPointer<release_notes> (new release_notes (*this));
 
     return m_release_notes;
   }
--- a/libgui/src/qt-interpreter-events.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/qt-interpreter-events.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -510,9 +510,12 @@
     if (m_octave_qobj.experimental_terminal_widget ()
         && m_octave_qobj.have_terminal_window ())
       {
+        // Output the exception message
         std::ostringstream buf;
         ee.display (buf);
         emit interpreter_output_signal (QString::fromStdString (buf.str ()));
+        // Create w new command line
+        emit new_command_line_signal ();
       }
     else
       {
--- a/libgui/src/qt-interpreter-events.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/qt-interpreter-events.h	Tue Nov 15 13:15:28 2022 -0800
@@ -287,8 +287,9 @@
     void show_community_news_signal (int serial);
     void show_release_notes_signal (void);
 
-    // Note: this signal currently not used by the old terminal widget.
+    // Note: the next two signals are currently not used by the old terminal widget.
     void interpreter_output_signal (const QString& msg);
+    void new_command_line_signal (const QString& msg = QString ());
 
     void gui_status_update_signal (const QString& feature, const QString& status);
 
--- a/libgui/src/release-notes.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/release-notes.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -38,6 +38,7 @@
 
 #include "release-notes.h"
 #include "gui-utils.h"
+#include "gui-preferences-dw.h"
 #include "gui-preferences-nr.h"
 #include "news-reader.h"
 #include "octave-qobject.h"
@@ -46,19 +47,20 @@
 
 namespace octave
 {
-  release_notes::release_notes (void)
-    : QWidget (nullptr), m_browser (nullptr),
-      m_release_notes_icon (":/actions/icons/logo.png")
+  release_notes::release_notes (base_qobject& oct_qobj)
+    : QWidget (nullptr), m_browser (nullptr)
   {
-#if 0
-    // The following code was in main-window.cc.  How should that be
-    // handled here?
-    if (dw_icon_set_names[icon_set_found].name != "NONE")
-      m_release_notes_icon = dw_icon_set_names[icon_set_found].path
+
+    resource_manager& rmgr = oct_qobj.get_resource_manager ();
+    gui_settings *settings = rmgr.get_settings ();
+
+    // The icon
+    QString icon_set = settings->value (dw_icon_set).toString ();
+    if (icon_set != "NONE")
+      m_release_notes_icon = dw_icon_set_names[icon_set]
                              + "ReleaseWidget.png";
     else
-      m_release_notes_icon = ":/actions/icons/logo.png";
-#endif
+      m_release_notes_icon = dw_icon_set_names[icon_set];
 
     std::string news_file = config::oct_etc_dir () + "/NEWS";
 
--- a/libgui/src/release-notes.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/release-notes.h	Tue Nov 15 13:15:28 2022 -0800
@@ -41,7 +41,7 @@
 
   public:
 
-    release_notes (void);
+    release_notes (base_qobject& qct_qobj);
 
     ~release_notes (void) = default;
 
--- a/libgui/src/resource-manager.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/resource-manager.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -27,6 +27,8 @@
 #  include "config.h"
 #endif
 
+#include <unistd.h>
+
 #include <algorithm>
 #include <array>
 #include <string>
@@ -38,11 +40,7 @@
 #include <QLibraryInfo>
 #include <QMessageBox>
 #include <QNetworkProxy>
-#if defined (HAVE_QSTANDARDPATHS)
-#  include <QStandardPaths>
-#else
-#  include <QDesktopServices>
-#endif
+#include <QStandardPaths>
 
 #include <QTextCodec>
 
@@ -67,7 +65,7 @@
 {
   resource_manager::resource_manager (void)
     : m_settings_directory (), m_settings_file (), m_settings (nullptr),
-      m_default_settings (nullptr), m_temporary_files ()
+      m_default_settings (nullptr), m_temporary_files (), m_icon_fallbacks ()
   {
     // Let gui_settings decide where to put the ini file with gui preferences
     m_default_settings
@@ -185,6 +183,52 @@
 
   }
 
+  void resource_manager::config_icon_theme (void)
+  {
+    m_icon_fallbacks.clear ();
+
+    int theme = global_icon_theme_index.def.toInt ();
+
+    if (m_settings)
+      {
+       // check for new and old setting and use old if required
+       if (! m_settings->contains (global_icon_theme_index.key))
+         {
+           // new pref does not exist
+           if (m_settings->value (global_icon_theme).toBool ())
+             theme = ICON_THEME_SYSTEM;
+           else
+             theme = ICON_THEME_OCTAVE;
+           m_settings->setValue (global_icon_theme_index.key, theme);  // add new
+           m_settings->remove (global_icon_theme.key); // remove deprecated key
+         }
+       else
+         {
+           // get new settings
+           theme = m_settings->value (global_icon_theme_index).toInt ();
+         }
+      }
+
+   QIcon::setThemeName (global_all_icon_themes.at (theme));
+
+   // set the required fallback search paths
+   switch (theme)
+    {
+      case ICON_THEME_SYSTEM:
+        m_icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE);
+        m_icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO);
+        break;
+      case ICON_THEME_TANGO:
+        m_icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE);
+        break;
+      case ICON_THEME_OCTAVE:
+        m_icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO);
+        break;
+    }
+
+    m_icon_fallbacks << global_icon_paths.at (ICON_THEME_CURSORS);
+  }
+
   gui_settings * resource_manager::get_settings (void) const
   {
     return m_settings;
@@ -581,19 +625,26 @@
     sys::env::putenv ("HTTPS_PROXY", proxy_url_str);
   }
 
-  QIcon resource_manager::icon (const QString& icon_name, bool fallback)
+  QIcon resource_manager::icon (const QString& icon_name, bool octave_only,
+                                const QString& icon_alt_name)
   {
-    // If system icon theme is not desired, take own icon files
-    if (! m_settings->value (global_icon_theme).toBool ())
-      return QIcon (":/actions/icons/" + icon_name + ".png");
+    if (octave_only)
+      return QIcon (global_icon_paths.at (ICON_THEME_OCTAVE) + icon_name + ".png");
 
-    // Use system icon theme with own files as fallback except when the
-    // fallback is explicitly disabled (fallback=false)
-    if (fallback)
-      return QIcon::fromTheme (icon_name,
-                               QIcon (":/actions/icons/" + icon_name + ".png"));
-    else
-      return QIcon::fromTheme (icon_name);
+    if (QIcon::hasThemeIcon (icon_name))
+      return QIcon (QIcon::fromTheme (icon_name));
+    else if ((! icon_alt_name.isEmpty ()) && QIcon::hasThemeIcon (icon_alt_name))
+      return QIcon (QIcon::fromTheme (icon_alt_name));
+
+    for (int i = 0; i < m_icon_fallbacks.length (); i++ )
+      {
+        QString icon_file (m_icon_fallbacks.at (i) + icon_name + ".png");
+        if (QFile (icon_file).exists ())
+          return QIcon (icon_file);
+      }
+
+      //QIcon::setThemeName (current_theme);
+      return QIcon ();
   }
 
   // get a list of all available encodings
@@ -676,6 +727,7 @@
     combo->setMaxVisibleItems (12);
   }
 
+
   QPointer<QTemporaryFile>
   resource_manager::create_tmp_file (const QString& extension,
                                      const QString& contents)
@@ -685,8 +737,7 @@
       ext = QString (".") + ext;
 
     // Create octave dir within temp. dir
-    QString tmp_dir = QDir::tempPath () + QDir::separator() + "octave";
-    QDir::temp ().mkdir ("octave");
+    QString tmp_dir = QString::fromStdString (sys::env::get_temp_directory ());
 
     // Create temp. file
     QPointer<QTemporaryFile> tmp_file
--- a/libgui/src/resource-manager.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/resource-manager.h	Tue Nov 15 13:15:28 2022 -0800
@@ -61,6 +61,7 @@
 
     void config_translators (QTranslator *qt_tr, QTranslator *qsci_tr,
                              QTranslator *gui_tr);
+    void config_icon_theme (void);
 
     gui_settings * get_settings (void) const;
 
@@ -96,7 +97,8 @@
 
     void update_network_settings (void);
 
-    QIcon icon (const QString& icon_name, bool fallback = true);
+    QIcon icon (const QString& icon_name, bool octave_only = false,
+                const QString& icon_alt_name = QString ());
 
     void get_codecs (QStringList *codecs);
 
@@ -122,6 +124,8 @@
     gui_settings *m_default_settings;
 
     QList<QTemporaryFile *> m_temporary_files;
+
+    QStringList m_icon_fallbacks;
   };
 }
 
--- a/libgui/src/resource.qrc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/resource.qrc	Tue Nov 15 13:15:28 2022 -0800
@@ -1,94 +1,136 @@
 <RCC>
-    <qresource prefix="/actions">
-        <file>icons/applications-system.png</file>
-        <file>icons/bookmark-new.png</file>
-        <file>icons/bp-toggle.png</file>
-        <file>icons/bp-rm-all.png</file>
-        <file>icons/bp-prev.png</file>
-        <file>icons/bp-next.png</file>
-        <file>icons/bottom_left_corner.png</file>
-        <file>icons/bottom_right_corner.png</file>
-        <file>icons/bottom_side.png</file>
-        <file>icons/circle.png</file>
-        <file>icons/cross.png</file>
-        <file>icons/db-cont.png</file>
-        <file>icons/db-step.png</file>
-        <file>icons/db-step-in.png</file>
-        <file>icons/db-step-out.png</file>
-        <file>icons/db-stop.png</file>
-        <file>icons/dialog-error.png</file>
-        <file>icons/dialog-information.png</file>
-        <file>icons/dialog-warning.png</file>
-        <file>icons/document-new.png</file>
-        <file>icons/document-open.png</file>
-        <file>icons/document-print.png</file>
-        <file>icons/document-save.png</file>
-        <file>icons/document-save-as.png</file>
-        <file>icons/edit-copy.png</file>
-        <file>icons/edit-cut.png</file>
-        <file>icons/edit-delete.png</file>
-        <file>icons/edit-find.png</file>
-        <file>icons/edit-find-replace.png</file>
-        <file>icons/edit-paste.png</file>
-        <file>icons/edit-redo.png</file>
-        <file>icons/edit-undo.png</file>
-        <file>icons/figure-axes.png</file>
-        <file>icons/figure-grid.png</file>
-        <file>icons/figure-pan.png</file>
-        <file>icons/figure-rotate.png</file>
-        <file>icons/figure-text.png</file>
-        <file>icons/figure-zoom-in.png</file>
-        <file>icons/figure-zoom-original.png</file>
-        <file>icons/figure-zoom-out.png</file>
-        <file>icons/folder.png</file>
-        <file>icons/folder-new.png</file>
-        <file>icons/go-down.png</file>
-        <file>icons/go-first.png</file>
-        <file>icons/go-home.png</file>
-        <file>icons/go-last.png</file>
-        <file>icons/go-next.png</file>
-        <file>icons/go-previous.png</file>
-        <file>icons/go-up.png</file>
-        <file>icons/graphic_logo_FilesDockWidget.png</file>
-        <file>icons/graphic_logo_Figure.png</file>
-        <file>icons/graphic_logo_FileEditor.png</file>
-        <file>icons/graphic_logo_NewsDockWidget.png</file>
-        <file>icons/graphic_logo_TerminalDockWidget.png</file>
-        <file>icons/graphic_logo_HistoryDockWidget.png</file>
-        <file>icons/graphic_logo_WorkspaceView.png</file>
-        <file>icons/graphic_logo_DocumentationDockWidget.png</file>
-        <file>icons/graphic_logo_ReleaseWidget.png</file>
-        <file>icons/graphic_logo_VariableEditor.png</file>
-        <file>icons/fleur.png</file>
-        <file>icons/hand2.png</file>
-        <file>icons/left_side.png</file>
-        <file>icons/letter_logo_FilesDockWidget.png</file>
-        <file>icons/letter_logo_FileEditor.png</file>
-        <file>icons/letter_logo_NewsDockWidget.png</file>
-        <file>icons/letter_logo_TerminalDockWidget.png</file>
-        <file>icons/letter_logo_HistoryDockWidget.png</file>
-        <file>icons/letter_logo_WorkspaceView.png</file>
-        <file>icons/letter_logo_DocumentationDockWidget.png</file>
-        <file>icons/letter_logo_ReleaseWidget.png</file>
-        <file>icons/letter_logo_VariableEditor.png</file>
-        <file>icons/logo.png</file>
-        <file>icons/plot-xy-curve.png</file>
-        <file>icons/preferences-system.png</file>
-        <file>icons/right_side.png</file>
-        <file>icons/system-run.png</file>
-        <file>icons/top_left_corner.png</file>
-        <file>icons/top_right_corner.png</file>
-        <file>icons/top_side.png</file>
-        <file>icons/user-home.png</file>
-        <file>icons/view-refresh.png</file>
-        <file>icons/widget-close.png</file>
-        <file>icons/widget-dock.png</file>
-        <file>icons/widget-undock.png</file>
-        <file>icons/widget-close-light.png</file>
-        <file>icons/widget-dock-light.png</file>
-        <file>icons/widget-undock-light.png</file>
-        <file>icons/zoom-in.png</file>
-        <file>icons/zoom-original.png</file>
-        <file>icons/zoom-out.png</file>
+    <qresource prefix="/">
+        <file>icons/cursors/bottom_left_corner.png</file>
+        <file>icons/cursors/bottom_right_corner.png</file>
+        <file>icons/cursors/bottom_side.png</file>
+        <file>icons/cursors/circle.png</file>
+        <file>icons/cursors/cross.png</file>
+        <file>icons/cursors/fleur.png</file>
+        <file>icons/cursors/hand2.png</file>
+        <file>icons/cursors/left_side.png</file>
+        <file>icons/cursors/right_side.png</file>
+        <file>icons/cursors/top_left_corner.png</file>
+        <file>icons/cursors/top_right_corner.png</file>
+        <file>icons/cursors/top_side.png</file>
+        <file>icons/octave/128x128/applications-system.png</file>
+        <file>icons/octave/128x128/bookmark-new.png</file>
+        <file>icons/octave/128x128/bp-toggle.png</file>
+        <file>icons/octave/128x128/bp-rm-all.png</file>
+        <file>icons/octave/128x128/bp-prev.png</file>
+        <file>icons/octave/128x128/bp-next.png</file>
+        <file>icons/octave/128x128/db-cont.png</file>
+        <file>icons/octave/128x128/db-step.png</file>
+        <file>icons/octave/128x128/db-step-in.png</file>
+        <file>icons/octave/128x128/db-step-out.png</file>
+        <file>icons/octave/128x128/db-stop.png</file>
+        <file>icons/octave/128x128/dialog-information.png</file>
+        <file>icons/octave/128x128/dialog-error.png</file>
+        <file>icons/octave/128x128/document-new.png</file>
+        <file>icons/octave/128x128/document-open.png</file>
+        <file>icons/octave/128x128/document-print.png</file>
+        <file>icons/octave/128x128/document-save-as.png</file>
+        <file>icons/octave/128x128/document-save.png</file>
+        <file>icons/octave/128x128/edit-copy.png</file>
+        <file>icons/octave/128x128/edit-cut.png</file>
+        <file>icons/octave/128x128/edit-find-replace.png</file>
+        <file>icons/octave/128x128/edit-find.png</file>
+        <file>icons/octave/128x128/edit-paste.png</file>
+        <file>icons/octave/128x128/edit-redo.png</file>
+        <file>icons/octave/128x128/edit-undo.png</file>
+        <file>icons/octave/128x128/figure-axes.png</file>
+        <file>icons/octave/128x128/figure-grid.png</file>
+        <file>icons/octave/128x128/figure-pan.png</file>
+        <file>icons/octave/128x128/figure-rotate.png</file>
+        <file>icons/octave/128x128/figure-text.png</file>
+        <file>icons/octave/128x128/figure-zoom-in.png</file>
+        <file>icons/octave/128x128/figure-zoom-original.png</file>
+        <file>icons/octave/128x128/figure-zoom-out.png</file>
+        <file>icons/octave/128x128/folder.png</file>
+        <file>icons/octave/128x128/folder-new.png</file>
+        <file>icons/octave/128x128/folder-settings.png</file>
+        <file>icons/octave/128x128/folder-up.png</file>
+        <file>icons/octave/128x128/go-down.png</file>
+        <file>icons/octave/128x128/go-first.png</file>
+        <file>icons/octave/128x128/go-home.png</file>
+        <file>icons/octave/128x128/go-last.png</file>
+        <file>icons/octave/128x128/go-next.png</file>
+        <file>icons/octave/128x128/go-previous.png</file>
+        <file>icons/octave/128x128/go-up.png</file>
+        <file>icons/octave/128x128/graphic_logo_FilesDockWidget.png</file>
+        <file>icons/octave/128x128/graphic_logo_Figure.png</file>
+        <file>icons/octave/128x128/graphic_logo_FileEditor.png</file>
+        <file>icons/octave/128x128/graphic_logo_NewsDockWidget.png</file>
+        <file>icons/octave/128x128/graphic_logo_TerminalDockWidget.png</file>
+        <file>icons/octave/128x128/graphic_logo_HistoryDockWidget.png</file>
+        <file>icons/octave/128x128/graphic_logo_WorkspaceView.png</file>
+        <file>icons/octave/128x128/graphic_logo_DocumentationDockWidget.png</file>
+        <file>icons/octave/128x128/graphic_logo_ReleaseWidget.png</file>
+        <file>icons/octave/128x128/graphic_logo_VariableEditor.png</file>
+        <file>icons/octave/128x128/letter_logo_FilesDockWidget.png</file>
+        <file>icons/octave/128x128/letter_logo_FileEditor.png</file>
+        <file>icons/octave/128x128/letter_logo_NewsDockWidget.png</file>
+        <file>icons/octave/128x128/letter_logo_TerminalDockWidget.png</file>
+        <file>icons/octave/128x128/letter_logo_HistoryDockWidget.png</file>
+        <file>icons/octave/128x128/letter_logo_WorkspaceView.png</file>
+        <file>icons/octave/128x128/letter_logo_DocumentationDockWidget.png</file>
+        <file>icons/octave/128x128/letter_logo_ReleaseWidget.png</file>
+        <file>icons/octave/128x128/letter_logo_VariableEditor.png</file>
+        <file>icons/octave/128x128/logo.png</file>
+        <file>icons/octave/128x128/plot-xy-curve.png</file>
+        <file>icons/octave/128x128/system-run.png</file>
+        <file>icons/octave/128x128/user-home.png</file>
+        <file>icons/octave/128x128/view-zoom-in.png</file>
+        <file>icons/octave/128x128/view-zoom-original.png</file>
+        <file>icons/octave/128x128/view-zoom-out.png</file>
+        <file>icons/octave/128x128/widget-close.png</file>
+        <file>icons/octave/128x128/widget-dock.png</file>
+        <file>icons/octave/128x128/widget-undock.png</file>
+        <file>icons/octave/128x128/widget-close-light.png</file>
+        <file>icons/octave/128x128/widget-dock-light.png</file>
+        <file>icons/octave/128x128/widget-undock-light.png</file>
+        <file>icons/octave/index.theme</file>
+        <file>icons/tango/128x128/applications-system.png</file>
+        <file>icons/tango/128x128/bookmark-new.png</file>
+        <file>icons/tango/128x128/bp-toggle.png</file>
+        <file>icons/tango/128x128/bp-rm-all.png</file>
+        <file>icons/tango/128x128/bp-prev.png</file>
+        <file>icons/tango/128x128/bp-next.png</file>
+        <file>icons/tango/128x128/db-cont.png</file>
+        <file>icons/tango/128x128/db-step.png</file>
+        <file>icons/tango/128x128/db-step-in.png</file>
+        <file>icons/tango/128x128/db-step-out.png</file>
+        <file>icons/tango/128x128/db-stop.png</file>
+        <file>icons/tango/128x128/dialog-error.png</file>
+        <file>icons/tango/128x128/dialog-information.png</file>
+        <file>icons/tango/128x128/dialog-warning.png</file>
+        <file>icons/tango/128x128/document-new.png</file>
+        <file>icons/tango/128x128/document-open.png</file>
+        <file>icons/tango/128x128/document-print.png</file>
+        <file>icons/tango/128x128/document-save.png</file>
+        <file>icons/tango/128x128/document-save-as.png</file>
+        <file>icons/tango/128x128/edit-copy.png</file>
+        <file>icons/tango/128x128/edit-cut.png</file>
+        <file>icons/tango/128x128/edit-delete.png</file>
+        <file>icons/tango/128x128/edit-find.png</file>
+        <file>icons/tango/128x128/edit-find-replace.png</file>
+        <file>icons/tango/128x128/edit-paste.png</file>
+        <file>icons/tango/128x128/edit-redo.png</file>
+        <file>icons/tango/128x128/edit-undo.png</file>
+        <file>icons/tango/128x128/folder.png</file>
+        <file>icons/tango/128x128/folder-new.png</file>
+        <file>icons/tango/128x128/go-down.png</file>
+        <file>icons/tango/128x128/go-first.png</file>
+        <file>icons/tango/128x128/go-home.png</file>
+        <file>icons/tango/128x128/go-last.png</file>
+        <file>icons/tango/128x128/go-next.png</file>
+        <file>icons/tango/128x128/go-previous.png</file>
+        <file>icons/tango/128x128/go-up.png</file>
+        <file>icons/tango/128x128/preferences-system.png</file>
+        <file>icons/tango/128x128/user-home.png</file>
+        <file>icons/tango/128x128/view-refresh.png</file>
+        <file>icons/tango/128x128/view-zoom-in.png</file>
+        <file>icons/tango/128x128/view-zoom-original.png</file>
+        <file>icons/tango/128x128/view-zoom-out.png</file>
+        <file>icons/tango/index.theme</file>
     </qresource>
 </RCC>
--- a/libgui/src/settings-dialog.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/settings-dialog.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -116,6 +116,7 @@
 
     // Global style
     QStringList styles = QStyleFactory::keys();
+    styles.append (global_extra_styles);
     combo_styles->addItems (styles);
     combo_styles->insertItem (0, global_style.def.toString ());
     combo_styles->insertSeparator (1);
@@ -137,7 +138,9 @@
     icon_size_normal->setChecked (true);  // the default
     icon_size_small->setChecked (icon_size < 0);
     icon_size_large->setChecked (icon_size > 0);
-    cb_system_icon_theme->setChecked (settings->value (global_icon_theme).toBool ());
+    combo_box_icon_theme->addItems (global_all_icon_theme_names);
+    int theme = settings->value (global_icon_theme_index.key).toInt ();
+    combo_box_icon_theme->setCurrentIndex (theme);
 
     // which icon has to be selected
     QButtonGroup *icon_group = new QButtonGroup (this);
@@ -454,22 +457,38 @@
 
 #if defined (HAVE_QSCINTILLA)
 
-    int ed_mode = settings->value (ed_color_mode).toInt ();
+    int mode = settings->value (ed_color_mode).toInt ();
 
     QCheckBox *cb_color_mode = new QCheckBox (settings_color_modes,
                                               group_box_editor_styles);
     cb_color_mode->setToolTip (settings_color_modes_tooltip);
-    cb_color_mode->setChecked (ed_mode > 0);
+    cb_color_mode->setChecked (mode > 0);
     cb_color_mode->setObjectName (ed_color_mode.key);
 
     QPushButton *pb_reload_default_colors = new QPushButton (settings_reload_styles);
     pb_reload_default_colors->setToolTip (settings_reload_styles_tooltip);
 
-    editor_style_grid->addWidget (cb_color_mode, 0, 0);
-    editor_style_grid->addWidget (pb_reload_default_colors, 0, 1);
-    editor_style_grid->addItem (new QSpacerItem (5, 5, QSizePolicy::Expanding), 0, 2);
+    color_picker *current_line_color = new color_picker (
+      settings->value (ed_highlight_current_line_color.key +
+                       settings_color_modes_ext[mode],
+                       ed_highlight_current_line_color.def).value<QColor> (), this);
+    current_line_color->setObjectName (ed_highlight_current_line_color.key);
+    QLabel *current_line_color_label = new QLabel(
+      tr ("Color of highlighted current line (magenta (255,0,255) for automatic color)")
+    );
 
+    QHBoxLayout *color_mode = new QHBoxLayout ();
+    color_mode->addWidget (cb_color_mode);
+    color_mode->addItem (new QSpacerItem (5, 5, QSizePolicy::Expanding));
+    color_mode->addWidget (pb_reload_default_colors);
 
+    QHBoxLayout *current_line = new QHBoxLayout ();
+    current_line->addWidget (current_line_color_label);
+    current_line->addWidget (current_line_color);
+    current_line->addItem (new QSpacerItem (5, 5, QSizePolicy::Expanding));
+
+    editor_styles_layout->addLayout (color_mode);
+    editor_styles_layout->addLayout (current_line);
 
     // update colors depending on second theme selection
     connect (cb_color_mode, &QCheckBox::stateChanged,
@@ -626,6 +645,9 @@
   {
 #if defined (HAVE_QSCINTILLA)
 
+    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings *settings = rmgr.get_settings ();
+
     QCheckBox *cb_color_mode
       = group_box_editor_styles->findChild <QCheckBox *> (ed_color_mode.key);
 
@@ -633,13 +655,25 @@
     if (cb_color_mode && cb_color_mode->isChecked ())
       m = 1;
 
+    color_picker *c_picker = findChild <color_picker *> (ed_highlight_current_line_color.key);
+    if (c_picker)
+      {
+        if (def != settings_reload_default_colors_flag)
+          {
+            // Get current value from settings or the default
+            c_picker->set_color (settings->color_value (ed_highlight_current_line_color, m));
+          }
+        else
+          {
+            // Get the default value
+            c_picker->set_color (settings->get_color_value (ed_highlight_current_line_color.def, m));
+          }
+      }
+
     // editor styles: create lexer, read settings, and
     // create or update dialog elements
     QsciLexer *lexer;
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-    gui_settings *settings = rmgr.get_settings ();
-
 #  if defined (HAVE_LEXER_OCTAVE)
     lexer = new QsciLexerOctave ();
     update_lexer (lexer, settings, m, def);
@@ -909,6 +943,11 @@
     color_picker *bg_color;
     int default_size = 10;
 
+    color = findChild <color_picker *> (ed_highlight_current_line_color.key);
+    if (color)
+      settings->setValue (ed_highlight_current_line_color.key
+                          + settings_color_modes_ext[mode], color->color ());
+
     QString default_font_name
       = settings->value (global_mono_font).toString ();
     QFont default_font = QFont (default_font_name, 10, -1, 0);
@@ -1020,7 +1059,7 @@
     // icon size and theme
     int icon_size = icon_size_large->isChecked () - icon_size_small->isChecked ();
     settings->setValue (global_icon_size.key, icon_size);
-    settings->setValue (global_icon_theme.key, cb_system_icon_theme->isChecked ());
+    settings->setValue (global_icon_theme_index.key, combo_box_icon_theme->currentIndex ());
 
     // native file dialogs
     settings->setValue (global_use_native_dialogs.key, cb_use_native_file_dialogs->isChecked ());
--- a/libgui/src/settings-dialog.ui	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/settings-dialog.ui	Tue Nov 15 13:15:28 2022 -0800
@@ -35,7 +35,7 @@
       <string/>
      </property>
      <property name="currentIndex">
-      <number>6</number>
+      <number>2</number>
      </property>
      <widget class="QWidget" name="tab_general">
       <property name="enabled">
@@ -55,8 +55,8 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>657</width>
-            <height>629</height>
+            <width>1021</width>
+            <height>584</height>
            </rect>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_17">
@@ -68,30 +68,44 @@
              <layout class="QVBoxLayout" name="verticalLayout_21">
               <item>
                <layout class="QGridLayout" name="gridLayout">
-                <item row="1" column="1">
-                 <layout class="QHBoxLayout" name="horizontalLayout_8">
+                <item row="7" column="0">
+                 <widget class="QLabel" name="label_15">
+                  <property name="text">
+                   <string>Dock widget title bar</string>
+                  </property>
+                  <property name="alignment">
+                   <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+                  </property>
+                 </widget>
+                </item>
+                <item row="5" column="0">
+                 <widget class="QLabel" name="label_9">
+                  <property name="text">
+                   <string>Dock widgets window icons</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="2" column="0">
+                 <widget class="QLabel" name="label_29">
+                  <property name="text">
+                   <string>Style</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="2" column="1">
+                 <layout class="QHBoxLayout" name="horizontalLayout_17">
                   <item>
-                   <widget class="QComboBox" name="comboBox_language">
+                   <widget class="QComboBox" name="combo_styles">
                     <property name="minimumSize">
                      <size>
                       <width>135</width>
                       <height>0</height>
                      </size>
                     </property>
-                    <property name="insertPolicy">
-                     <enum>QComboBox::InsertAtBottom</enum>
-                    </property>
                    </widget>
                   </item>
                   <item>
-                   <widget class="QLabel" name="label_10">
-                    <property name="text">
-                     <string>(requires restart)</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <spacer name="horizontalSpacer_3">
+                   <spacer name="horizontalSpacer">
                     <property name="orientation">
                      <enum>Qt::Horizontal</enum>
                     </property>
@@ -105,19 +119,26 @@
                   </item>
                  </layout>
                 </item>
-                <item row="7" column="0">
-                 <widget class="QLabel" name="label_15">
+                <item row="1" column="0">
+                 <widget class="QLabel" name="label_2">
                   <property name="text">
-                   <string>Dock widget title bar</string>
-                  </property>
-                  <property name="alignment">
-                   <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+                   <string>Language</string>
                   </property>
                  </widget>
                 </item>
                 <item row="3" column="1">
-                 <layout class="QVBoxLayout" name="verticalLayout_5">
-                  <item>
+                 <layout class="QGridLayout" name="gridLayout_16">
+                  <item row="1" column="0">
+                   <widget class="QLabel" name="label_4">
+                    <property name="text">
+                     <string>Icon theme (requires restart)</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="1" column="1">
+                   <widget class="QComboBox" name="combo_box_icon_theme"/>
+                  </item>
+                  <item row="0" column="0">
                    <layout class="QHBoxLayout" name="horizontalLayout_6">
                     <item>
                      <widget class="QRadioButton" name="icon_size_small">
@@ -143,58 +164,10 @@
                       </property>
                      </widget>
                     </item>
-                    <item>
-                     <spacer name="horizontalSpacer_4">
-                      <property name="orientation">
-                       <enum>Qt::Horizontal</enum>
-                      </property>
-                      <property name="sizeHint" stdset="0">
-                       <size>
-                        <width>40</width>
-                        <height>20</height>
-                       </size>
-                      </property>
-                     </spacer>
-                    </item>
                    </layout>
                   </item>
-                  <item>
-                   <widget class="QCheckBox" name="cb_system_icon_theme">
-                    <property name="text">
-                     <string>Use system icon theme if available (requires restart)</string>
-                    </property>
-                   </widget>
-                  </item>
-                 </layout>
-                </item>
-                <item row="5" column="1">
-                 <layout class="QHBoxLayout" name="horizontalLayout_9">
-                  <item>
-                   <widget class="QRadioButton" name="general_icon_octave">
-                    <property name="text">
-                     <string>Octave logo only</string>
-                    </property>
-                    <property name="checked">
-                     <bool>true</bool>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <widget class="QRadioButton" name="general_icon_letter">
-                    <property name="text">
-                     <string>Letter icons</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <widget class="QRadioButton" name="general_icon_graphic">
-                    <property name="text">
-                     <string>Graphic icons</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <spacer name="horizontalSpacer_6">
+                  <item row="1" column="2">
+                   <spacer name="horizontalSpacer_5">
                     <property name="orientation">
                      <enum>Qt::Horizontal</enum>
                     </property>
@@ -208,23 +181,6 @@
                   </item>
                  </layout>
                 </item>
-                <item row="3" column="0">
-                 <widget class="QLabel" name="label_8">
-                  <property name="text">
-                   <string>Toolbar Icons</string>
-                  </property>
-                  <property name="alignment">
-                   <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-                  </property>
-                 </widget>
-                </item>
-                <item row="5" column="0">
-                 <widget class="QLabel" name="label_9">
-                  <property name="text">
-                   <string>Icon set for dock widgets</string>
-                  </property>
-                 </widget>
-                </item>
                 <item row="7" column="1">
                  <layout class="QHBoxLayout" name="horizontalLayout_4">
                   <item>
@@ -387,27 +343,40 @@
                   </item>
                  </layout>
                 </item>
-                <item row="1" column="0">
-                 <widget class="QLabel" name="label_2">
+                <item row="3" column="0">
+                 <widget class="QLabel" name="label_8">
                   <property name="text">
-                   <string>Language</string>
+                   <string>Toolbar Icons</string>
+                  </property>
+                  <property name="alignment">
+                   <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
                   </property>
                  </widget>
                 </item>
-                <item row="2" column="1">
-                 <layout class="QHBoxLayout" name="horizontalLayout_17">
+                <item row="1" column="1">
+                 <layout class="QHBoxLayout" name="horizontalLayout_8">
                   <item>
-                   <widget class="QComboBox" name="combo_styles">
+                   <widget class="QComboBox" name="comboBox_language">
                     <property name="minimumSize">
                      <size>
                       <width>135</width>
                       <height>0</height>
                      </size>
                     </property>
+                    <property name="insertPolicy">
+                     <enum>QComboBox::InsertAtBottom</enum>
+                    </property>
                    </widget>
                   </item>
                   <item>
-                   <spacer name="horizontalSpacer">
+                   <widget class="QLabel" name="label_10">
+                    <property name="text">
+                     <string>(requires restart)</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <spacer name="horizontalSpacer_3">
                     <property name="orientation">
                      <enum>Qt::Horizontal</enum>
                     </property>
@@ -421,12 +390,46 @@
                   </item>
                  </layout>
                 </item>
-                <item row="2" column="0">
-                 <widget class="QLabel" name="label_29">
-                  <property name="text">
-                   <string>Style</string>
-                  </property>
-                 </widget>
+                <item row="5" column="1">
+                 <layout class="QHBoxLayout" name="horizontalLayout_9">
+                  <item>
+                   <widget class="QRadioButton" name="general_icon_octave">
+                    <property name="text">
+                     <string>Octave logo only</string>
+                    </property>
+                    <property name="checked">
+                     <bool>true</bool>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <widget class="QRadioButton" name="general_icon_letter">
+                    <property name="text">
+                     <string>Letter icons</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <widget class="QRadioButton" name="general_icon_graphic">
+                    <property name="text">
+                     <string>Graphic icons</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <spacer name="horizontalSpacer_6">
+                    <property name="orientation">
+                     <enum>Qt::Horizontal</enum>
+                    </property>
+                    <property name="sizeHint" stdset="0">
+                     <size>
+                      <width>40</width>
+                      <height>20</height>
+                     </size>
+                    </property>
+                   </spacer>
+                  </item>
+                 </layout>
                 </item>
                </layout>
               </item>
@@ -584,8 +587,8 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>668</width>
-            <height>267</height>
+            <width>1035</width>
+            <height>573</height>
            </rect>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_7">
@@ -865,8 +868,8 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>765</width>
-            <height>1515</height>
+            <width>1021</width>
+            <height>1427</height>
            </rect>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_16">
@@ -1071,7 +1074,7 @@
                    </sizepolicy>
                   </property>
                   <property name="text">
-                   <string>Highlight current line</string>
+                   <string>Highlight current line (color adjustable below with editor styles)</string>
                   </property>
                  </widget>
                 </item>
@@ -2114,6 +2117,13 @@
              </property>
              <layout class="QVBoxLayout" name="verticalLayout_31">
               <item>
+               <layout class="QVBoxLayout" name="editor_styles_layout">
+                <property name="bottomMargin">
+                 <number>8</number>
+                </property>
+               </layout>
+              </item>
+              <item>
                <widget class="QLabel" name="label_23">
                 <property name="text">
                  <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (&lt;b&gt;b&lt;/b&gt;old, &lt;b&gt;i&lt;/b&gt;talic, &lt;b&gt;u&lt;/b&gt;nderline), text color, and background color (for the latter, the color magenta (255,0,255) is a placeholder for the default background color).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
@@ -2124,9 +2134,6 @@
                </widget>
               </item>
               <item>
-               <layout class="QGridLayout" name="editor_style_grid"/>
-              </item>
-              <item>
                <widget class="QTabWidget" name="tabs_editor_lexers">
                 <property name="sizePolicy">
                  <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
@@ -2173,8 +2180,8 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>595</width>
-            <height>410</height>
+            <width>1035</width>
+            <height>573</height>
            </rect>
           </property>
           <layout class="QGridLayout" name="gridLayout_8">
@@ -2323,8 +2330,8 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>259</width>
-            <height>67</height>
+            <width>1035</width>
+            <height>573</height>
            </rect>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_19">
@@ -2385,8 +2392,8 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>605</width>
-            <height>233</height>
+            <width>1035</width>
+            <height>573</height>
            </rect>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_vesc_manual">
@@ -2551,7 +2558,7 @@
             <x>0</x>
             <y>0</y>
             <width>1035</width>
-            <height>569</height>
+            <height>573</height>
            </rect>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_25">
@@ -2770,8 +2777,8 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>703</width>
-            <height>310</height>
+            <width>1035</width>
+            <height>573</height>
            </rect>
           </property>
           <layout class="QVBoxLayout" name="verticalLayout_20">
--- a/libgui/src/terminal-dock-widget.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/terminal-dock-widget.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -30,7 +30,9 @@
 #include <QScreen>
 
 // This header is only needed for the new terminal widget.
-#include "command-widget.h"
+#if defined (HAVE_QSCINTILLA)
+#  include "command-widget.h"
+#endif
 
 // This header is only needed for the old terminal widget.
 #include "QTerminal.h"
@@ -52,7 +54,9 @@
     // matter much if we will eventually be removing the old terminal.
     if (m_experimental_terminal_widget)
       {
+#if defined (HAVE_QSCINTILLA)
         command_widget *widget = new command_widget (oct_qobj, this);
+        console *con = widget->get_console ();
 
         connect (this, &terminal_dock_widget::settings_changed,
                  widget, &command_widget::notice_settings);
@@ -63,7 +67,14 @@
         connect (this, &terminal_dock_widget::interpreter_output_signal,
                  widget, &command_widget::insert_interpreter_output);
 
+        connect (this, &terminal_dock_widget::execute_command_signal,
+                con, &console::execute_command);
+
+        connect (this, &terminal_dock_widget::new_command_line_signal,
+                con, &console::new_command_line);
+
         m_terminal = widget;
+#endif
       }
     else
       {
@@ -83,7 +94,6 @@
     m_terminal->setObjectName ("OctaveTerminal");
     m_terminal->setFocusPolicy (Qt::StrongFocus);
 
-    setWindowIcon (QIcon (":/actions/icons/logo.png"));
     set_title (tr ("Command Window"));
 
     setWidget (m_terminal);
@@ -133,27 +143,28 @@
             ? nullptr : dynamic_cast<QTerminal *> (m_terminal));
   }
 
+#if defined (HAVE_QSCINTILLA)
   command_widget * terminal_dock_widget::get_command_widget (void)
   {
     return (m_experimental_terminal_widget
             ? dynamic_cast<command_widget *> (m_terminal) : nullptr);
   }
+#endif
 
   void terminal_dock_widget::notice_settings (const gui_settings *settings)
   {
     emit settings_changed (settings);
   }
 
-  void terminal_dock_widget::interpreter_output (const QString& msg)
+  void terminal_dock_widget::init_command_prompt ()
   {
     if (m_experimental_terminal_widget)
-      emit interpreter_output_signal (msg);
+      {
+#if defined (HAVE_QSCINTILLA)
+        command_widget *cmd = get_command_widget ();
+        if (cmd)
+          cmd->init_command_prompt ();
+#endif
+      }
   }
-
-  void terminal_dock_widget::update_prompt (const QString& prompt)
-  {
-    if (m_experimental_terminal_widget)
-      emit update_prompt_signal (prompt);
-  }
-
 }
--- a/libgui/src/terminal-dock-widget.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/terminal-dock-widget.h	Tue Nov 15 13:15:28 2022 -0800
@@ -49,6 +49,8 @@
 
     bool has_focus (void) const;
 
+    void init_command_prompt ();
+
     // FIXME: The next two functions could be eliminated (or combined)
     // if we had a common interface for the old and new terminal
     // widgets.
@@ -56,31 +58,30 @@
     // Only valid if using the old terminal widget.
     QTerminal * get_qterminal (void);
 
+#if defined (HAVE_QSCINTILLA)
     // Only valid if using the new terminal widget.
     command_widget * get_command_widget (void);
+#endif
 
   signals:
 
     void settings_changed (const gui_settings *settings);
 
-    // Note: UPDATE_PROMPT_SIGNAL and INTERPRETER_OUTPUT_SIGNAL are
+    // Note: the following four signals are
     // currently only used by the new experimental terminal widget.
 
     void update_prompt_signal (const QString&);
 
     void interpreter_output_signal (const QString&);
 
+    void new_command_line_signal (const QString& = QString ());
+
+    void execute_command_signal (const QString&);
+
   public slots:
 
     void notice_settings (const gui_settings *settings);
 
-    // Note: INTERPRETER_OUTPUT and UPDATE_PROMPT are currently only
-    // used by the new experimental terminal widget.
-
-    void interpreter_output (const QString&);
-
-    void update_prompt (const QString&);
-
   private:
 
     bool m_experimental_terminal_widget;
--- a/libgui/src/variable-editor.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/variable-editor.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -51,6 +51,7 @@
 #include "builtin-defun-decls.h"
 #include "dw-main-window.h"
 #include "gui-preferences-cs.h"
+#include "gui-preferences-dw.h"
 #include "gui-preferences-global.h"
 #include "gui-preferences-sc.h"
 #include "gui-preferences-ve.h"
@@ -171,7 +172,8 @@
   {
     if (toplevel)
       {
-        m_dock_action->setIcon (QIcon (":/actions/icons/widget-dock.png"));
+        m_dock_action->setIcon (QIcon (global_icon_paths.at (ICON_THEME_OCTAVE)
+                                       + "widget-dock.png"));
         m_dock_action->setToolTip (tr ("Dock widget"));
 
         setWindowFlags (Qt::Window);
@@ -188,7 +190,8 @@
       }
     else
       {
-        m_dock_action->setIcon (QIcon (":/actions/icons/widget-undock.png"));
+        m_dock_action->setIcon (QIcon (global_icon_paths.at (ICON_THEME_OCTAVE)
+                                       + "widget-undock.png"));
         m_dock_action->setToolTip (tr ("Undock widget"));
 
         setFocus ();
@@ -1113,7 +1116,6 @@
   {
     set_title (tr ("Variable Editor"));
     setStatusTip (tr ("Edit variables."));
-    setWindowIcon (QIcon (":/actions/icons/logo.png"));
     setAttribute (Qt::WA_AlwaysShowToolTips);
 
     m_main->setParent (this);
@@ -1210,7 +1212,7 @@
       }
 
     QDockWidget *existing_qdw = m_main->findChild<QDockWidget *> (name);
-    if (existing_qdw != NULL)
+    if (existing_qdw)
       {
         // Already open.
 
--- a/libgui/src/welcome-wizard.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/welcome-wizard.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -37,6 +37,7 @@
   #include <windows.h>
 #endif
 
+#include "gui-preferences-dw.h"
 #include "gui-preferences-nr.h"
 #include "octave-qobject.h"
 #include "welcome-wizard.h"
@@ -47,7 +48,7 @@
   make_octave_logo (QWidget *p = nullptr, int height = 100)
   {
     QLabel *logo = new QLabel (p);
-    QPixmap logo_pixmap (":/actions/icons/logo.png");
+    QPixmap logo_pixmap (dw_icon_set_names["NONE"]);
     logo->setPixmap (logo_pixmap.scaledToHeight (height));
     return logo;
   };
--- a/libgui/src/workspace-view.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libgui/src/workspace-view.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -55,7 +55,6 @@
       m_filter (new QComboBox (this)),
       m_filter_widget (new QWidget (this))
   {
-    setWindowIcon (QIcon (":/actions/icons/logo.png"));
     set_title (tr ("Workspace"));
     setStatusTip (tr ("View the variables in the active workspace."));
 
--- a/libinterp/build-env.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/build-env.h	Tue Nov 15 13:15:28 2022 -0800
@@ -161,7 +161,6 @@
     extern OCTINTERP_API const char *SUNDIALS_SUNLINSOLKLU_CPPFLAGS;
     extern OCTINTERP_API const char *SUNDIALS_SUNLINSOLKLU_LDFLAGS;
     extern OCTINTERP_API const char *SUNDIALS_SUNLINSOLKLU_LIBS;
-    extern OCTINTERP_API const char *TERM_LIBS;
     extern OCTINTERP_API const char *UMFPACK_CPPFLAGS;
     extern OCTINTERP_API const char *UMFPACK_LDFLAGS;
     extern OCTINTERP_API const char *UMFPACK_LIBS;
--- a/libinterp/build-env.in.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/build-env.in.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -285,8 +285,6 @@
 
     const char *SUNDIALS_SUNLINSOLKLU_LIBS = %OCTAVE_CONF_SUNDIALS_SUNLINSOLKLU_LIBS%;
 
-    const char *TERM_LIBS = %OCTAVE_CONF_TERM_LIBS%;
-
     const char *UMFPACK_CPPFLAGS = %OCTAVE_CONF_UMFPACK_CPPFLAGS%;
 
     const char *UMFPACK_LDFLAGS = %OCTAVE_CONF_UMFPACK_LDFLAGS%;
--- a/libinterp/corefcn/__eigs__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/__eigs__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -195,7 +195,7 @@
   SparseComplexMatrix ascm, bscm, bsct;
   int b_arg = 0;
   bool have_b = false;
-  bool have_a_fun = false;
+  bool have_a_fcn = false;
   bool a_is_complex = false;
   bool b_is_complex = false;
   bool symmetric = false;
@@ -234,7 +234,7 @@
 
       n = args(1).nint_value ();
       arg_offset = 1;
-      have_a_fun = true;
+      have_a_fcn = true;
     }
   else
     {
@@ -343,7 +343,7 @@
         }
 
       // isreal is ignored if A is not a function
-      if (have_a_fun)
+      if (have_a_fcn)
         {
           tmp = map.getfield ("isreal");
           if (tmp.is_defined ())
@@ -398,7 +398,7 @@
     error ("eigs: incorrect number of arguments");
 
   // Test undeclared (no issym) matrix inputs for symmetry
-  if (! sym_tested && ! have_a_fun)
+  if (! sym_tested && ! have_a_fcn)
     {
       if (a_is_complex)
         {
@@ -452,7 +452,7 @@
       ComplexMatrix eig_vec;
       ComplexColumnVector eig_val;
 
-      if (have_a_fun)
+      if (have_a_fcn)
         {
           if (b_is_sparse)
             nconv = EigsComplexNonSymmetricFunc
@@ -520,7 +520,7 @@
       ComplexMatrix eig_vec;
       ComplexColumnVector eig_val;
 
-      if (have_a_fun)
+      if (have_a_fcn)
         {
           if (b_is_sparse)
             nconv = EigsComplexNonSymmetricFunc
@@ -574,7 +574,7 @@
           Matrix eig_vec;
           ColumnVector eig_val;
 
-          if (have_a_fun)
+          if (have_a_fcn)
             {
               if (b_is_sparse)
                 nconv = EigsRealSymmetricFunc
@@ -624,7 +624,7 @@
           ComplexMatrix eig_vec;
           ComplexColumnVector eig_val;
 
-          if (have_a_fun)
+          if (have_a_fcn)
             {
               if (b_is_sparse)
                 nconv = EigsRealNonSymmetricFunc
--- a/libinterp/corefcn/__ftp__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/__ftp__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -82,7 +82,7 @@
 
 DEFMETHOD (__ftp_pwd__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __ftp_pwd__ (@var{handle})
+@deftypefn {} {@var{pwd} =} __ftp_pwd__ (@var{handle})
 Undocumented internal function
 @end deftypefn */)
 {
@@ -122,7 +122,8 @@
 
 DEFMETHOD (__ftp_dir__, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __ftp_dir__ (@var{handle})
+@deftypefn  {} {} __ftp_dir__ (@var{handle})
+@deftypefnx {} {@var{S} =} __ftp_dir__ (@var{handle})
 Undocumented internal function
 @end deftypefn */)
 {
@@ -248,7 +249,7 @@
 
 DEFMETHOD (__ftp_mode__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __ftp_mode__ (@var{handle})
+@deftypefn {} {@var{mode} =} __ftp_mode__ (@var{handle})
 Undocumented internal function
 @end deftypefn */)
 {
@@ -345,7 +346,8 @@
 
 DEFMETHOD (__ftp_mput__, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __ftp_mput__ (@var{handle}, @var{files})
+@deftypefn  {} {} __ftp_mput__ (@var{handle}, @var{files})
+@deftypefnx {} {@var{filelist} =} __ftp_mput__ (@var{handle}, @var{files})
 Undocumented internal function
 @end deftypefn */)
 {
--- a/libinterp/corefcn/__isprimelarge__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/__isprimelarge__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -98,7 +98,8 @@
 bool
 isprimescalar (uint64_t n)
 {
-  // Fast return for even numbers. n==2 is excluded by the time this function is called.
+  // Fast return for even numbers.
+  // n==2 is excluded by the time this function is called.
   if (! (n & 1))
     return false;
 
@@ -189,9 +190,94 @@
 %!assert (__isprimelarge__ (uint64 (2305843009213693951)), true)
 %!assert (__isprimelarge__ (uint64 (18446744073709551557)), true)
 
-%!assert (__isprimelarge__ ([uint64(12345), uint64(2147483647), uint64(2305843009213693951), uint64(18446744073709551557)]), logical ([0 1 1 1]))
+%!assert (__isprimelarge__ ([uint64(12345), uint64(2147483647), ...
+%!                           uint64(2305843009213693951), ...
+%!                           uint64(18446744073709551557)]),
+%!        logical ([0 1 1 1]))
 
 %!error <unable to convert input> (__isprimelarge__ ({'foo'; 'bar'}))
 */
 
+
+// This function implements a fast, private GCD function
+// optimized for uint64_t.  No input validation by design.
+inline
+uint64_t
+localgcd (uint64_t a, uint64_t b)
+{
+  return (a <= b) ? ( (b % a == 0) ? a : localgcd (a, b % a) )
+                  : ( (a % b == 0) ? b : localgcd (a % b, b) );
+}
+
+// This function implements a textbook version of the Pollard Rho
+// factorization algorithm with Brent update.
+// The code is short and simple, but the math behind it is complicated.
+uint64_t
+pollardrho (uint64_t n, uint64_t c = UINT64_C (1))
+{
+  uint64_t i = UINT64_C (1), j = UINT64_C (2);  // cycle index values
+  uint64_t x = (c+1) % n;       // can also be rand () % n
+  uint64_t y = x;               // other value in the chain
+  uint64_t g = 0;               // GCD
+
+  while (true)
+    {
+      i++;
+
+      // Calculate x = mod (x^2 + c, n) without overflow.
+      x = safemultiply (x, x, n) + c;
+      if (x >= n)
+        x -= n;
+
+      // Calculate GCD (abs (x-y), n).
+      g = (x > y) ? localgcd (x - y, n) : (x < y) ? localgcd (y - x, n) : 0;
+
+      if (i == j)  // cycle detected ==> double j
+        {
+          y = x;
+          j <<= 1;
+        }
+
+      if (g == n || i > UINT64_C (1000000))  // cut losses, restart with a different c
+        return pollardrho (n, c + 2);
+
+      if (g > UINT64_C (1))  // found GCD ==> exit loop properly
+        {
+          error_unless (n % g == 0);  // theoretical possibility of GCD error
+          return g;
+        }
+    }
+}
+
+DEFUN (__pollardrho__, args, ,
+       doc: /* -*- texinfo -*-
+@deftypefn {} {@var{x} =} __pollardrho__ (@var{n})
+Private function.  Use the Pollard Rho test to find a factor of @var{n}.
+The input @var{n} is required to be a composite 64-bit integer.
+Do not pass it a prime input!  You should call factor(@var{n}) instead
+of directly calling this function.
+
+@seealso{isprime, factor}
+@end deftypefn */)
+{
+  int nargin = args.length ();
+  if (nargin != 1)
+    print_usage ();
+
+  octave_uint64 inp = args(0).xuint64_scalar_value
+    ("__pollardrho__: unable to convert input. Call factor() instead.");
+
+  uint64_t n = inp;
+  octave_uint64 retval = pollardrho (n);
+
+  return ovl (retval);
+}
+
+/*
+%!assert (__pollardrho__ (uint64 (78567695338254293)), uint64 (443363))
+%!assert (__pollardrho__ (1084978968791), uint64 (832957))
+
+%!error <unable to convert input> (__pollardrho__ ({'foo'; 'bar'}))
+*/
+
 OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/__lin_interpn__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/__lin_interpn__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -35,6 +35,8 @@
 #include "error.h"
 #include "ovl.h"
 
+#include <type_traits>
+
 OCTAVE_NAMESPACE_BEGIN
 
 // equivalent to isvector.m
@@ -127,11 +129,11 @@
 
 // n-dimensional linear interpolation
 
-template <typename T>
+template <typename T, typename DT>
 void
 lin_interpn (int n, const octave_idx_type *size, const octave_idx_type *scale,
-             octave_idx_type Ni, T extrapval, const T **x,
-             const T *v, const T **y, T *vi)
+             octave_idx_type Ni, DT extrapval, const T **x,
+             const DT *v, const T **y, DT *vi)
 {
   bool out = false;
   int bit;
@@ -185,13 +187,17 @@
     }
 }
 
-template <typename T, typename M>
+template <typename MT, typename DMT, typename DT>
 octave_value
-lin_interpn (int n, M *X, const M V, M *Y)
+lin_interpn (int n, MT *X, const DMT V, MT *Y, DT extrapval)
 {
+  static_assert(std::is_same<DT, typename DMT::element_type>::value,
+                "Type DMT must be an ArrayType with elements of type DT.");
+  using T = typename MT::element_type;
+
   octave_value retval;
 
-  M Vi = M (Y[0].dims ());
+  DMT Vi = DMT (Y[0].dims ());
 
   OCTAVE_LOCAL_BUFFER (const T *, y, n);
   OCTAVE_LOCAL_BUFFER (octave_idx_type, size, n);
@@ -205,12 +211,10 @@
   OCTAVE_LOCAL_BUFFER (const T *, x, n);
   OCTAVE_LOCAL_BUFFER (octave_idx_type, scale, n);
 
-  const T *v = V.data ();
-  T *vi = Vi.fortran_vec ();
+  const DT *v = V.data ();
+  DT *vi = Vi.fortran_vec ();
   octave_idx_type Ni = Vi.numel ();
 
-  T extrapval = octave_NA;
-
   // offset in memory of each dimension
 
   scale[0] = 1;
@@ -228,7 +232,7 @@
           if (X[i].dims () != V.dims ())
             error ("interpn: incompatible size of argument number %d", i+1);
 
-          M tmp = M (dim_vector (size[i], 1));
+          MT tmp = MT (dim_vector (size[i], 1));
 
           for (octave_idx_type j = 0; j < size[i]; j++)
             tmp(j) = X[i](scale[i]*j);
@@ -284,8 +288,6 @@
       OCTAVE_LOCAL_BUFFER (FloatNDArray, X, n);
       OCTAVE_LOCAL_BUFFER (FloatNDArray, Y, n);
 
-      const FloatNDArray V = args(n).float_array_value ();
-
       for (int i = 0; i < n; i++)
         {
           X[i] = args(i).float_array_value ();
@@ -295,15 +297,24 @@
             error ("interpn: incompatible size of argument number %d", n+i+2);
         }
 
-      retval = lin_interpn<float, FloatNDArray> (n, X, V, Y);
+      if (args(n).iscomplex ())
+        {
+          const FloatComplexNDArray V = args(n).float_complex_array_value ();
+          FloatComplex extrapval (octave_NA, octave_NA);
+          retval = lin_interpn (n, X, V, Y, extrapval);
+        }
+      else
+        {
+          const FloatNDArray V = args(n).float_array_value ();
+          float extrapval = octave_NA;
+          retval = lin_interpn (n, X, V, Y, extrapval);
+        }
     }
   else
     {
       OCTAVE_LOCAL_BUFFER (NDArray, X, n);
       OCTAVE_LOCAL_BUFFER (NDArray, Y, n);
 
-      const NDArray V = args(n).array_value ();
-
       for (int i = 0; i < n; i++)
         {
           X[i] = args(i).array_value ();
@@ -313,15 +324,36 @@
             error ("interpn: incompatible size of argument number %d", n+i+2);
         }
 
-      retval = lin_interpn<double, NDArray> (n, X, V, Y);
+      if (args(n).iscomplex ())
+        {
+          const ComplexNDArray V = args(n).complex_array_value ();
+          Complex extrapval (octave_NA, octave_NA);
+          retval = lin_interpn (n, X, V, Y, extrapval);
+        }
+      else
+        {
+          const NDArray V = args(n).array_value ();
+          double extrapval = octave_NA;
+          retval = lin_interpn (n, X, V, Y, extrapval);
+        }
     }
 
   return retval;
 }
 
 /*
-## No test needed for internal helper function.
-%!assert (1)
+## Test that real and imaginary parts are interpolated the same way
+## and outer points are set to NA + 1i*NA
+%!test <*61907>
+%! x1 = 1:3;
+%! x2 = 1:4;
+%! v = repmat(1:4, 3, 1) + 1i * repmat((1:3)', 1, 4);
+%! [XI2, XI1] = meshgrid(1.5:3.5, 1.5:3.5);
+%! vi_complex = __lin_interpn__ (x1, x2, v, XI1, XI2);
+%! vi_real = __lin_interpn__ (x1, x2, real (v), XI1, XI2);
+%! vi_imag = __lin_interpn__ (x1, x2, imag (v), XI1, XI2);
+%! assert (real (vi_complex), vi_real);
+%! assert (imag (vi_complex), vi_imag);
 */
 
 OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/__magick_read__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/__magick_read__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1677,7 +1677,7 @@
 // done in Octave language), and then again for the actual reading.
 DEFUN (__magick_ping__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __magick_ping__ (@var{fname}, @var{idx})
+@deftypefn {} {@var{fmt} =} __magick_ping__ (@var{fname}, @var{idx})
 Ping image information with GraphicsMagick or ImageMagick.
 
 This is a private internal function not intended for direct use.
@@ -1910,7 +1910,7 @@
 
 DEFUN (__magick_finfo__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __magick_finfo__ (@var{fname})
+@deftypefn {} {@var{infostruct} =} __magick_finfo__ (@var{fname})
 Read image information with GraphicsMagick or ImageMagick.
 
 This is a private internal function not intended for direct use.
@@ -2361,7 +2361,7 @@
 
 DEFUN (__magick_formats__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __magick_imformats__ (@var{formats})
+@deftypefn {} {@var{fmt_struct} =} __magick_imformats__ (@var{formats})
 Fill formats info with GraphicsMagick CoderInfo.
 
 @seealso{imfinfo, imformats, imread, imwrite}
--- a/libinterp/corefcn/__pchip_deriv__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/__pchip_deriv__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -43,7 +43,7 @@
 
 DEFUN (__pchip_deriv__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __pchip_deriv__ (@var{x}, @var{y}, @var{dim})
+@deftypefn {} {@var{d} =} __pchip_deriv__ (@var{x}, @var{y}, @var{dim})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -57,79 +57,167 @@
       if (args(0).is_single_type () || args(1).is_single_type ())
         {
           FloatColumnVector xvec (args(0).float_vector_value ());
-          FloatMatrix ymat (args(1).float_matrix_value ());
-
           F77_INT nx = to_f77_int (xvec.numel ());
-
           if (nx < 2)
             error ("__pchip_deriv__: X must be at least of length 2");
 
-          octave_idx_type nyr = ymat.rows ();
-          octave_idx_type nyc = ymat.columns ();
+          if (args(1).iscomplex ())
+            {
+              FloatComplexMatrix ymat (args(1).float_complex_matrix_value ());
+
+              octave_idx_type nyr = ymat.rows ();
+              octave_idx_type nyc = ymat.columns ();
 
-          if (nx != (rows ? nyc : nyr))
-            error ("__pchip_deriv__: X and Y dimension mismatch");
+              if (nx != (rows ? nyc : nyr))
+                error ("__pchip_deriv__: X and Y dimension mismatch");
+
+              FloatComplexMatrix dmat (nyr, nyc);
+
+              F77_INT ierr;
+              const F77_INT incfd = (rows ? to_f77_int (2*nyr) : 2);
+              volatile const octave_idx_type inc = (rows ? 2 : 2*nyr);
+              volatile octave_idx_type k = 0;
 
-          FloatMatrix dmat (nyr, nyc);
+              for (volatile octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
+                {
+                  F77_XFCN (pchim, PCHIM, (nx, xvec.data (),
+                                           reinterpret_cast<float const*>(ymat.data ()) + k * inc,
+                                           reinterpret_cast<float*>(dmat.fortran_vec ()) + k * inc,
+                                           incfd, ierr));
 
-          F77_INT ierr;
-          const F77_INT incfd = (rows ? to_f77_int (nyr) : 1);
-          volatile const octave_idx_type inc = (rows ? 1 : nyr);
-          volatile octave_idx_type k = 0;
+                  if (ierr < 0)
+                    error ("__pchip_deriv__: PCHIM failed for real part with ierr = %"
+                          OCTAVE_F77_INT_TYPE_FORMAT, ierr);
+
+                  F77_XFCN (pchim, PCHIM, (nx, xvec.data (),
+                                           reinterpret_cast<float const*>(ymat.data ()) + 1 + k * inc,
+                                           reinterpret_cast<float*>(dmat.fortran_vec ()) + 1 + k * inc,
+                                           incfd, ierr));
+
+                  if (ierr < 0)
+                    error ("__pchip_deriv__: PCHIM failed for imaginary part with ierr = %"
+                          OCTAVE_F77_INT_TYPE_FORMAT, ierr);
 
-          for (volatile octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
+                  k++;
+                }
+
+              retval = dmat;
+            }
+          else
             {
-              F77_XFCN (pchim, PCHIM, (nx, xvec.data (),
-                                       ymat.data () + k * inc,
-                                       dmat.fortran_vec () + k * inc,
-                                       incfd, ierr));
+              FloatMatrix ymat (args(1).float_matrix_value ());
+
+              octave_idx_type nyr = ymat.rows ();
+              octave_idx_type nyc = ymat.columns ();
+
+              if (nx != (rows ? nyc : nyr))
+                error ("__pchip_deriv__: X and Y dimension mismatch");
+
+              FloatMatrix dmat (nyr, nyc);
 
-              k++;
+              F77_INT ierr;
+              const F77_INT incfd = (rows ? to_f77_int (nyr) : 1);
+              volatile const octave_idx_type inc = (rows ? 1 : nyr);
+              volatile octave_idx_type k = 0;
 
-              if (ierr < 0)
-                error ("__pchip_deriv__: PCHIM failed with ierr = %"
-                       OCTAVE_F77_INT_TYPE_FORMAT, ierr);
+              for (volatile octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
+                {
+                  F77_XFCN (pchim, PCHIM, (nx, xvec.data (),
+                                           ymat.data () + k * inc,
+                                           dmat.fortran_vec () + k * inc,
+                                           incfd, ierr));
+
+                  k++;
+
+                  if (ierr < 0)
+                    error ("__pchip_deriv__: PCHIM failed with ierr = %"
+                          OCTAVE_F77_INT_TYPE_FORMAT, ierr);
+                }
+
+              retval = dmat;
             }
-
-          retval = dmat;
         }
       else
         {
           ColumnVector xvec (args(0).vector_value ());
-          Matrix ymat (args(1).matrix_value ());
-
           F77_INT nx = to_f77_int (xvec.numel ());
-
           if (nx < 2)
             error ("__pchip_deriv__: X must be at least of length 2");
 
-          octave_idx_type nyr = ymat.rows ();
-          octave_idx_type nyc = ymat.columns ();
+          if (args(1).iscomplex ())
+            {
+              ComplexMatrix ymat (args(1).complex_matrix_value ());
+
+              octave_idx_type nyr = ymat.rows ();
+              octave_idx_type nyc = ymat.columns ();
 
-          if (nx != (rows ? nyc : nyr))
-            error ("__pchip_deriv__: X and Y dimension mismatch");
+              if (nx != (rows ? nyc : nyr))
+                error ("__pchip_deriv__: X and Y dimension mismatch");
+
+              ComplexMatrix dmat (nyr, nyc);
+
+              F77_INT ierr;
+              const F77_INT incfd = (rows ? to_f77_int (2*nyr) : 2);
+              volatile const octave_idx_type inc = (rows ? 2 : 2*nyr);
+              volatile octave_idx_type k = 0;
 
-          Matrix dmat (nyr, nyc);
+              for (volatile octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
+                {
+                  F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (),
+                                             reinterpret_cast<double const*>(ymat.data ()) + k * inc,
+                                             reinterpret_cast<double*>(dmat.fortran_vec ()) + k * inc,
+                                             incfd, ierr));
 
-          F77_INT ierr;
-          const F77_INT incfd = (rows ? to_f77_int (nyr) : 1);
-          volatile const octave_idx_type inc = (rows ? 1 : nyr);
-          volatile octave_idx_type k = 0;
+                  if (ierr < 0)
+                    error ("__pchip_deriv__: DPCHIM failed for real part with ierr = %"
+                          OCTAVE_F77_INT_TYPE_FORMAT, ierr);
+
+                  F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (),
+                                             reinterpret_cast<double const*>(ymat.data ()) + 1 + k * inc,
+                                             reinterpret_cast<double*>(dmat.fortran_vec ()) + 1 + k * inc,
+                                             incfd, ierr));
+
+                  if (ierr < 0)
+                    error ("__pchip_deriv__: DPCHIM failed for imaginary part with ierr = %"
+                          OCTAVE_F77_INT_TYPE_FORMAT, ierr);
 
-          for (volatile octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
+                  k++;
+                }
+
+              retval = dmat;
+            }
+          else
             {
-              F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (),
-                                         ymat.data () + k * inc,
-                                         dmat.fortran_vec () + k * inc,
-                                         incfd, ierr));
-              k++;
+              Matrix ymat (args(1).matrix_value ());
+
+              octave_idx_type nyr = ymat.rows ();
+              octave_idx_type nyc = ymat.columns ();
+
+              if (nx != (rows ? nyc : nyr))
+                error ("__pchip_deriv__: X and Y dimension mismatch");
+
+              Matrix dmat (nyr, nyc);
+
+              F77_INT ierr;
+              const F77_INT incfd = (rows ? to_f77_int (nyr) : 1);
+              volatile const octave_idx_type inc = (rows ? 1 : nyr);
+              volatile octave_idx_type k = 0;
 
-              if (ierr < 0)
-                error ("__pchip_deriv__: DPCHIM failed with ierr = %"
-                       OCTAVE_F77_INT_TYPE_FORMAT, ierr);
+              for (volatile octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
+                {
+                  F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (),
+                                             ymat.data () + k * inc,
+                                             dmat.fortran_vec () + k * inc,
+                                             incfd, ierr));
+                  k++;
+
+                  if (ierr < 0)
+                    error ("__pchip_deriv__: DPCHIM failed with ierr = %"
+                          OCTAVE_F77_INT_TYPE_FORMAT, ierr);
+                }
+
+              retval = dmat;
             }
-
-          retval = dmat;
         }
     }
 
@@ -137,8 +225,37 @@
 }
 
 /*
-## No test needed for internal helper function.
-%!assert (1)
+%!shared x, y
+%! x = 0:3;
+%! y = x.^2 + 1i * x.^3;
+
+%!test
+%! d_complex = __pchip_deriv__ (x, y, 2);
+%! d_real = __pchip_deriv__ (x, real (y), 2);
+%! d_imag = __pchip_deriv__ (x, imag (y), 2);
+%! assert (real (d_complex), d_real);
+%! assert (imag (d_complex), d_imag);
+
+%!test
+%! d_complex = __pchip_deriv__ (x.', y.');
+%! d_real = __pchip_deriv__ (x.', real (y.'));
+%! d_imag = __pchip_deriv__ (x.', imag (y.'));
+%! assert (real (d_complex), d_real);
+%! assert (imag (d_complex), d_imag);
+
+%!test
+%! d_complex = __pchip_deriv__ (single (x), single (y), 2);
+%! d_real = __pchip_deriv__ (single (x), real (single (y)), 2);
+%! d_imag = __pchip_deriv__ (single (x), imag (single (y)), 2);
+%! assert (real (d_complex), d_real);
+%! assert (imag (d_complex), d_imag);
+
+%!test
+%! d_complex = __pchip_deriv__ (single (x'), single (y'));
+%! d_real = __pchip_deriv__ (single (x'), real (single (y')));
+%! d_imag = __pchip_deriv__ (single (x'), imag (single (y')));
+%! assert (real (d_complex), d_real);
+%! assert (imag (d_complex), d_imag);
 */
 
 OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/besselj.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/besselj.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -83,7 +83,7 @@
   while (0)
 
 octave_value_list
-do_bessel (enum bessel_type type, const char *fn,
+do_bessel (enum bessel_type type, const char *fcn,
            const octave_value_list& args, int nargout)
 {
   int nargin = args.length ();
@@ -112,7 +112,7 @@
         scaled = opt_arg.bool_value ();
 
       if (rpt_error)
-        error ("%s: OPT must be 0 (or false) or 1 (or true)", fn);
+        error ("%s: OPT must be 0 (or false) or 1 (or true)", fcn);
     }
 
   octave_value alpha_arg = args(0);
@@ -122,11 +122,11 @@
     {
       if (alpha_arg.is_scalar_type ())
         {
-          float alpha = args(0).xfloat_value ("%s: ALPHA must be a scalar or matrix", fn);
+          float alpha = args(0).xfloat_value ("%s: ALPHA must be a scalar or matrix", fcn);
 
           if (x_arg.is_scalar_type ())
             {
-              FloatComplex x = x_arg.xfloat_complex_value ("%s: X must be a scalar or matrix", fn);
+              FloatComplex x = x_arg.xfloat_complex_value ("%s: X must be a scalar or matrix", fcn);
 
               octave_idx_type ierr;
               octave_value result;
@@ -139,7 +139,7 @@
             }
           else
             {
-              FloatComplexNDArray x = x_arg.xfloat_complex_array_value ("%s: X must be a scalar or matrix", fn);
+              FloatComplexNDArray x = x_arg.xfloat_complex_array_value ("%s: X must be a scalar or matrix", fcn);
 
               Array<octave_idx_type> ierr;
               octave_value result;
@@ -161,10 +161,10 @@
 
           if (args0_is_row_vector && args1_is_col_vector)
             {
-              FloatRowVector ralpha = args(0).xfloat_row_vector_value ("%s: ALPHA must be a scalar or matrix", fn);
+              FloatRowVector ralpha = args(0).xfloat_row_vector_value ("%s: ALPHA must be a scalar or matrix", fcn);
 
               FloatComplexColumnVector cx
-                = x_arg.xfloat_complex_column_vector_value ("%s: X must be a scalar or matrix", fn);
+                = x_arg.xfloat_complex_column_vector_value ("%s: X must be a scalar or matrix", fcn);
 
               Array<octave_idx_type> ierr;
               octave_value result;
@@ -177,11 +177,11 @@
             }
           else
             {
-              FloatNDArray alpha = args(0).xfloat_array_value ("%s: ALPHA must be a scalar or matrix", fn);
+              FloatNDArray alpha = args(0).xfloat_array_value ("%s: ALPHA must be a scalar or matrix", fcn);
 
               if (x_arg.is_scalar_type ())
                 {
-                  FloatComplex x = x_arg.xfloat_complex_value ("%s: X must be a scalar or matrix", fn);
+                  FloatComplex x = x_arg.xfloat_complex_value ("%s: X must be a scalar or matrix", fcn);
 
                   Array<octave_idx_type> ierr;
                   octave_value result;
@@ -194,7 +194,7 @@
                 }
               else
                 {
-                  FloatComplexNDArray x = x_arg.xfloat_complex_array_value ("%s: X must be a scalar or matrix", fn);
+                  FloatComplexNDArray x = x_arg.xfloat_complex_array_value ("%s: X must be a scalar or matrix", fcn);
 
                   Array<octave_idx_type> ierr;
                   octave_value result;
@@ -212,11 +212,11 @@
     {
       if (alpha_arg.is_scalar_type ())
         {
-          double alpha = args(0).xdouble_value ("%s: ALPHA must be a scalar or matrix", fn);
+          double alpha = args(0).xdouble_value ("%s: ALPHA must be a scalar or matrix", fcn);
 
           if (x_arg.is_scalar_type ())
             {
-              Complex x = x_arg.xcomplex_value ("%s: X must be a scalar or matrix", fn);
+              Complex x = x_arg.xcomplex_value ("%s: X must be a scalar or matrix", fcn);
 
               octave_idx_type ierr;
               octave_value result;
@@ -229,7 +229,7 @@
             }
           else
             {
-              ComplexNDArray x = x_arg.xcomplex_array_value ("%s: X must be a scalar or matrix", fn);
+              ComplexNDArray x = x_arg.xcomplex_array_value ("%s: X must be a scalar or matrix", fcn);
 
               Array<octave_idx_type> ierr;
               octave_value result;
@@ -251,10 +251,10 @@
 
           if (args0_is_row_vector && args1_is_col_vector)
             {
-              RowVector ralpha = args(0).xrow_vector_value ("%s: ALPHA must be a scalar or matrix", fn);
+              RowVector ralpha = args(0).xrow_vector_value ("%s: ALPHA must be a scalar or matrix", fcn);
 
               ComplexColumnVector cx
-                = x_arg.xcomplex_column_vector_value ("%s: X must be a scalar or matrix", fn);
+                = x_arg.xcomplex_column_vector_value ("%s: X must be a scalar or matrix", fcn);
 
               Array<octave_idx_type> ierr;
               octave_value result;
@@ -267,11 +267,11 @@
             }
           else
             {
-              NDArray alpha = args(0).xarray_value ("%s: ALPHA must be a scalar or matrix", fn);
+              NDArray alpha = args(0).xarray_value ("%s: ALPHA must be a scalar or matrix", fcn);
 
               if (x_arg.is_scalar_type ())
                 {
-                  Complex x = x_arg.xcomplex_value ("%s: X must be a scalar or matrix", fn);
+                  Complex x = x_arg.xcomplex_value ("%s: X must be a scalar or matrix", fcn);
 
                   Array<octave_idx_type> ierr;
                   octave_value result;
@@ -284,7 +284,7 @@
                 }
               else
                 {
-                  ComplexNDArray x = x_arg.xcomplex_array_value ("%s: X must be a scalar or matrix", fn);
+                  ComplexNDArray x = x_arg.xcomplex_array_value ("%s: X must be a scalar or matrix", fcn);
 
                   Array<octave_idx_type> ierr;
                   octave_value result;
@@ -355,6 +355,10 @@
 
 /*
 %!# Function besselj is tested along with other bessels at the end of this file
+
+## besselj specific BIST
+%!assert <*48316> (! any (isnan (besselj (1, 10.^[5:12]))))
+
 */
 
 DEFUN (bessely, args, nargout,
@@ -466,6 +470,10 @@
 
 /*
 %!# Function besseli is tested along with other bessels at the end of this file
+
+## besseli specific BIST
+%!assert (! isinf (besseli (0, 700))) 
+
 */
 
 DEFUN (besselk, args, nargout,
@@ -616,12 +624,16 @@
 
 DEFUN (airy, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn {} {[@var{a}, @var{ierr}] =} airy (@var{k}, @var{z}, @var{opt})
+@deftypefn  {} {@var{a} =} airy (@var{z})
+@deftypefnx {} {@var{a} =} airy (@var{k}, @var{z})
+@deftypefnx {} {@var{a} =} airy (@var{k}, @var{z}, @var{scale})
+@deftypefnx {} {[@var{a}, @var{ierr}] =} airy (@dots{})
+
 Compute Airy functions of the first and second kind, and their derivatives.
 
 @example
 @group
- K   Function   Scale factor (if "opt" is supplied)
+ K   Function   Scale factor (if @var{scale} is true)
 ---  --------   ---------------------------------------
  0   Ai (Z)     exp ((2/3) * Z * sqrt (Z))
  1   dAi(Z)/dZ  exp ((2/3) * Z * sqrt (Z))
@@ -633,9 +645,12 @@
 The function call @code{airy (@var{z})} is equivalent to
 @code{airy (0, @var{z})}.
 
-The result is the same size as @var{z}.
+The optional third input @var{scale} determines whether to
+apply scaling as described above.  It is false by default.
 
-If requested, @var{ierr} contains the following status information and
+The result @var{a} is the same size as @var{z}.
+
+The optional output @var{ierr} contains the following status information and
 is the same size as the result.
 
 @enumerate 0
@@ -677,50 +692,91 @@
         error ("airy: K must be 0, 1, 2, or 3");
     }
 
-  bool scale = (nargin == 3);
+  bool scale = (nargin == 3) && args(2).xbool_value ("airy: scale option must be a logical value");
 
   int idx = (nargin == 1 ? 0 : 1);
 
+  Array<octave_idx_type> ierr;
+  octave_value result;
+
   if (args(idx).is_single_type ())
     {
       FloatComplexNDArray z = args(idx).xfloat_complex_array_value ("airy: Z must be a complex matrix");
 
-      Array<octave_idx_type> ierr;
-      octave_value result;
+      if (kind > 1)
+        result = math::biry (z, kind == 3, scale, ierr);
+      else
+        result = math::airy (z, kind == 1, scale, ierr);
+    }
+  else
+    {
+      ComplexNDArray z = args(idx).xcomplex_array_value ("airy: Z must be a complex matrix");
 
       if (kind > 1)
         result = math::biry (z, kind == 3, scale, ierr);
       else
         result = math::airy (z, kind == 1, scale, ierr);
-
-      retval(0) = result;
-      if (nargout > 1)
-        retval(1) = NDArray (ierr);
     }
-  else
-    {
-      ComplexNDArray z = args(idx).xcomplex_array_value ("airy: Z must be a complex matrix");
 
-      Array<octave_idx_type> ierr;
-      octave_value result;
-
-      if (kind > 1)
-        result = math::biry (z, kind == 3, scale, ierr);
-      else
-        result = math::airy (z, kind == 1, scale, ierr);
-
-      retval(0) = result;
-      if (nargout > 1)
-        retval(1) = NDArray (ierr);
-    }
+  retval(0) = result;
+  if (nargout > 1)
+    retval(1) = NDArray (ierr);
 
   return retval;
 }
 
 /*
-FIXME: Function airy does not yet have BIST tests
+%!test <*62321>
+%! assert (airy (0, +1, false),   0.1352924163128814,                       1e-15);
+%! assert (airy (0, -1, false),   0.5355608832923521,                       1e-15);
+%! assert (airy (0, +i, false),   0.3314933054321411 - 0.3174498589684437i, 1e-15);
+%! assert (airy (0, -i, false),   0.3314933054321411 + 0.3174498589684437i, 1e-15);
+%! assert (airy (0, +1,  true),   0.2635136447491401,                       1e-15);
+%! assert (airy (0, -1,  true),   0.4208904755499093 - 0.3311746779333462i, 1e-15);
+%! assert (airy (0, +i,  true),   0.2743053542644657 - 0.0825606941400591i, 1e-15);
+%! assert (airy (0, -i,  true),   0.2743053542644657 + 0.0825606941400591i, 1e-15);
+%! assert (airy (1, +1, false),  -0.1591474412967932,                       1e-15);
+%! assert (airy (1, -1, false),  -0.0101605671166451,                       1e-15);
+%! assert (airy (1, +i, false),  -0.4324926598418070 + 0.0980478562292432i, 1e-15);
+%! assert (airy (1, -i, false),  -0.4324926598418070 - 0.0980478562292432i, 1e-15);
+%! assert (airy (1, +1,  true),  -0.3099768889605148,                       1e-15);
+%! assert (airy (1, -1,  true),  -0.0079850602592406 + 0.0062829878869967i, 1e-15);
+%! assert (airy (1, +i,  true),  -0.2682792317254506 - 0.0680655016581369i, 1e-15);
+%! assert (airy (1, -i,  true),  -0.2682792317254506 + 0.0680655016581369i, 1e-15);
+%! assert (airy (2, +1, false),   1.2074235949528715,                       1e-15);
+%! assert (airy (2, -1, false),   0.1039973894969446,                       1e-15);
+%! assert (airy (2, +i, false),   0.6488582083303949 + 0.3449586347680484i, 1e-15);
+%! assert (airy (2, -i, false),   0.6488582083303949 - 0.3449586347680484i, 1e-15);
+%! assert (airy (2, +1,  true),   0.6199119435726786,                       1e-15);
+%! assert (airy (2, -1,  true),   0.1039973894969446,                       1e-15);
+%! assert (airy (2, +i,  true),   0.4049686654663902 + 0.2152973271658010i, 1e-15);
+%! assert (airy (2, -i,  true),   0.4049686654663902 - 0.2152973271658010i, 1e-15);
+%! assert (airy (3, +1, false),   0.9324359333927754,                       1e-15);
+%! assert (airy (3, -1, false),   0.5923756264227923,                       1e-15);
+%! assert (airy (3, +i, false),   0.1350266467108190 - 0.1288373867812549i, 1e-15);
+%! assert (airy (3, -i, false),   0.1350266467108190 + 0.1288373867812549i, 1e-15);
+%! assert (airy (3, +1,  true),   0.4787285706049846,                       1e-15);
+%! assert (airy (3, -1,  true),   0.5923756264227923,                       1e-15);
+%! assert (airy (3, +i,  true),   0.0842735134099415 - 0.0804106412111761i, 1e-15);
+%! assert (airy (3, -i,  true),   0.0842735134099415 + 0.0804106412111761i, 1e-15);
+%! z = -1 - 1e-6i;
+%! s1 = exp (2/3 * z * sqrt(z));
+%! s2 = exp (-abs (real (2/3 * z * sqrt(z))));
+%! assert (airy (0, z, true), s1 * airy (0, z, false), 1e-15);
+%! assert (airy (1, z, true), s1 * airy (1, z, false), 1e-15);
+%! assert (airy (2, z, true), s2 * airy (2, z, false), 1e-15);
+%! assert (airy (3, z, true), s2 * airy (3, z, false), 1e-15);
+
+Input validation tests
+%!error airy ()
+%!error airy (0, 1, 2, 3)
+%!error <K must be an integer value> airy ("foo", 2, false)
+%!error <K must be 0, 1, 2, or 3> airy (3743, 2, false)
+%!error <scale option must be a logical value> airy (0, 2, "foo")
+%!error <Z must be a complex matrix> airy (0, "foo", false)
 */
 
+
 /*
 ## Test values computed with GP/PARI version 2.3.3
 %!shared alpha, x, jx, yx, ix, kx, nix
--- a/libinterp/corefcn/bitfcns.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/bitfcns.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -361,7 +361,7 @@
 
 DEFUN (bitand, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} bitand (@var{x}, @var{y})
+@deftypefn {} {@var{z} =} bitand (@var{x}, @var{y})
 Return the bitwise AND of non-negative integers.
 
 @var{x}, @var{y} must be in the range [0,intmax]
@@ -377,7 +377,7 @@
 
 DEFUN (bitor, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} bitor (@var{x}, @var{y})
+@deftypefn {} {@var{z} =} bitor (@var{x}, @var{y})
 Return the bitwise OR of non-negative integers @var{x} and @var{y}.
 
 @seealso{bitor, bitxor, bitset, bitget, bitcmp, bitshift, intmax, flintmax}
@@ -392,7 +392,7 @@
 
 DEFUN (bitxor, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} bitxor (@var{x}, @var{y})
+@deftypefn {} {@var{z} =} bitxor (@var{x}, @var{y})
 Return the bitwise XOR of non-negative integers @var{x} and @var{y}.
 
 @seealso{bitand, bitor, bitset, bitget, bitcmp, bitshift, intmax, flintmax}
@@ -536,14 +536,13 @@
 
 DEFUN (bitshift, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} bitshift (@var{a}, @var{k})
-@deftypefnx {} {} bitshift (@var{a}, @var{k}, @var{n})
-Return a @var{k} bit shift of @var{n}-digit unsigned integers in @var{a}.
+@deftypefn  {} {@var{B} =} bitshift (@var{A}, @var{k})
+@deftypefnx {} {@var{B} =} bitshift (@var{A}, @var{k}, @var{n})
+Return a @var{k} bit shift of @var{n}-digit unsigned integers in @var{A}.
 
 A positive @var{k} leads to a left shift; A negative value to a right shift.
 
-If @var{n} is omitted it defaults to 64.
-@var{n} must be in the range [1,64].
+If @var{n} is omitted it defaults to 64.  @var{n} must be in the range [1,64].
 
 @example
 @group
@@ -658,10 +657,10 @@
 
 DEFUN (flintmax, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} flintmax ()
-@deftypefnx {} {} flintmax ("double")
-@deftypefnx {} {} flintmax ("single")
-@deftypefnx {} {} flintmax (@var{var})
+@deftypefn  {} {@var{Imax} =} flintmax ()
+@deftypefnx {} {@var{Imax} =} flintmax ("double")
+@deftypefnx {} {@var{Imax} =} flintmax ("single")
+@deftypefnx {} {@var{Imax} =} flintmax (@var{var})
 Return the largest integer that can be represented consecutively in a
 floating point value.
 
@@ -726,9 +725,9 @@
 
 DEFUN (intmax, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} intmax ()
-@deftypefnx {} {} intmax ("@var{type}")
-@deftypefnx {} {} intmax (@var{var})
+@deftypefn  {} {@var{Imax} =} intmax ()
+@deftypefnx {} {@var{Imax} =} intmax ("@var{type}")
+@deftypefnx {} {@var{Imax} =} intmax (@var{var})
 Return the largest integer that can be represented by a specific integer type.
 
 The input is either a string @qcode{"@var{type}"} specifying an integer type,
@@ -840,9 +839,9 @@
 
 DEFUN (intmin, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} intmin ()
-@deftypefnx {} {} intmin ("@var{type}")
-@deftypefnx {} {} intmin (@var{var})
+@deftypefn  {} {@var{Imin} =} intmin ()
+@deftypefnx {} {@var{Imin} =} intmin ("@var{type}")
+@deftypefnx {} {@var{Imin} =} intmin (@var{var})
 Return the smallest integer that can be represented by a specific integer type.
 
 The input is either a string @qcode{"@var{type}"} specifying an integer type,
@@ -954,13 +953,13 @@
 
 DEFUN (sizemax, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} sizemax ()
+@deftypefn {} {@var{max_numel} =} sizemax ()
 Return the largest value allowed for the size of an array.
 
 If Octave is compiled with 64-bit indexing, the result is of class int64,
-otherwise it is of class int32.  The maximum array size is slightly
-smaller than the maximum value allowable for the relevant class as reported
-by @code{intmax}.
+otherwise it is of class int32.  The maximum array size is slightly smaller
+than the maximum value allowable for the relevant class as reported by
+@code{intmax}.
 @seealso{intmax}
 @end deftypefn */)
 {
--- a/libinterp/corefcn/bsxfun.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/bsxfun.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -324,7 +324,7 @@
 
 DEFMETHOD (bsxfun, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} bsxfun (@var{f}, @var{A}, @var{B})
+@deftypefn {} {@var{C} =} bsxfun (@var{f}, @var{A}, @var{B})
 Apply a binary function @var{f} element-by-element to two array arguments
 @var{A} and @var{B}, expanding singleton dimensions in either input argument as
 necessary.
@@ -343,16 +343,16 @@
   if (args.length () != 3)
     print_usage ();
 
-  octave_value func = args(0);
-  if (func.is_string ())
+  octave_value fcn = args(0);
+  if (fcn.is_string ())
     {
-      std::string name = func.string_value ();
+      std::string name = fcn.string_value ();
 
       symbol_table& symtab = interp.get_symbol_table ();
 
-      func = symtab.find_function (name);
+      fcn = symtab.find_function (name);
 
-      if (func.is_undefined ())
+      if (fcn.is_undefined ())
         error ("bsxfun: invalid function name: %s", name.c_str ());
     }
   else if (! (args(0).is_function_handle () || args(0).is_inline_function ()))
@@ -363,14 +363,14 @@
   const octave_value A = args(1);
   const octave_value B = args(2);
 
-  if (func.is_builtin_function ()
-      || (func.is_function_handle () && ! A.isobject () && ! B.isobject ()))
+  if (fcn.is_builtin_function ()
+      || (fcn.is_function_handle () && ! A.isobject () && ! B.isobject ()))
     {
       // This may break if the default behavior is overridden.  But if you
       // override arithmetic operators for builtin classes, you should expect
       // mayhem anyway (constant folding etc).  Querying is_overloaded() may
       // not be exactly what we need here.
-      octave_function *fcn_val = func.function_value ();
+      octave_function *fcn_val = fcn.function_value ();
       if (fcn_val)
         {
           octave_value tmp = maybe_optimized_builtin (fcn_val->name (), A, B);
@@ -414,14 +414,14 @@
           octave_value_list inputs (2);
           inputs(0) = A;
           inputs(1) = B;
-          retval = feval (func, inputs, 1);
+          retval = feval (fcn, inputs, 1);
         }
       else if (dvc.numel () < 1)
         {
           octave_value_list inputs (2);
           inputs(0) = A.resize (dvc);
           inputs(1) = B.resize (dvc);
-          retval = feval (func, inputs, 1);
+          retval = feval (fcn, inputs, 1);
         }
       else
         {
@@ -463,7 +463,7 @@
               if (maybe_update_column (Bc, B, dvb, dvc, i, idxB))
                 inputs(1) = Bc;
 
-              octave_value_list tmp = feval (func, inputs, 1);
+              octave_value_list tmp = feval (fcn, inputs, 1);
 
 #define BSXINIT(T, CLS, EXTRACTOR)                                      \
               (result_type == CLS)                                      \
@@ -719,10 +719,12 @@
 %!assert (bsxfun (f, a, b), a - repmat (b, [4, 1, 1]))
 %!assert (bsxfun (f, a, c), a - repmat (c, [1, 4, 1]))
 %!assert (bsxfun (f, a, d), a - repmat (d, [1, 1, 4]))
-%!assert (bsxfun ("minus", ones ([4, 0, 4]), ones ([4, 1, 4])), zeros ([4, 0, 4]))
+%!assert (bsxfun ("minus", ones ([4, 0, 4]), ones ([4, 1, 4])),
+%!        zeros ([4, 0, 4]))
 
 ## The test below is a very hard case to treat
-%!assert (bsxfun (f, ones ([4, 1, 4, 1]), ones ([1, 4, 1, 4])), zeros ([4, 4, 4, 4]))
+%!assert (bsxfun (f, ones ([4, 1, 4, 1]), ones ([1, 4, 1, 4])),
+%!        zeros ([4, 4, 4, 4]))
 
 %!shared a, b, aa, bb
 %! ## FIXME: Set a known "good" random seed.  See bug #51779.
@@ -754,7 +756,7 @@
 ## Test automatic bsxfun
 %
 %!test
-%! funs = {@plus, @minus, @times, @rdivide, @ldivide, @power, @max, @min, ...
+%! fcns = {@plus, @minus, @times, @rdivide, @ldivide, @power, @max, @min, ...
 %!         @rem, @mod, @atan2, @hypot, @eq, @ne, @lt, @le, @gt, @ge, ...
 %!         @and, @or, @xor };
 %!
@@ -770,28 +772,28 @@
 %! x = rand (3) * 10-5;
 %! y = rand (3,1) * 10-5;
 %!
-%! for i=1:length (funs)
+%! for i=1:length (fcns)
 %!   for j = 1:length (float_types)
 %!     for k = 1:length (int_types)
 %!
-%!       fun = funs{i};
+%!       fcn = fcns{i};
 %!       f_type = float_types{j};
 %!       i_type = int_types{k};
 %!
-%!         assert (bsxfun (fun, f_type (x), i_type (y)), ...
-%!                 fun (f_type(x), i_type (y)));
-%!         assert (bsxfun (fun, f_type (y), i_type (x)), ...
-%!                 fun (f_type(y), i_type (x)));
+%!         assert (bsxfun (fcn, f_type (x), i_type (y)), ...
+%!                 fcn (f_type(x), i_type (y)));
+%!         assert (bsxfun (fcn, f_type (y), i_type (x)), ...
+%!                 fcn (f_type(y), i_type (x)));
 %!
-%!         assert (bsxfun (fun, i_type (x), i_type (y)), ...
-%!                 fun (i_type (x), i_type (y)));
-%!         assert (bsxfun (fun, i_type (y), i_type (x)), ...
-%!                 fun (i_type (y), i_type (x)));
+%!         assert (bsxfun (fcn, i_type (x), i_type (y)), ...
+%!                 fcn (i_type (x), i_type (y)));
+%!         assert (bsxfun (fcn, i_type (y), i_type (x)), ...
+%!                 fcn (i_type (y), i_type (x)));
 %!
-%!         assert (bsxfun (fun, f_type (x), f_type (y)), ...
-%!                 fun (f_type (x), f_type (y)));
-%!         assert (bsxfun (fun, f_type(y), f_type(x)), ...
-%!                 fun (f_type (y), f_type (x)));
+%!         assert (bsxfun (fcn, f_type (x), f_type (y)), ...
+%!                 fcn (f_type (x), f_type (y)));
+%!         assert (bsxfun (fcn, f_type(y), f_type(x)), ...
+%!                 fcn (f_type (y), f_type (x)));
 %!     endfor
 %!   endfor
 %! endfor
@@ -813,6 +815,33 @@
 %! r = bsxfun (@times, im, mask);
 %! assert (r(:,:,1), repmat (single ([0, 0, 1+i, 1+i]), [4, 1]));
 
+## automatic broadcasting with inplace times operator
+%!test <*38466>
+%! a = ones (2, 2, 2);
+%! b = 2 * ones (2, 1);
+%! a .*= b;
+%! assert (a, 2 * ones (2, 2, 2));
+
+%!test <*38466>
+%! a = ones (2, 2, 2);
+%! b = 2 * ones (1, 2);
+%! a .*= b;
+%! assert (a, 2 * ones (2, 2, 2));
+
+%!test <*38466>
+%! a = ones (2, 2, 2);
+%! b = 2 * ones (2, 2);
+%! a .*= b;
+%! assert (a, 2 * ones (2, 2, 2));
+
+%!test <*38466>
+%! a = ones (2, 2, 2);
+%! b = 2 * ones (1, 1, 2);
+%! a .*= b;
+%! assert (a, 2 * ones (2, 2, 2));
+
+%!assert (ones (2,2,2) .* ones (1,2), ones (2,2,2));
+
 */
 
 OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/call-stack.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/call-stack.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1138,7 +1138,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} max_stack_depth ()
 @deftypefnx {} {@var{old_val} =} max_stack_depth (@var{new_val})
-@deftypefnx {} {} max_stack_depth (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} max_stack_depth (@var{new_val}, "local")
 Query or set the internal limit on the number of times a function may
 be called recursively.
 
@@ -1174,7 +1174,7 @@
 @deftypefn  {} {} who
 @deftypefnx {} {} who pattern @dots{}
 @deftypefnx {} {} who option pattern @dots{}
-@deftypefnx {} {C =} who ("pattern", @dots{})
+@deftypefnx {} {C =} who (@dots{})
 List currently defined variables matching the given patterns.
 
 Valid pattern syntax is the same as described for the @code{clear} command.
--- a/libinterp/corefcn/cellfun.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/cellfun.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -71,7 +71,7 @@
 get_output_list (error_system& es,
                  octave_idx_type count, octave_idx_type nargout,
                  const octave_value_list& inputlist,
-                 octave_value& func,
+                 octave_value& fcn,
                  octave_value& error_handler)
 {
   octave_value_list tmp;
@@ -80,14 +80,13 @@
 
   try
     {
-      tmp = feval (func, inputlist, nargout);
+      tmp = feval (fcn, inputlist, nargout);
     }
   catch (const execution_exception& ee)
     {
       if (error_handler.is_defined ())
         {
-          interpreter& interp
-            = __get_interpreter__ ("get_output_list");
+          interpreter& interp = __get_interpreter__ ();
 
           es.save_exception (ee);
           interp.recover_from_exception ();
@@ -270,20 +269,21 @@
 
 DEFMETHOD (cellfun, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} cellfun (@var{name}, @var{C})
-@deftypefnx {} {} cellfun ("size", @var{C}, @var{k})
-@deftypefnx {} {} cellfun ("isclass", @var{C}, @var{class})
-@deftypefnx {} {} cellfun (@var{func}, @var{C})
-@deftypefnx {} {} cellfun (@var{func}, @var{C}, @var{D})
-@deftypefnx {} {[@var{a}, @dots{}] =} cellfun (@dots{})
-@deftypefnx {} {} cellfun (@dots{}, "ErrorHandler", @var{errfunc})
-@deftypefnx {} {} cellfun (@dots{}, "UniformOutput", @var{val})
+@deftypefn  {} {@var{A} =} cellfun ("@var{fcn}", @var{C})
+@deftypefnx {} {@var{A} =} cellfun ("size", @var{C}, @var{k})
+@deftypefnx {} {@var{A} =} cellfun ("isclass", @var{C}, @var{class})
+@deftypefnx {} {@var{A} =} cellfun (@@@var{fcn}, @var{C})
+@deftypefnx {} {@var{A} =} cellfun (@var{fcn}, @var{C})
+@deftypefnx {} {@var{A} =} cellfun (@var{fcn}, @var{C1}, @var{C2}, @dots{})
+@deftypefnx {} {[@var{A1}, @var{A2}, @dots{}] =} cellfun (@dots{})
+@deftypefnx {} {@var{A} =} cellfun (@dots{}, "ErrorHandler", @var{errfcn})
+@deftypefnx {} {@var{A} =} cellfun (@dots{}, "UniformOutput", @var{val})
 
-Evaluate the function named @var{name} on the elements of the cell array
+Evaluate the function named "@var{fcn}" on the elements of the cell array
 @var{C}.
 
 Elements in @var{C} are passed on to the named function individually.  The
-function @var{name} can be one of the functions
+function @var{fcn} can be one of the functions
 
 @table @code
 @item isempty
@@ -316,11 +316,10 @@
 Return 1 for elements of @var{class}.
 @end table
 
-Additionally, @code{cellfun} accepts an arbitrary function @var{func}
-in the form of an inline function, function handle, or the name of a
-function (in a character string).  The function can take one or more
-arguments, with the inputs arguments given by @var{C}, @var{D}, etc.
-Equally the function can return one or more output arguments.  For example:
+Additionally, @code{cellfun} accepts an arbitrary function @var{fcn} in the
+form of an inline function, function handle, or the name of a function (in a
+character string).  The function can take one or more arguments, with the
+inputs arguments given by @var{C1}, @var{C2}, etc.  For example:
 
 @example
 @group
@@ -329,9 +328,10 @@
 @end group
 @end example
 
-The number of output arguments of @code{cellfun} matches the number of
-output arguments of the function.  The outputs of the function will be
-collected into the output arguments of @code{cellfun} like this:
+The number of output arguments of @code{cellfun} matches the number of output
+arguments of the function and can be greater than one.  When there are multiple
+outputs of the function they will be collected into the output arguments of
+@code{cellfun} like this:
 
 @example
 @group
@@ -348,14 +348,14 @@
 @end group
 @end example
 
-Note that per default the output argument(s) are arrays of the same size as
+Note that, per default, the output argument(s) are arrays of the same size as
 the input arguments.  Input arguments that are singleton (1x1) cells will be
 automatically expanded to the size of the other arguments.
 
-If the parameter @qcode{"UniformOutput"} is set to true (the default),
-then the function must return scalars which will be concatenated into the
-return array(s).  If @qcode{"UniformOutput"} is false, the outputs are
-concatenated into a cell array (or cell arrays).  For example:
+If the parameter @qcode{"UniformOutput"} is set to true (the default), then the
+function must return scalars which will be concatenated into the return
+array(s).  If @qcode{"UniformOutput"} is false, the outputs are concatenated
+into a cell array (or cell arrays).  For example:
 
 @example
 @group
@@ -365,17 +365,17 @@
 @end group
 @end example
 
-Given the parameter @qcode{"ErrorHandler"}, then @var{errfunc} defines a
-function to call in case @var{func} generates an error.  The form of the
+Given the parameter @qcode{"ErrorHandler"}, then @var{errfcn} defines a
+function to call in case @var{fcn} generates an error.  The form of the
 function is
 
 @example
-function [@dots{}] = errfunc (@var{s}, @dots{})
+function [@dots{}] = errfcn (@var{s}, @dots{})
 @end example
 
 @noindent
-where there is an additional input argument to @var{errfunc} relative to
-@var{func}, given by @var{s}.  This is a structure with the elements
+where there is an additional input argument to @var{errfcn} relative to
+@var{fcn}, given by @var{s}.  This is a structure with the elements
 @qcode{"identifier"}, @qcode{"message"}, and @qcode{"index"} giving
 respectively the error identifier, the error message, and the index into the
 input arguments of the element that caused the error.  For example:
@@ -388,18 +388,18 @@
 @end group
 @end example
 
-Use @code{cellfun} intelligently.  The @code{cellfun} function is a
-useful tool for avoiding loops.  It is often used with anonymous
-function handles; however, calling an anonymous function involves an
-overhead quite comparable to the overhead of an m-file function.
-Passing a handle to a built-in function is faster, because the
-interpreter is not involved in the internal loop.  For example:
+Use @code{cellfun} intelligently.  The @code{cellfun} function is a useful tool
+for avoiding loops.  It is often used with anonymous function handles; however,
+calling an anonymous function involves an overhead quite comparable to the
+overhead of an m-file function.  Passing a handle to a built-in function is
+faster, because the interpreter is not involved in the internal loop.  For
+example:
 
 @example
 @group
-a = @{@dots{}@}
-v = cellfun (@@(x) det (x), a); # compute determinants
-v = cellfun (@@det, a); # faster
+C = @{@dots{}@}
+v = cellfun (@@(x) det (x), C); # compute determinants
+v = cellfun (@@det, C);         # 40% faster
 @end group
 @end example
 
@@ -417,11 +417,11 @@
   octave_value_list retval;
   int nargout1 = (nargout < 1 ? 1 : nargout);
 
-  octave_value func = args(0);
+  octave_value fcn = args(0);
 
   symbol_table& symtab = interp.get_symbol_table ();
 
-  if (func.is_string ())
+  if (fcn.is_string ())
     {
       retval = try_cellfun_internal_ops<boolNDArray, NDArray> (args, nargin);
 
@@ -433,18 +433,18 @@
       std::string name = args(0).string_value ();
 
       if (! valid_identifier (name))
-        func = get_function_handle (interp, args(0), "x");
+        fcn = get_function_handle (interp, args(0), "x");
       else
         {
-          func = symtab.find_function (name);
+          fcn = symtab.find_function (name);
 
-          if (func.is_undefined ())
+          if (fcn.is_undefined ())
             error ("cellfun: invalid function NAME: %s", name.c_str ());
         }
     }
 
-  if (! func.is_function_handle () && ! func.is_inline_function ()
-      && ! func.is_function ())
+  if (! fcn.is_function_handle () && ! fcn.is_inline_function ()
+      && ! fcn.is_function ())
     error ("cellfun: argument NAME must be a string or function handle");
 
   bool uniform_output = true;
@@ -456,7 +456,7 @@
   // more specific function class, so this can result in fewer polymorphic
   // function calls as the function gets called for each value of the array.
   {
-    if (func.is_function_handle () || func.is_inline_function ())
+    if (fcn.is_function_handle () || fcn.is_inline_function ())
       {
         // FIXME: instead of checking for overloaded functions as we did
         // previously but is no longer possible, we could check whether
@@ -466,7 +466,7 @@
         goto nevermind;
       }
 
-    std::string name = func.function_value () -> name ();
+    std::string name = fcn.function_value () -> name ();
     octave_value f = symtab.find_function (name);
 
     if (f.is_defined ())
@@ -489,7 +489,7 @@
 
         // Okay, we tried, doesn't work, let's do the best we can instead
         // and avoid polymorphic calls for each element of the array.
-        func = f;
+        fcn = f;
       }
   }
 
@@ -559,7 +559,7 @@
             }
 
           const octave_value_list tmp
-            = get_output_list (es, count, nargout, inputlist, func,
+            = get_output_list (es, count, nargout, inputlist, fcn,
                                error_handler);
 
           int tmp_numel = tmp.length ();
@@ -645,7 +645,7 @@
             }
 
           const octave_value_list tmp
-            = get_output_list (es, count, nargout, inputlist, func,
+            = get_output_list (es, count, nargout, inputlist, fcn,
                                error_handler);
 
           if (nargout > 0 && tmp.length () < nargout)
@@ -859,19 +859,27 @@
 %! A = cellfun (@(x,y) cell2str (x,y), {1.1, 4}, {3.1, 6}, ...
 %!              "ErrorHandler", @__cellfunerror);
 %! B = isfield (A(1), "message") && isfield (A(1), "index");
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 %!test  # Overwriting setting of "UniformOutput" true
 %! A = cellfun (@(x,y) cell2str (x,y), {1.1, 4}, {3.1, 6}, ...
 %!              "UniformOutput", true, "ErrorHandler", @__cellfunerror);
 %! B = isfield (A(1), "message") && isfield (A(1), "index");
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 
 ## Input arguments can be of type cell arrays of character or strings
@@ -886,18 +894,26 @@
 %!test
 %! A = cellfun (@(x,y) cell2str (x,y), {"a", "d"}, {"c", "f"}, ...
 %!              "ErrorHandler", @__cellfunerror);
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 %!test  # Overwriting setting of "UniformOutput" true
 %! A = cellfun (@(x,y) cell2str (x,y), {"a", "d"}, {"c", "f"}, ...
 %!              "UniformOutput", true, "ErrorHandler", @__cellfunerror);
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 
 ## Structures cannot be handled by cellfun
@@ -920,18 +936,26 @@
 %!test
 %! A = cellfun (@(x,y) mat2str (x,y), {{1.1}, {4.2}}, {{3.1}, {2}}, ...
 %!              "ErrorHandler", @__cellfunerror);
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 %!test  # Overwriting setting of "UniformOutput" true
 %! A = cellfun (@(x,y) mat2str (x,y), {{1.1}, {4.2}}, {{3.1}, {2}}, ...
 %!              "UniformOutput", true, "ErrorHandler", @__cellfunerror);
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 
 ## Input arguments can be of type cell array of structure arrays
@@ -984,7 +1008,8 @@
 %!assert (cellfun ("size", {zeros([1,2,3]),1}, 2), [2,1])
 %!assert (cellfun ("size", {zeros([1,2,3]),1}, 3), [3,1])
 %!assert (cellfun (@atan2, {1,1}, {1,2}), [atan2(1,1), atan2(1,2)])
-%!assert (cellfun (@atan2, {1,1}, {1,2},"UniformOutput", false), {atan2(1,1), atan2(1,2)})
+%!assert (cellfun (@atan2, {1,1}, {1,2},"UniformOutput", false),
+%!        {atan2(1,1), atan2(1,2)})
 %!assert (cellfun (@sin, {1,2;3,4}), sin ([1,2;3,4]))
 %!assert (cellfun (@atan2, {1,1;1,1}, {1,2;1,2}), atan2 ([1,1;1,1],[1,2;1,2]))
 %!error cellfun (@factorial, {-1,3})
@@ -997,9 +1022,12 @@
 %! assert (c, {".d", ".h"});
 
 %!assert <*40467> (cellfun (@isreal, {1 inf nan []}), [true, true, true, true])
-%!assert <*40467> (cellfun (@isreal, {1 inf nan []}, "UniformOutput", false), {true, true, true, true})
-%!assert <*40467> (cellfun (@iscomplex, {1 inf nan []}), [false, false, false, false])
-%!assert <*40467> (cellfun (@iscomplex, {1 inf nan []}, "UniformOutput", false), {false, false, false, false})
+%!assert <*40467> (cellfun (@isreal, {1 inf nan []}, "UniformOutput", false),
+%!                 {true, true, true, true})
+%!assert <*40467> (cellfun (@iscomplex, {1 inf nan []}),
+%!                 [false, false, false, false])
+%!assert <*40467> (cellfun (@iscomplex, {1 inf nan []}, "UniformOutput", false),
+%!                 {false, false, false, false})
 
 %!error cellfun (1)
 %!error cellfun ("isclass", 1)
@@ -1015,7 +1043,8 @@
 %!endfunction
 %!test <*58411>
 %! global __errmsg;
-%! assert (cellfun (@factorial, {1, 2, -3}, "ErrorHandler", @__errfcn), [1, 2, NaN]);
+%! assert (cellfun (@factorial, {1, 2, -3}, "ErrorHandler", @__errfcn),
+%!         [1, 2, NaN]);
 %! assert (! isempty (__errmsg));
 %! clear -global __errmsg;
 */
@@ -1026,31 +1055,38 @@
 
 DEFMETHOD (arrayfun, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} arrayfun (@var{func}, @var{A})
-@deftypefnx {} {@var{x} =} arrayfun (@var{func}, @var{A})
-@deftypefnx {} {@var{x} =} arrayfun (@var{func}, @var{A}, @var{b}, @dots{})
-@deftypefnx {} {[@var{x}, @var{y}, @dots{}] =} arrayfun (@var{func}, @var{A}, @dots{})
-@deftypefnx {} {} arrayfun (@dots{}, "UniformOutput", @var{val})
-@deftypefnx {} {} arrayfun (@dots{}, "ErrorHandler", @var{errfunc})
+@deftypefn  {} {@var{B} =} arrayfun (@var{fcn}, @var{A})
+@deftypefnx {} {@var{B} =} arrayfun (@var{fcn}, @var{A1}, @var{A2}, @dots{})
+@deftypefnx {} {[@var{B1}, @var{B2}, @dots{}] =} arrayfun (@var{fcn}, @var{A}, @dots{})
+@deftypefnx {} {@var{B} =} arrayfun (@dots{}, "UniformOutput", @var{val})
+@deftypefnx {} {@var{B} =} arrayfun (@dots{}, "ErrorHandler", @var{errfcn})
 
 Execute a function on each element of an array.
 
 This is useful for functions that do not accept array arguments.  If the
-function does accept array arguments it is better to call the function
+function does accept array arguments it is @emph{better} to call the function
 directly.
 
-The first input argument @var{func} can be a string, a function
-handle, an inline function, or an anonymous function.  The input
-argument @var{A} can be a logic array, a numeric array, a string
-array, a structure array, or a cell array.  By a call of the function
-@code{arrayfun} all elements of @var{A} are passed on to the named
-function @var{func} individually.
+The first input argument @var{fcn} can be a string, a function handle, an
+inline function, or an anonymous function.  The input argument @var{A} can be a
+logical array, a numeric array, a string array, a structure array, or a cell
+array.  @code{arrayfun} passes all elements of @var{A} individually to the
+function @var{fcn} and collects the results.  The equivalent pseudo-code is
 
-The named function can also take more than two input arguments, with
-the input arguments given as third input argument @var{b}, fourth
-input argument @var{c}, @dots{}  If given more than one array input
-argument then all input arguments must have the same sizes, for
-example:
+@example
+@group
+cls = class (@var{fcn} (@var{A}(1));
+@var{B} = zeros (size (@var{A}), cls);
+for i = 1:numel (@var{A})
+  @var{B}(i) = @var{fcn} (@var{A}(i))
+endfor
+@end group
+@end example
+
+The named function can also take more than two input arguments, with the input
+arguments given as third input argument @var{A2}, fourth input argument
+@var{A2}, @dots{}  If given more than one array input argument then all input
+arguments must have the same sizes.  For example:
 
 @example
 @group
@@ -1061,10 +1097,10 @@
 
 If the parameter @var{val} after a further string input argument
 @qcode{"UniformOutput"} is set @code{true} (the default), then the named
-function @var{func} must return a single element which then will be
-concatenated into the return value and is of type matrix.  Otherwise,
-if that parameter is set to @code{false}, then the outputs are
-concatenated in a cell array.  For example:
+function @var{fcn} must return a single element which then will be concatenated
+into the return value and is of type matrix.  Otherwise, if that parameter is
+set to @code{false}, then the outputs are concatenated in a cell array.  For
+example:
 
 @example
 @group
@@ -1078,9 +1114,8 @@
 @end group
 @end example
 
-If more than one output arguments are given then the named function
-must return the number of return values that also are expected, for
-example:
+If more than one output arguments are given then the named function must return
+the number of return values that also are expected, for example:
 
 @example
 @group
@@ -1104,25 +1139,24 @@
 @end group
 @end example
 
-If the parameter @var{errfunc} after a further string input argument
+If the parameter @var{errfcn} after a further string input argument
 @qcode{"ErrorHandler"} is another string, a function handle, an inline
-function, or an anonymous function, then @var{errfunc} defines a
-function to call in the case that @var{func} generates an error.
-The definition of the function must be of the form
+function, or an anonymous function, then @var{errfcn} defines a function to
+call in the case that @var{fcn} generates an error.  The definition of the
+function must be of the form
 
 @example
-function [@dots{}] = errfunc (@var{s}, @dots{})
+function [@dots{}] = errfcn (@var{s}, @dots{})
 @end example
 
 @noindent
-where there is an additional input argument to @var{errfunc}
-relative to @var{func}, given by @var{s}.  This is a structure with
-the elements @qcode{"identifier"}, @qcode{"message"}, and
-@qcode{"index"} giving, respectively, the error identifier, the error
-message, and the index of the array elements that caused the error.  The
-size of the output argument of @var{errfunc} must have the same size as the
-output argument of @var{func}, otherwise a real error is thrown.  For
-example:
+where there is an additional input argument to @var{errfcn} relative to
+@var{fcn}, given by @var{s}.  This is a structure with the elements
+@qcode{"identifier"}, @qcode{"message"}, and @qcode{"index"} giving,
+respectively, the error identifier, the error message, and the index of the
+array elements that caused the error.  The size of the output argument of
+@var{errfcn} must have the same size as the output argument of @var{fcn},
+otherwise a real error is thrown.  For example:
 
 @example
 @group
@@ -1147,22 +1181,22 @@
   octave_value_list retval;
   int nargout1 = (nargout < 1 ? 1 : nargout);
   bool symbol_table_lookup = false;
-  octave_value func = args(0);
+  octave_value fcn = args(0);
 
   symbol_table& symtab = interp.get_symbol_table ();
 
-  if (func.is_string ())
+  if (fcn.is_string ())
     {
       // See if we can convert the string into a function.
       std::string name = args(0).string_value ();
 
       if (! valid_identifier (name))
-        func = get_function_handle (interp, args(0), "x");
+        fcn = get_function_handle (interp, args(0), "x");
       else
         {
-          func = symtab.find_function (name);
+          fcn = symtab.find_function (name);
 
-          if (func.is_undefined ())
+          if (fcn.is_undefined ())
             error_with_id ("Octave:invalid-input-arg",
                            "arrayfun: invalid function NAME: %s",
                            name.c_str ());
@@ -1171,8 +1205,8 @@
         }
     }
 
-  if (func.is_function_handle () || func.is_inline_function ()
-      || func.is_function ())
+  if (fcn.is_function_handle () || fcn.is_inline_function ()
+      || fcn.is_function ())
     {
       // The following is an optimization because the symbol table can give a
       // more specific function class, so this can result in fewer polymorphic
@@ -1180,7 +1214,7 @@
 
       if (! symbol_table_lookup)
         {
-          if (func.is_function_handle () || func.class_name () == "inline")
+          if (fcn.is_function_handle () || fcn.class_name () == "inline")
             {
               // FIXME: instead of checking for overloaded functions as
               // we did previously but is no longer possible, we could
@@ -1192,10 +1226,10 @@
             }
 
           octave_value f
-            = symtab.find_function (func.function_value () -> name ());
+            = symtab.find_function (fcn.function_value () -> name ());
 
           if (f.is_defined ())
-            func = f;
+            fcn = f;
         }
 
     nevermind:
@@ -1266,7 +1300,7 @@
                 }
 
               const octave_value_list tmp
-                = get_output_list (es, count, nargout, inputlist, func,
+                = get_output_list (es, count, nargout, inputlist, fcn,
                                    error_handler);
 
               if (nargout > 0 && tmp.length () < nargout)
@@ -1358,7 +1392,7 @@
                 }
 
               const octave_value_list tmp
-                = get_output_list (es, count, nargout, inputlist, func,
+                = get_output_list (es, count, nargout, inputlist, fcn,
                                    error_handler);
 
               if (nargout > 0 && tmp.length () < nargout)
@@ -1537,19 +1571,27 @@
 %! A = arrayfun (@(x,y) array2str (x,y), {1.1, 4}, {3.1, 6}, ...
 %!               "ErrorHandler", @__arrayfunerror);
 %! B = isfield (A(1), "message") && isfield (A(1), "index");
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 %!test  # Overwriting setting of "UniformOutput" true
 %! A = arrayfun (@(x,y) array2str (x,y), {1.1, 4}, {3.1, 6}, ...
 %!               "UniformOutput", true, "ErrorHandler", @__arrayfunerror);
 %! B = isfield (A(1), "message") && isfield (A(1), "index");
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 
 ## Input arguments can be of type character or strings
@@ -1565,7 +1607,8 @@
 %!test
 %! A = arrayfun (@(x,y) cell2str (x,y), ["a", "d"], ["c", "f"], ...
 %!               "ErrorHandler", @__arrayfunerror);
-%! B = isfield (A(1), "identifier") && isfield (A(1), "message") && isfield (A(1), "index");
+%! B = isfield (A(1), "identifier") && isfield (A(1), "message") ...
+%!     && isfield (A(1), "index");
 %! assert (B, true);
 
 ## Input arguments can be of type structure
@@ -1609,18 +1652,26 @@
 %! assert (A, {true, false});
 %!test
 %! A = arrayfun (@(x,y) num2str(x,y), {1.1, 4.2}, {3.1, 2}, "ErrorHandler", @__arrayfunerror);
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 %!test
 %! A = arrayfun (@(x,y) num2str (x,y), {1.1, 4.2}, {3.1, 2}, ...
 %!               "UniformOutput", true, "ErrorHandler", @__arrayfunerror);
-%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))], [true, true]);
-%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))], [true, true]);
-%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))], [true, true]);
-%! assert ([(isempty (A(1).message)), (isempty (A(2).message))], [false, false]);
+%! assert ([(isfield (A(1), "identifier")), (isfield (A(2), "identifier"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "message")), (isfield (A(2), "message"))],
+%!         [true, true]);
+%! assert ([(isfield (A(1), "index")), (isfield (A(2), "index"))],
+%!         [true, true]);
+%! assert ([(isempty (A(1).message)), (isempty (A(2).message))],
+%!         [false, false]);
 %! assert ([A(1).index, A(2).index], [1, 2]);
 */
 
@@ -1944,8 +1995,8 @@
 do_mat2cell_2d (const Array2D& a, const Array<octave_idx_type> *d, int nd)
 {
   Cell retval;
-  assert (nd == 1 || nd == 2);
-  assert (a.ndims () == 2);
+  error_unless (nd == 1 || nd == 2);
+  error_unless (a.ndims () == 2);
 
   if (mat2cell_mismatch (a.dims (), d, nd))
     return retval;
@@ -2001,7 +2052,7 @@
 do_mat2cell_nd (const ArrayND& a, const Array<octave_idx_type> *d, int nd)
 {
   Cell retval;
-  assert (nd >= 1);
+  error_unless (nd >= 1);
 
   if (mat2cell_mismatch (a.dims (), d, nd))
     return retval;
@@ -2065,7 +2116,7 @@
 do_mat2cell (octave_value& a, const Array<octave_idx_type> *d, int nd)
 {
   Cell retval;
-  assert (nd >= 1);
+  error_unless (nd >= 1);
 
   if (mat2cell_mismatch (a.dims (), d, nd))
     return retval;
--- a/libinterp/corefcn/chol.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/chol.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -314,7 +314,8 @@
 
 /*
 %!assert (chol ([2, 1; 1, 1]), [sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)], sqrt (eps))
-%!assert (chol (single ([2, 1; 1, 1])), single ([sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)]), sqrt (eps ("single")))
+%!assert (chol (single ([2, 1; 1, 1])),
+%!        single ([sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)]), sqrt (eps ("single")))
 
 %!assert (chol ([2, 1; 1, 1], "upper"), [sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)],
 %!        sqrt (eps))
@@ -359,7 +360,7 @@
 
 DEFUN (cholinv, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} cholinv (@var{A})
+@deftypefn {} {@var{Ainv} =} cholinv (@var{A})
 Compute the inverse of the symmetric positive definite matrix @var{A} using
 the Cholesky@tie{}factorization.
 @seealso{chol, chol2inv, inv}
@@ -483,13 +484,13 @@
 
 DEFUN (chol2inv, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} chol2inv (@var{U})
+@deftypefn {} {@var{Ainv} =} chol2inv (@var{R})
 Invert a symmetric, positive definite square matrix from its Cholesky
-decomposition, @var{U}.
+decomposition, @var{R}.
 
-Note that @var{U} should be an upper-triangular matrix with positive
-diagonal elements.  @code{chol2inv (@var{U})} provides
-@code{inv (@var{U}'*@var{U})} but it is much faster than using @code{inv}.
+Note that @var{R} should be an upper-triangular matrix with positive diagonal
+elements.  @code{chol2inv (@var{U})} provides @code{inv (@var{R}'*@var{R})} but
+is much faster than using @code{inv}.
 @seealso{chol, cholinv, inv}
 @end deftypefn */)
 {
--- a/libinterp/corefcn/conv2.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/conv2.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -40,9 +40,9 @@
 
 DEFUN (conv2, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} conv2 (@var{A}, @var{B})
-@deftypefnx {} {} conv2 (@var{v1}, @var{v2}, @var{m})
-@deftypefnx {} {} conv2 (@dots{}, @var{shape})
+@deftypefn  {} {@var{C} =} conv2 (@var{A}, @var{B})
+@deftypefnx {} {@var{C} =} conv2 (@var{v1}, @var{v2}, @var{m})
+@deftypefnx {} {@var{C} =} conv2 (@dots{}, @var{shape})
 Return the 2-D convolution of @var{A} and @var{B}.
 
 The size of the result is determined by the optional @var{shape} argument
--- a/libinterp/corefcn/daspk.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/daspk.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -68,7 +68,7 @@
 {
   ColumnVector retval;
 
-  assert (x.numel () == xdot.numel ());
+  error_unless (x.numel () == xdot.numel ());
 
   octave_value_list args;
 
@@ -117,7 +117,7 @@
 {
   Matrix retval;
 
-  assert (x.numel () == xdot.numel ());
+  error_unless (x.numel () == xdot.numel ());
 
   octave_value_list args;
 
@@ -367,11 +367,11 @@
 
   double tzero = out_times (0);
 
-  DAEFunc func (daspk_user_function);
+  DAEFunc fcn (daspk_user_function);
   if (daspk_jac.is_defined ())
-    func.set_jacobian_function (daspk_user_jacobian);
+    fcn.set_jacobian_function (daspk_user_jacobian);
 
-  DASPK dae (state, deriv, tzero, func);
+  DASPK dae (state, deriv, tzero, fcn);
   dae.set_options (daspk_opts);
 
   Matrix output;
--- a/libinterp/corefcn/dasrt.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/dasrt.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -69,7 +69,7 @@
 {
   ColumnVector retval;
 
-  assert (x.numel () == xdot.numel ());
+  error_unless (x.numel () == xdot.numel ());
 
   octave_value_list args;
 
@@ -155,7 +155,7 @@
 {
   Matrix retval;
 
-  assert (x.numel () == xdot.numel ());
+  error_unless (x.numel () == xdot.numel ());
 
   octave_value_list args;
 
@@ -432,7 +432,7 @@
   if (dasrt_fcn.is_undefined ())
     error ("dasrt: FCN argument is not a valid function name or handle");
 
-  DAERTFunc func (dasrt_user_f);
+  DAERTFunc fcn (dasrt_user_f);
 
   argp++;
 
@@ -457,7 +457,7 @@
         {
           argp++;
 
-          func.set_constraint_function (dasrt_user_cf);
+          fcn.set_constraint_function (dasrt_user_cf);
         }
     }
 
@@ -485,11 +485,11 @@
     }
 
   if (dasrt_jac.is_defined ())
-    func.set_jacobian_function (dasrt_user_j);
+    fcn.set_jacobian_function (dasrt_user_j);
 
   DASRT_result output;
 
-  DASRT dae = DASRT (state, stateprime, tzero, func);
+  DASRT dae = DASRT (state, stateprime, tzero, fcn);
 
   dae.set_options (dasrt_opts);
 
--- a/libinterp/corefcn/dassl.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/dassl.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -67,7 +67,7 @@
 {
   ColumnVector retval;
 
-  assert (x.numel () == xdot.numel ());
+  error_unless (x.numel () == xdot.numel ());
 
   octave_value_list args;
 
@@ -116,7 +116,7 @@
 {
   Matrix retval;
 
-  assert (x.numel () == xdot.numel ());
+  error_unless (x.numel () == xdot.numel ());
 
   octave_value_list args;
 
@@ -367,11 +367,11 @@
 
   double tzero = out_times (0);
 
-  DAEFunc func (dassl_user_function);
+  DAEFunc fcn (dassl_user_function);
   if (dassl_jac.is_defined ())
-    func.set_jacobian_function (dassl_user_jacobian);
+    fcn.set_jacobian_function (dassl_user_jacobian);
 
-  DASSL dae (state, deriv, tzero, func);
+  DASSL dae (state, deriv, tzero, fcn);
 
   dae.set_options (dassl_opts);
 
--- a/libinterp/corefcn/data.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/data.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -70,14 +70,14 @@
 
 DEFUN (all, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} all (@var{x})
-@deftypefnx {} {} all (@var{x}, @var{dim})
+@deftypefn  {} {@var{tf} =} all (@var{x})
+@deftypefnx {} {@var{tf} =} all (@var{x}, @var{dim})
 For a vector argument, return true (logical 1) if all elements of the vector
 are nonzero.
 
-For a matrix argument, return a row vector of logical ones and
-zeros with each element indicating whether all of the elements of the
-corresponding column of the matrix are nonzero.  For example:
+For a matrix argument, return a row vector of logical ones and zeros with each
+element indicating whether all of the elements of the corresponding column of
+the matrix are nonzero.  For example:
 
 @example
 @group
@@ -86,8 +86,7 @@
 @end group
 @end example
 
-If the optional argument @var{dim} is supplied, work along dimension
-@var{dim}.
+If the optional argument @var{dim} is supplied, work along dimension @var{dim}.
 @seealso{any}
 @end deftypefn */)
 {
@@ -128,14 +127,14 @@
 
 DEFUN (any, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} any (@var{x})
-@deftypefnx {} {} any (@var{x}, @var{dim})
+@deftypefn  {} {@var{tf} =} any (@var{x})
+@deftypefnx {} {@var{tf} =} any (@var{x}, @var{dim})
 For a vector argument, return true (logical 1) if any element of the vector
 is nonzero.
 
-For a matrix argument, return a row vector of logical ones and
-zeros with each element indicating whether any of the elements of the
-corresponding column of the matrix are nonzero.  For example:
+For a matrix argument, return a row vector of logical ones and zeros with each
+element indicating whether any of the elements of the corresponding column of
+the matrix are nonzero.  For example:
 
 @example
 @group
@@ -144,8 +143,8 @@
 @end group
 @end example
 
-If the optional argument @var{dim} is supplied, work along dimension
-@var{dim}.  For example:
+If the optional argument @var{dim} is supplied, work along dimension @var{dim}.
+For example:
 
 @example
 @group
@@ -195,13 +194,13 @@
 
 DEFUN (atan2, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} atan2 (@var{y}, @var{x})
-Compute atan (@var{y} / @var{x}) for corresponding elements of @var{y}
-and @var{x}.
-
-@var{y} and @var{x} must match in size and orientation.  The signs of
-elements of @var{y} and @var{x} are used to determine the quadrants of each
-resulting value.
+@deftypefn {} {@var{angle} =} atan2 (@var{y}, @var{x})
+Compute atan (@var{y} / @var{x}) for corresponding elements of @var{y} and
+@var{x}.
+
+@var{y} and @var{x} must match in size and orientation.  The signs of elements
+of @var{y} and @var{x} are used to determine the quadrants of each resulting
+value.
 
 This function is equivalent to @code{arg (complex (@var{x}, @var{y}))}.
 @seealso{tan, tand, tanh, atanh}
@@ -365,8 +364,8 @@
 
 DEFUN (hypot, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} hypot (@var{x}, @var{y})
-@deftypefnx {} {} hypot (@var{x}, @var{y}, @var{z}, @dots{})
+@deftypefn  {} {@var{h} =} hypot (@var{x}, @var{y})
+@deftypefnx {} {@var{h} =} hypot (@var{x}, @var{y}, @var{z}, @dots{})
 Compute the element-by-element square root of the sum of the squares of
 @var{x} and @var{y}.
 
@@ -571,7 +570,7 @@
 
 DEFUN (rem, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} rem (@var{x}, @var{y})
+@deftypefn {} {@var{r} =} rem (@var{x}, @var{y})
 Return the remainder of the division @code{@var{x} / @var{y}}.
 
 The remainder is computed using the expression
@@ -703,8 +702,10 @@
 %!assert (rem ([1, 2, 3; -1, -2, -3], 2), [1, 0, 1; -1, 0, -1])
 %!assert (rem ([1, 2, 3; -1, -2, -3], 2 * ones (2, 3)),[1, 0, 1; -1, 0, -1])
 %!assert (rem ([0, 1, 2], [0, 0, 1]), [NaN, NaN, 0])
-%!assert (rem (uint8 ([1, 2, 3; -1, -2, -3]), uint8 (2)), uint8 ([1, 0, 1; -1, 0, -1]))
-%!assert (uint8 (rem ([1, 2, 3; -1, -2, -3], 2 * ones (2, 3))),uint8 ([1, 0, 1; -1, 0, -1]))
+%!assert (rem (uint8 ([1, 2, 3; -1, -2, -3]), uint8 (2)),
+%!        uint8 ([1, 0, 1; -1, 0, -1]))
+%!assert (uint8 (rem ([1, 2, 3; -1, -2, -3], 2 * ones (2, 3))),
+%!        uint8 ([1, 0, 1; -1, 0, -1]))
 %!assert (rem (uint8 ([0, 1, 2]), [0, 0, 1]), uint8 ([0, 0, 0]))
 
 ## Test sparse implementations
@@ -750,7 +751,7 @@
 
 DEFUN (mod, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} mod (@var{x}, @var{y})
+@deftypefn {} {@var{m} =} mod (@var{x}, @var{y})
 Compute the modulo of @var{x} and @var{y}.
 
 Conceptually this is given by
@@ -995,8 +996,8 @@
 
 DEFUN (cumprod, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} cumprod (@var{x})
-@deftypefnx {} {} cumprod (@var{x}, @var{dim})
+@deftypefn  {} {@var{y} =} cumprod (@var{x})
+@deftypefnx {} {@var{y} =} cumprod (@var{x}, @var{dim})
 Cumulative product of elements along dimension @var{dim}.
 
 If @var{dim} is omitted, it defaults to the first non-singleton dimension.
@@ -1020,12 +1021,15 @@
 %!assert (cumprod ([1, 2, 3]), [1, 2, 6])
 %!assert (cumprod ([-1; -2; -3]), [-1; 2; -6])
 %!assert (cumprod ([i, 2+i, -3+2i, 4]), [i, -1+2i, -1-8i, -4-32i])
-%!assert (cumprod ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i]), [1, 2, 3; i, 4i, 9i; -1+i, -8+8i, -27+27i])
+%!assert (cumprod ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i]),
+%!        [1, 2, 3; i, 4i, 9i; -1+i, -8+8i, -27+27i])
 
 %!assert (cumprod (single ([1, 2, 3])), single ([1, 2, 6]))
 %!assert (cumprod (single ([-1; -2; -3])), single ([-1; 2; -6]))
-%!assert (cumprod (single ([i, 2+i, -3+2i, 4])), single ([i, -1+2i, -1-8i, -4-32i]))
-%!assert (cumprod (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])), single ([1, 2, 3; i, 4i, 9i; -1+i, -8+8i, -27+27i]))
+%!assert (cumprod (single ([i, 2+i, -3+2i, 4])),
+%!        single ([i, -1+2i, -1-8i, -4-32i]))
+%!assert (cumprod (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])),
+%!        single ([1, 2, 3; i, 4i, 9i; -1+i, -8+8i, -27+27i]))
 
 %!assert (cumprod ([2, 3; 4, 5], 1), [2, 3; 8, 15])
 %!assert (cumprod ([2, 3; 4, 5], 2), [2, 6; 4, 20])
@@ -1038,10 +1042,10 @@
 
 DEFUN (cumsum, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} cumsum (@var{x})
-@deftypefnx {} {} cumsum (@var{x}, @var{dim})
-@deftypefnx {} {} cumsum (@dots{}, "native")
-@deftypefnx {} {} cumsum (@dots{}, "double")
+@deftypefn  {} {@var{y} =} cumsum (@var{x})
+@deftypefnx {} {@var{y} =} cumsum (@var{x}, @var{dim})
+@deftypefnx {} {@var{y} =} cumsum (@dots{}, "native")
+@deftypefnx {} {@var{y} =} cumsum (@dots{}, "double")
 Cumulative sum of elements along dimension @var{dim}.
 
 If @var{dim} is omitted, it defaults to the first non-singleton dimension.
@@ -1170,12 +1174,15 @@
 %!assert (cumsum ([1, 2, 3]), [1, 3, 6])
 %!assert (cumsum ([-1; -2; -3]), [-1; -3; -6])
 %!assert (cumsum ([i, 2+i, -3+2i, 4]), [i, 2+2i, -1+4i, 3+4i])
-%!assert (cumsum ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i]), [1, 2, 3; 1+i, 2+2i, 3+3i; 2+2i, 4+4i, 6+6i])
+%!assert (cumsum ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i]),
+%!        [1, 2, 3; 1+i, 2+2i, 3+3i; 2+2i, 4+4i, 6+6i])
 
 %!assert (cumsum (single ([1, 2, 3])), single ([1, 3, 6]))
 %!assert (cumsum (single ([-1; -2; -3])), single ([-1; -3; -6]))
-%!assert (cumsum (single ([i, 2+i, -3+2i, 4])), single ([i, 2+2i, -1+4i, 3+4i]))
-%!assert (cumsum (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])), single ([1, 2, 3; 1+i, 2+2i, 3+3i; 2+2i, 4+4i, 6+6i]))
+%!assert (cumsum (single ([i, 2+i, -3+2i, 4])),
+%!        single ([i, 2+2i, -1+4i, 3+4i]))
+%!assert (cumsum (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])),
+%!        single ([1, 2, 3; 1+i, 2+2i, 3+3i; 2+2i, 4+4i, 6+6i]))
 
 %!assert (cumsum ([1, 2; 3, 4], 1), [1, 2; 4, 6])
 %!assert (cumsum ([1, 2; 3, 4], 2), [1, 3; 3, 7])
@@ -1254,35 +1261,53 @@
 
 %!assert (full (diag ([1; 2; 3])), [1, 0, 0; 0, 2, 0; 0, 0, 3])
 %!assert (diag ([1; 2; 3], 1), [0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0])
-%!assert (diag ([1; 2; 3], 2), [0, 0, 1, 0, 0; 0, 0, 0, 2, 0; 0, 0, 0, 0, 3; 0, 0, 0, 0, 0; 0, 0, 0, 0, 0])
-%!assert (diag ([1; 2; 3],-1), [0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0])
-%!assert (diag ([1; 2; 3],-2), [0, 0, 0, 0, 0; 0, 0, 0, 0, 0; 1, 0, 0, 0, 0; 0, 2, 0, 0, 0; 0, 0, 3, 0, 0])
+%!assert (diag ([1; 2; 3], 2),
+%!        [0 0 1 0 0; 0 0 0 2 0; 0 0 0 0 3; 0 0 0 0 0; 0 0 0 0 0])
+%!assert (diag ([1; 2; 3],-1),
+%!       [0 0 0 0; 1 0 0 0; 0 2 0 0; 0 0 3 0])
+%!assert (diag ([1; 2; 3],-2),
+%!        [0 0 0 0 0; 0 0 0 0 0; 1 0 0 0 0; 0 2 0 0 0; 0 0 3 0 0])
 
 %!assert (diag ([1, 0, 0; 0, 2, 0; 0, 0, 3]), [1; 2; 3])
-%!assert (diag ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0], 1), [1; 2; 3])
-%!assert (diag ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0], -1), [1; 2; 3])
+%!assert (diag ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0], 1),
+%!        [1; 2; 3])
+%!assert (diag ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0], -1),
+%!        [1; 2; 3])
 %!assert (diag (ones (1, 0), 2), zeros (2))
 %!assert (diag (1:3, 4, 2), [1, 0; 0, 2; 0, 0; 0, 0])
 
-%!assert (full (diag (single ([1; 2; 3]))), single ([1, 0, 0; 0, 2, 0; 0, 0, 3]))
-%!assert (diag (single ([1; 2; 3]), 1), single ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]))
-%!assert (diag (single ([1; 2; 3]), 2), single ([0, 0, 1, 0, 0; 0, 0, 0, 2, 0; 0, 0, 0, 0, 3; 0, 0, 0, 0, 0; 0, 0, 0, 0, 0]))
-%!assert (diag (single ([1; 2; 3]),-1), single ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]))
-%!assert (diag (single ([1; 2; 3]),-2), single ([0, 0, 0, 0, 0; 0, 0, 0, 0, 0; 1, 0, 0, 0, 0; 0, 2, 0, 0, 0; 0, 0, 3, 0, 0]))
+%!assert (full (diag (single ([1; 2; 3]))),
+%!        single ([1, 0, 0; 0, 2, 0; 0, 0, 3]))
+%!assert (diag (single ([1; 2; 3]), 1),
+%!        single ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]))
+%!assert (diag (single ([1; 2; 3]), 2),
+%!        single ([0 0 1 0 0; 0 0 0 2 0; 0 0 0 0 3; 0 0 0 0 0; 0 0 0 0 0]))
+%!assert (diag (single ([1; 2; 3]),-1),
+%!        single ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]))
+%!assert (diag (single ([1; 2; 3]),-2),
+%!        single ([0 0 0 0 0; 0 0 0 0 0; 1 0 0 0 0; 0 2 0 0 0; 0 0 3 0 0]))
 
 %!assert (diag (single ([1, 0, 0; 0, 2, 0; 0, 0, 3])), single ([1; 2; 3]))
-%!assert (diag (single ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]), 1), single ([1; 2; 3]))
-%!assert (diag (single ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1), single ([1; 2; 3]))
+%!assert (diag (single ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]), 1),
+%!        single ([1; 2; 3]))
+%!assert (diag (single ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1),
+%!        single ([1; 2; 3]))
 
 %!assert (diag (int8 ([1; 2; 3])), int8 ([1, 0, 0; 0, 2, 0; 0, 0, 3]))
-%!assert (diag (int8 ([1; 2; 3]), 1), int8 ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]))
-%!assert (diag (int8 ([1; 2; 3]), 2), int8 ([0, 0, 1, 0, 0; 0, 0, 0, 2, 0; 0, 0, 0, 0, 3; 0, 0, 0, 0, 0; 0, 0, 0, 0, 0]))
-%!assert (diag (int8 ([1; 2; 3]),-1), int8 ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]))
-%!assert (diag (int8 ([1; 2; 3]),-2), int8 ([0, 0, 0, 0, 0; 0, 0, 0, 0, 0; 1, 0, 0, 0, 0; 0, 2, 0, 0, 0; 0, 0, 3, 0, 0]))
+%!assert (diag (int8 ([1; 2; 3]), 1),
+%!        int8 ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]))
+%!assert (diag (int8 ([1; 2; 3]), 2),
+%!        int8 ([0 0 1 0 0; 0 0 0 2 0; 0 0 0 0 3; 0 0 0 0 0; 0 0 0 0 0]))
+%!assert (diag (int8 ([1; 2; 3]),-1),
+%!        int8 ([0 0 0 0; 1 0 0 0; 0 2 0 0; 0 0 3 0]))
+%!assert (diag (int8 ([1; 2; 3]),-2),
+%!        int8 ([0 0 0 0 0; 0 0 0 0 0; 1 0 0 0 0; 0 2 0 0 0; 0 0 3 0 0]))
 
 %!assert (diag (int8 ([1, 0, 0; 0, 2, 0; 0, 0, 3])), int8 ([1; 2; 3]))
-%!assert (diag (int8 ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]), 1), int8 ([1; 2; 3]))
-%!assert (diag (int8 ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1), int8 ([1; 2; 3]))
+%!assert (diag (int8 ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]), 1),
+%!        int8 ([1; 2; 3]))
+%!assert (diag (int8 ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1),
+%!        int8 ([1; 2; 3]))
 
 %!assert (diag (1, 3, 3), diag ([1, 0, 0]))
 %!assert (diag (i, 3, 3), diag ([i, 0, 0]))
@@ -1295,7 +1320,8 @@
 
 %!assert <*37411> (diag (diag ([5, 2, 3])(:,1)), diag([5 0 0 ]))
 %!assert <*37411> (diag (diag ([5, 2, 3])(:,1), 2),  [0 0 5 0 0; zeros(4, 5)])
-%!assert <*37411> (diag (diag ([5, 2, 3])(:,1), -2), [[0 0 5 0 0]', zeros(5, 4)])
+%!assert <*37411> (diag (diag ([5, 2, 3])(:,1), -2),
+%!                 [[0 0 5 0 0]', zeros(5, 4)])
 
 ## Test non-square size
 %!assert (diag ([1,2,3], 6, 3), [1 0 0; 0 2 0; 0 0 3; 0 0 0; 0 0 0; 0 0 0])
@@ -1320,10 +1346,10 @@
 
 DEFUN (prod, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} prod (@var{x})
-@deftypefnx {} {} prod (@var{x}, @var{dim})
-@deftypefnx {} {} prod (@dots{}, "native")
-@deftypefnx {} {} prod (@dots{}, "double")
+@deftypefn  {} {@var{y} =} prod (@var{x})
+@deftypefnx {} {@var{y} =} prod (@var{x}, @var{dim})
+@deftypefnx {} {@var{y} =} prod (@dots{}, "native")
+@deftypefnx {} {@var{y} =} prod (@dots{}, "double")
 Product of elements along dimension @var{dim}.
 
 If @var{dim} is omitted, it defaults to the first non-singleton dimension.
@@ -1464,14 +1490,16 @@
 %!assert (prod (single ([1, 2, 3])), single (6))
 %!assert (prod (single ([-1; -2; -3])), single (-6))
 %!assert (prod (single ([i, 2+i, -3+2i, 4])), single (-4 - 32i))
-%!assert (prod (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])), single ([-1+i, -8+8i, -27+27i]))
+%!assert (prod (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])),
+%!        single ([-1+i, -8+8i, -27+27i]))
 
 ## Test sparse
 %!assert (prod (sparse ([1, 2, 3])), sparse (6))
 %!assert (prod (sparse ([-1; -2; -3])), sparse (-6))
 ## Commented out until bug #42290 is fixed
 #%!assert (prod (sparse ([i, 2+i, -3+2i, 4])), sparse (-4 - 32i))
-#%!assert (prod (sparse ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])), sparse ([-1+i, -8+8i, -27+27i]))
+#%!assert (prod (sparse ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])),
+#%!         sparse ([-1+i, -8+8i, -27+27i]))
 
 %!assert (prod ([1, 2; 3, 4], 1), [3, 8])
 %!assert (prod ([1, 2; 3, 4], 2), [2; 12])
@@ -1507,7 +1535,8 @@
 %!assert (prod (single ([1, 2, 3]), "double"), 6)
 %!assert (prod (single ([-1; -2; -3]), "double"), -6)
 %!assert (prod (single ([i, 2+i, -3+2i, 4]), "double"), -4 - 32i)
-%!assert (prod (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i]), "double"), [-1+i, -8+8i, -27+27i])
+%!assert (prod (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i]), "double"),
+%!        [-1+i, -8+8i, -27+27i])
 
 ## Test "native" type argument
 %!assert (prod (uint8 ([1, 2, 3]), "native"), uint8 (6))
@@ -1651,7 +1680,7 @@
 
   std::string cname = ov.class_name ();
 
-  symbol_table& symtab = __get_symbol_table__ ("attempt_type_conversion");
+  symbol_table& symtab = __get_symbol_table__ ();
 
   octave_value fcn = symtab.find_method (dtype, cname);
 
@@ -1717,7 +1746,7 @@
 
   std::string dtype = get_dispatch_type (ovl);
 
-  symbol_table& symtab = __get_symbol_table__ ("do_class_concat");
+  symbol_table& symtab = __get_symbol_table__ ();
 
   octave_value fcn = symtab.find_method (cattype, dtype);
 
@@ -1996,7 +2025,7 @@
 
 DEFUN (horzcat, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} horzcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN})
+@deftypefn {} {@var{A} =} horzcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN})
 Return the horizontal concatenation of N-D array objects, @var{array1},
 @var{array2}, @dots{}, @var{arrayN} along dimension 2.
 
@@ -2004,8 +2033,11 @@
 new matrices.  For example:
 
 @example
-@var{hcat} = [ @var{array1}, @var{array2}, @dots{} ]
+@var{A} = [ @var{array1}, @var{array2}, @dots{} ]
 @end example
+
+This syntax is slightly more efficient because the Octave parser can
+concatenate the arrays without the overhead of a function call.
 @seealso{cat, vertcat}
 @end deftypefn */)
 {
@@ -2235,7 +2267,7 @@
 
 DEFUN (vertcat, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} vertcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN})
+@deftypefn {} {@var{A} =} vertcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN})
 Return the vertical concatenation of N-D array objects, @var{array1},
 @var{array2}, @dots{}, @var{arrayN} along dimension 1.
 
@@ -2243,8 +2275,11 @@
 new matrices.  For example:
 
 @example
-@var{vcat} = [ @var{array1}; @var{array2}; @dots{} ]
+@var{A} = [ @var{array1}; @var{array2}; @dots{} ]
 @end example
+
+This syntax is slightly more efficient because the Octave parser can
+concatenate the arrays without the overhead of a function call.
 @seealso{cat, horzcat}
 @end deftypefn */)
 {
@@ -2254,14 +2289,15 @@
 /*
 %!test
 %! c = {"foo"; "bar"; "bazoloa"};
-%! assert (vertcat (c, "a", "bc", "def"), {"foo"; "bar"; "bazoloa"; "a"; "bc"; "def"});
+%! assert (vertcat (c, "a", "bc", "def"),
+%!         {"foo"; "bar"; "bazoloa"; "a"; "bc"; "def"});
 */
 
 DEFUN (cat, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} cat (@var{dim}, @var{array1}, @var{array2}, @dots{}, @var{arrayN})
-Return the concatenation of N-D array objects, @var{array1},
-@var{array2}, @dots{}, @var{arrayN} along dimension @var{dim}.
+@deftypefn {} {@var{A} =} cat (@var{dim}, @var{array1}, @var{array2}, @dots{}, @var{arrayN})
+Return the concatenation of N-D array objects, @var{array1}, @var{array2},
+@dots{}, @var{arrayN} along dimension @var{dim}.
 
 @example
 @group
@@ -2273,8 +2309,8 @@
 @end group
 @end example
 
-Alternatively, we can concatenate @var{A} and @var{B} along the
-second dimension in the following way:
+Alternatively, we can concatenate @var{A} and @var{B} along the second
+dimension in the following way:
 
 @example
 @group
@@ -2282,9 +2318,8 @@
 @end group
 @end example
 
-@var{dim} can be larger than the dimensions of the N-D array objects
-and the result will thus have @var{dim} dimensions as the
-following example shows:
+@var{dim} can be larger than the dimensions of the N-D array objects and the
+result will thus have @var{dim} dimensions as the following example shows:
 
 @example
 @group
@@ -2321,11 +2356,13 @@
 %!  assert (cat (1, cast (1, t1), cast (2, t2)), cast ([1; 2], tr));
 %!  assert (cat (1, cast (1, t1), cast ([2; 3], t2)), cast ([1; 2; 3], tr));
 %!  assert (cat (1, cast ([1; 2], t1), cast (3, t2)), cast ([1; 2; 3], tr));
-%!  assert (cat (1, cast ([1; 2], t1), cast ([3; 4], t2)), cast ([1; 2; 3; 4], tr));
+%!  assert (cat (1, cast ([1; 2], t1), cast ([3; 4], t2)),
+%!          cast ([1; 2; 3; 4], tr));
 %!  assert (cat (2, cast (1, t1), cast (2, t2)), cast ([1, 2], tr));
 %!  assert (cat (2, cast (1, t1), cast ([2, 3], t2)), cast ([1, 2, 3], tr));
 %!  assert (cat (2, cast ([1, 2], t1), cast (3, t2)), cast ([1, 2, 3], tr));
-%!  assert (cat (2, cast ([1, 2], t1), cast ([3, 4], t2)), cast ([1, 2, 3, 4], tr));
+%!  assert (cat (2, cast ([1, 2], t1), cast ([3, 4], t2)),
+%!          cast ([1, 2, 3, 4], tr));
 %!
 %!  assert ([cast(1, t1); cast(2, t2)], cast ([1; 2], tr));
 %!  assert ([cast(1, t1); cast([2; 3], t2)], cast ([1; 2; 3], tr));
@@ -2340,12 +2377,13 @@
 %!    assert (cat (1, cast (1i, t1), cast (2, t2)), cast ([1i; 2], tr));
 %!    assert (cat (1, cast (1i, t1), cast ([2; 3], t2)), cast ([1i; 2; 3], tr));
 %!    assert (cat (1, cast ([1i; 2], t1), cast (3, t2)), cast ([1i; 2; 3], tr));
-%!    assert (cat (1, cast ([1i; 2], t1), cast ([3; 4], t2)), cast ([1i; 2; 3; 4], tr));
+%!    assert (cat (1, cast ([1i; 2], t1), cast ([3; 4], t2)),
+%!            cast ([1i; 2; 3; 4], tr));
 %!    assert (cat (2, cast (1i, t1), cast (2, t2)), cast ([1i, 2], tr));
 %!    assert (cat (2, cast (1i, t1), cast ([2, 3], t2)), cast ([1i, 2, 3], tr));
 %!    assert (cat (2, cast ([1i, 2], t1), cast (3, t2)), cast ([1i, 2, 3], tr));
-%!    assert (cat (2, cast ([1i, 2], t1), cast ([3, 4], t2)), cast ([1i, 2, 3, 4], tr));
-%!
+%!    assert (cat (2, cast ([1i, 2], t1), cast ([3, 4], t2)),
+%!            cast ([1i, 2, 3, 4], tr));
 %!    assert ([cast(1i, t1); cast(2, t2)], cast ([1i; 2], tr));
 %!    assert ([cast(1i, t1); cast([2; 3], t2)], cast ([1i; 2; 3], tr));
 %!    assert ([cast([1i; 2], t1); cast(3, t2)], cast ([1i; 2; 3], tr));
@@ -2358,12 +2396,13 @@
 %!    assert (cat (1, cast (1, t1), cast (2i, t2)), cast ([1; 2i], tr));
 %!    assert (cat (1, cast (1, t1), cast ([2i; 3], t2)), cast ([1; 2i; 3], tr));
 %!    assert (cat (1, cast ([1; 2], t1), cast (3i, t2)), cast ([1; 2; 3i], tr));
-%!    assert (cat (1, cast ([1; 2], t1), cast ([3i; 4], t2)), cast ([1; 2; 3i; 4], tr));
+%!    assert (cat (1, cast ([1; 2], t1), cast ([3i; 4], t2)),
+%!            cast ([1; 2; 3i; 4], tr));
 %!    assert (cat (2, cast (1, t1), cast (2i, t2)), cast ([1, 2i], tr));
 %!    assert (cat (2, cast (1, t1), cast ([2i, 3], t2)), cast ([1, 2i, 3], tr));
 %!    assert (cat (2, cast ([1, 2], t1), cast (3i, t2)), cast ([1, 2, 3i], tr));
-%!    assert (cat (2, cast ([1, 2], t1), cast ([3i, 4], t2)), cast ([1, 2, 3i, 4], tr));
-%!
+%!    assert (cat (2, cast ([1, 2], t1), cast ([3i, 4], t2)),
+%!            cast ([1, 2, 3i, 4], tr));
 %!    assert ([cast(1, t1); cast(2i, t2)], cast ([1; 2i], tr));
 %!    assert ([cast(1, t1); cast([2i; 3], t2)], cast ([1; 2i; 3], tr));
 %!    assert ([cast([1; 2], t1); cast(3i, t2)], cast ([1; 2; 3i], tr));
@@ -2374,22 +2413,30 @@
 %!    assert ([cast([1, 2], t1), cast([3i, 4], t2)], cast ([1, 2, 3i, 4], tr));
 %!
 %!    assert (cat (1, cast (1i, t1), cast (2i, t2)), cast ([1i; 2i], tr));
-%!    assert (cat (1, cast (1i, t1), cast ([2i; 3], t2)), cast ([1i; 2i; 3], tr));
-%!    assert (cat (1, cast ([1i; 2], t1), cast (3i, t2)), cast ([1i; 2; 3i], tr));
-%!    assert (cat (1, cast ([1i; 2], t1), cast ([3i; 4], t2)), cast ([1i; 2; 3i; 4], tr));
+%!    assert (cat (1, cast (1i, t1), cast ([2i; 3], t2)),
+%!            cast ([1i; 2i; 3], tr));
+%!    assert (cat (1, cast ([1i; 2], t1), cast (3i, t2)),
+%!            cast ([1i; 2; 3i], tr));
+%!    assert (cat (1, cast ([1i; 2], t1), cast ([3i; 4], t2)),
+%!            cast ([1i; 2; 3i; 4], tr));
 %!    assert (cat (2, cast (1i, t1), cast (2i, t2)), cast ([1i, 2i], tr));
-%!    assert (cat (2, cast (1i, t1), cast ([2i, 3], t2)), cast ([1i, 2i, 3], tr));
-%!    assert (cat (2, cast ([1i, 2], t1), cast (3i, t2)), cast ([1i, 2, 3i], tr));
-%!    assert (cat (2, cast ([1i, 2], t1), cast ([3i, 4], t2)), cast ([1i, 2, 3i, 4], tr));
+%!    assert (cat (2, cast (1i, t1), cast ([2i, 3], t2)),
+%!            cast ([1i, 2i, 3], tr));
+%!    assert (cat (2, cast ([1i, 2], t1), cast (3i, t2)),
+%!            cast ([1i, 2, 3i], tr));
+%!    assert (cat (2, cast ([1i, 2], t1), cast ([3i, 4], t2)),
+%!            cast ([1i, 2, 3i, 4], tr));
 %!
 %!    assert ([cast(1i, t1); cast(2i, t2)], cast ([1i; 2i], tr));
 %!    assert ([cast(1i, t1); cast([2i; 3], t2)], cast ([1i; 2i; 3], tr));
 %!    assert ([cast([1i; 2], t1); cast(3i, t2)], cast ([1i; 2; 3i], tr));
-%!    assert ([cast([1i; 2], t1); cast([3i; 4], t2)], cast ([1i; 2; 3i; 4], tr));
+%!    assert ([cast([1i; 2], t1); cast([3i; 4], t2)],
+%!            cast ([1i; 2; 3i; 4], tr));
 %!    assert ([cast(1i, t1), cast(2i, t2)], cast ([1i, 2i], tr));
 %!    assert ([cast(1i, t1), cast([2i, 3], t2)], cast ([1i, 2i, 3], tr));
 %!    assert ([cast([1i, 2], t1), cast(3i, t2)], cast ([1i, 2, 3i], tr));
-%!    assert ([cast([1i, 2], t1), cast([3i, 4], t2)], cast ([1i, 2, 3i, 4], tr));
+%!    assert ([cast([1i, 2], t1), cast([3i, 4], t2)],
+%!            cast ([1i, 2, 3i, 4], tr));
 %!  endif
 %!  ret = true;
 %!endfunction
@@ -2482,7 +2529,7 @@
 
 DEFUN (permute, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} permute (@var{A}, @var{perm})
+@deftypefn {} {@var{B} =} permute (@var{A}, @var{perm})
 Return the generalized transpose for an N-D array object @var{A}.
 
 The permutation vector @var{perm} must contain the elements
@@ -2515,7 +2562,7 @@
 
 DEFUN (ipermute, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ipermute (@var{A}, @var{iperm})
+@deftypefn {} {@var{A} =} ipermute (@var{B}, @var{iperm})
 The inverse of the @code{permute} function.
 
 The expression
@@ -2534,13 +2581,13 @@
 
 DEFUN (length, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} length (@var{a})
-Return the length of the object @var{a}.
+@deftypefn {} {@var{n} =} length (@var{A})
+Return the length of the object @var{A}.
 
 The length is 0 for empty objects, 1 for scalars, and the number of elements
 for vectors.  For matrix or N-dimensional objects, the length is the number
 of elements along the largest dimension
-(equivalent to @w{@code{max (size (@var{a}))}}).
+(equivalent to @w{@code{max (size (@var{A}))}}).
 @seealso{numel, size}
 @end deftypefn */)
 {
@@ -2552,12 +2599,12 @@
 
 DEFUN (ndims, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ndims (@var{a})
-Return the number of dimensions of @var{a}.
+@deftypefn {} {@var{n} =} ndims (@var{A})
+Return the number of dimensions of @var{A}.
 
 For any array, the result will always be greater than or equal to 2.
-Trailing singleton dimensions are not counted, i.e., tailing dimensions @var{d}
-greater than 2, for which @code{size (@var{a}, @var{d}) = 1}.
+Trailing singleton dimensions are not counted, i.e., trailing dimensions @var{d}
+greater than 2 for which @code{size (@var{A}, @var{d}) = 1}.
 
 @example
 @group
@@ -2592,15 +2639,15 @@
 
 DEFUN (numel, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} numel (@var{a})
-@deftypefnx {} {} numel (@var{a}, @var{idx1}, @var{idx2}, @dots{})
-Return the number of elements in the object @var{a}.
+@deftypefn  {} {@var{n} =} numel (@var{A})
+@deftypefnx {} {@var{n} =} numel (@var{A}, @var{idx1}, @var{idx2}, @dots{})
+Return the number of elements in the object @var{A}.
 
 Optionally, if indices @var{idx1}, @var{idx2}, @dots{} are supplied,
 return the number of elements that would result from the indexing
 
 @example
-@var{a}(@var{idx1}, @var{idx2}, @dots{})
+@var{A}(@var{idx1}, @var{idx2}, @dots{})
 @end example
 
 Note that the indices do not have to be scalar numbers.  For example,
@@ -2620,8 +2667,8 @@
 
 @example
 @group
-@var{a} = ones (5, 3);
-numel (@var{a}, 2, ":")
+@var{A} = ones (5, 3);
+numel (@var{A}, 2, ":")
 @end group
 @end example
 
@@ -2654,12 +2701,12 @@
 
 DEFUN (size, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {@var{sz} =} size (@var{a})
-@deftypefnx {} {@var{dim_sz} =} size (@var{a}, @var{dim})
-@deftypefnx {} {@var{dim_sz} =} size (@var{a}, @var{d1}, @var{d2}, @dots{})
+@deftypefn  {} {@var{sz} =} size (@var{A})
+@deftypefnx {} {@var{dim_sz} =} size (@var{A}, @var{dim})
+@deftypefnx {} {@var{dim_sz} =} size (@var{A}, @var{d1}, @var{d2}, @dots{})
 @deftypefnx {} {[@var{rows}, @var{cols}, @dots{}, @var{dim_N_sz}] =} size (@dots{})
 Return a row vector with the size (number of elements) of each dimension for
-the object @var{a}.
+the object @var{A}.
 
 When given a second argument, @var{dim}, return the size of the corresponding
 dimension.  If @var{dim} is a vector, return each of the corresponding
@@ -2669,7 +2716,7 @@
 with multiple output arguments, @code{size} returns the size of dimension N
 in the Nth argument.  The number of rows, dimension 1, is returned in the
 first argument, the number of columns, dimension 2, is returned in the
-second argument, etc.  If there are more dimensions in @var{a} than there are
+second argument, etc.  If there are more dimensions in @var{A} than there are
 output arguments, @code{size} returns the total number of elements in the
 remaining dimensions in the final output argument.
 
@@ -2863,7 +2910,8 @@
 
 DEFUN (size_equal, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} size_equal (@var{a}, @var{b}, @dots{})
+@deftypefn  {} {@var{TF} =} size_equal (@var{A}, @var{B})
+@deftypefnx {} {@var{TF} =} size_equal (@var{A}, @var{B}, @dots{})
 Return true if the dimensions of all arguments agree.
 
 Trailing singleton dimensions are ignored.  When called with a single argument,
@@ -2891,8 +2939,8 @@
 
 DEFUN (nnz, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {@var{n} =} nnz (@var{a})
-Return the number of nonzero elements in @var{a}.
+@deftypefn {} {@var{n} =} nnz (@var{A})
+Return the number of nonzero elements in @var{A}.
 @seealso{nzmax, nonzeros, find}
 @end deftypefn */)
 {
@@ -2940,9 +2988,10 @@
 
 DEFUN (rows, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} rows (@var{a})
-Return the number of rows of @var{a}.  This is equivalent to
-@code{size (@var{a}, 1)}.
+@deftypefn {} {@var{nr} =} rows (@var{A})
+Return the number of rows of @var{A}.
+
+This is equivalent to @code{size (@var{A}, 1)}.
 @seealso{columns, size, length, numel, isscalar, isvector, ismatrix}
 @end deftypefn */)
 {
@@ -2984,9 +3033,10 @@
 
 DEFUN (columns, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} columns (@var{a})
-Return the number of columns of @var{a}.  This is equivalent to
-@code{size (@var{a}, 2)}.
+@deftypefn {} {@var{nc} =} columns (@var{A})
+Return the number of columns of @var{A}.
+
+This is equivalent to @code{size (@var{A}, 2)}.
 @seealso{rows, size, length, numel, isscalar, isvector, ismatrix}
 @end deftypefn */)
 {
@@ -3001,11 +3051,11 @@
 
 DEFUN (sum, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} sum (@var{x})
-@deftypefnx {} {} sum (@var{x}, @var{dim})
-@deftypefnx {} {} sum (@dots{}, "native")
-@deftypefnx {} {} sum (@dots{}, "double")
-@deftypefnx {} {} sum (@dots{}, "extra")
+@deftypefn  {} {@var{y} =} sum (@var{x})
+@deftypefnx {} {@var{y} =} sum (@var{x}, @var{dim})
+@deftypefnx {} {@var{y} =} sum (@dots{}, "native")
+@deftypefnx {} {@var{y} =} sum (@dots{}, "double")
+@deftypefnx {} {@var{y} =} sum (@dots{}, "extra")
 Sum of elements along dimension @var{dim}.
 
 If @var{dim} is omitted, it defaults to the first non-singleton dimension.
@@ -3173,7 +3223,8 @@
 %!assert (sum (single ([1, 2, 3])), single (6))
 %!assert (sum (single ([-1; -2; -3])), single (-6))
 %!assert (sum (single ([i, 2+i, -3+2i, 4])), single (3+4i))
-%!assert (sum (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])), single ([2+2i, 4+4i, 6+6i]))
+%!assert (sum (single ([1, 2, 3; i, 2i, 3i; 1+i, 2+2i, 3+3i])),
+%!        single ([2+2i, 4+4i, 6+6i]))
 
 %!assert (sum ([1, 2; 3, 4], 1), [4, 6])
 %!assert (sum ([1, 2; 3, 4], 2), [3; 7])
@@ -3231,8 +3282,8 @@
 
 DEFUN (sumsq, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} sumsq (@var{x})
-@deftypefnx {} {} sumsq (@var{x}, @var{dim})
+@deftypefn  {} {@var{y} =} sumsq (@var{x})
+@deftypefnx {} {@var{y} =} sumsq (@var{x}, @var{dim})
 Sum of squares of elements along dimension @var{dim}.
 
 If @var{dim} is omitted, it defaults to the first non-singleton dimension.
@@ -3271,8 +3322,8 @@
 
 DEFUN (islogical, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} islogical (@var{x})
-@deftypefnx {} {} isbool (@var{x})
+@deftypefn  {} {@var{tf} =} islogical (@var{x})
+@deftypefnx {} {@var{tf} =} isbool (@var{x})
 Return true if @var{x} is a logical object.
 @seealso{ischar, isfloat, isinteger, isstring, isnumeric, isa}
 @end deftypefn */)
@@ -3301,7 +3352,7 @@
 
 DEFUN (isinteger, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isinteger (@var{x})
+@deftypefn {} {@var{tf} =} isinteger (@var{x})
 Return true if @var{x} is an integer object (int8, uint8, int16, etc.).
 
 Note that @w{@code{isinteger (14)}} is false because numeric constants in
@@ -3359,7 +3410,7 @@
 
 DEFUN (iscomplex, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} iscomplex (@var{x})
+@deftypefn {} {@var{tf} =} iscomplex (@var{x})
 Return true if @var{x} is a complex-valued numeric object.
 @seealso{isreal, isnumeric, ischar, isfloat, islogical, isstring, isa}
 @end deftypefn */)
@@ -3389,7 +3440,7 @@
 
 DEFUN (isfloat, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isfloat (@var{x})
+@deftypefn {} {@var{tf} =} isfloat (@var{x})
 Return true if @var{x} is a floating-point numeric object.
 
 Objects of class double or single are floating-point objects.
@@ -3407,8 +3458,8 @@
 
 DEFUN (complex, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} complex (@var{x})
-@deftypefnx {} {} complex (@var{re}, @var{im})
+@deftypefn  {} {@var{z} =} complex (@var{x})
+@deftypefnx {} {@var{z} =} complex (@var{re}, @var{im})
 Return a complex value from real arguments.
 
 With 1 real argument @var{x}, return the complex result
@@ -3428,6 +3479,12 @@
 @end example
 @seealso{real, imag, iscomplex, abs, arg}
 @end deftypefn */)
+// Programming Note: Throughout this function the coding pattern
+// octave_value (new XXX)) is used.  This is done specifically because the
+// default octave_value constructor would otherwise perform automatic narrowing
+// (i.e., complex values with 0 for the imaginary part would be converted
+// to real values).  The complex() function *must* return a complex value
+// even when the imaginary part is 0.
 {
   int nargin = args.length ();
 
@@ -3565,11 +3622,10 @@
                 {
                   const FloatNDArray im_val = im.float_array_value ();
 
-                  FloatComplexNDArray result (im_val.dims (),
-                                              FloatComplex ());
+                  FloatComplexNDArray result (im_val.dims ());
 
                   for (octave_idx_type i = 0; i < im_val.numel (); i++)
-                    result.xelem (i) = FloatComplex (re_val, im_val(i));
+                    result.xelem (i) = FloatComplex (re_val, im_val.xelem (i));
 
                   retval = octave_value (new octave_float_complex_matrix
                                          (result));
@@ -3583,11 +3639,10 @@
                 {
                   float im_val = im.float_value ();
 
-                  FloatComplexNDArray result (re_val.dims (),
-                                              FloatComplex ());
+                  FloatComplexNDArray result (re_val.dims ());
 
                   for (octave_idx_type i = 0; i < re_val.numel (); i++)
-                    result.xelem (i) = FloatComplex (re_val(i), im_val);
+                    result.xelem (i) = FloatComplex (re_val.xelem (i), im_val);
 
                   retval = octave_value (new octave_float_complex_matrix
                                          (result));
@@ -3599,12 +3654,11 @@
                   if (re_val.dims () != im_val.dims ())
                     error ("complex: dimension mismatch");
 
-                  FloatComplexNDArray result (re_val.dims (),
-                                              FloatComplex ());
+                  FloatComplexNDArray result (re_val.dims ());
 
                   for (octave_idx_type i = 0; i < re_val.numel (); i++)
-                    result.xelem (i) = FloatComplex (re_val(i),
-                                                     im_val(i));
+                    result.xelem (i) = FloatComplex (re_val.xelem (i),
+                                                     im_val.xelem (i));
 
                   retval = octave_value (new octave_float_complex_matrix
                                          (result));
@@ -3626,10 +3680,10 @@
             {
               const NDArray im_val = im.array_value ();
 
-              ComplexNDArray result (im_val.dims (), Complex ());
+              ComplexNDArray result (im_val.dims ());
 
               for (octave_idx_type i = 0; i < im_val.numel (); i++)
-                result.xelem (i) = Complex (re_val, im_val(i));
+                result.xelem (i) = Complex (re_val, im_val.xelem (i));
 
               retval = octave_value (new octave_complex_matrix (result));
             }
@@ -3642,10 +3696,10 @@
             {
               double im_val = im.double_value ();
 
-              ComplexNDArray result (re_val.dims (), Complex ());
+              ComplexNDArray result (re_val.dims ());
 
               for (octave_idx_type i = 0; i < re_val.numel (); i++)
-                result.xelem (i) = Complex (re_val(i), im_val);
+                result.xelem (i) = Complex (re_val.xelem (i), im_val);
 
               retval = octave_value (new octave_complex_matrix (result));
             }
@@ -3659,7 +3713,8 @@
               ComplexNDArray result (re_val.dims (), Complex ());
 
               for (octave_idx_type i = 0; i < re_val.numel (); i++)
-                result.xelem (i) = Complex (re_val(i), im_val(i));
+                result.xelem (i) = Complex (re_val.xelem (i),
+                                            im_val.xelem (i));
 
               retval = octave_value (new octave_complex_matrix (result));
             }
@@ -3714,7 +3769,7 @@
 
 DEFUN (isreal, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isreal (@var{x})
+@deftypefn {} {@var{tf} =} isreal (@var{x})
 Return true if @var{x} is a non-complex matrix or scalar.
 
 For compatibility with @sc{matlab}, this includes logical and character
@@ -3730,8 +3785,8 @@
 
 DEFUN (isempty, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isempty (@var{a})
-Return true if @var{a} is an empty matrix (any one of its dimensions is
+@deftypefn {} {@var{tf} =} isempty (@var{A})
+Return true if @var{A} is an empty matrix (any one of its dimensions is
 zero).
 @seealso{isnull, isa}
 @end deftypefn */)
@@ -3749,7 +3804,7 @@
 
 DEFUN (isnumeric, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isnumeric (@var{x})
+@deftypefn {} {@var{tf} =} isnumeric (@var{x})
 Return true if @var{x} is a numeric object, i.e., an integer, real, or
 complex array.
 
@@ -3782,7 +3837,7 @@
 
 DEFUN (isscalar, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isscalar (@var{x})
+@deftypefn {} {@var{tf} =} isscalar (@var{x})
 Return true if @var{x} is a scalar.
 
 A scalar is an object with two dimensions for which @code{size (@var{x})}
@@ -3821,7 +3876,7 @@
 
 DEFUN (isvector, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isvector (@var{x})
+@deftypefn {} {@var{tf} =} isvector (@var{x})
 Return true if @var{x} is a vector.
 
 A vector is a 2-D array where one of the dimensions is equal to 1 (either
@@ -3862,7 +3917,7 @@
 
 DEFUN (isrow, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isrow (@var{x})
+@deftypefn {} {@var{tf} =} isrow (@var{x})
 Return true if @var{x} is a row vector.
 
 A row vector is a 2-D array for which @code{size (@var{x})} returns
@@ -3911,7 +3966,7 @@
 
 DEFUN (iscolumn, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} iscolumn (@var{x})
+@deftypefn {} {@var{tf} =} iscolumn (@var{x})
 Return true if @var{x} is a column vector.
 
 A column vector is a 2-D array for which @code{size (@var{x})} returns
@@ -3960,7 +4015,7 @@
 
 DEFUN (ismatrix, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ismatrix (@var{x})
+@deftypefn {} {@var{tf} =} ismatrix (@var{x})
 Return true if @var{x} is a 2-D array.
 
 A matrix is an object with two dimensions (@code{ndims (@var{x}) == 2}) for
@@ -4009,7 +4064,7 @@
 
 DEFUN (issquare, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} issquare (@var{x})
+@deftypefn {} {@var{tf} =} issquare (@var{x})
 Return true if @var{x} is a 2-D square array.
 
 A square array is a 2-D object for which @code{size (@var{x})} returns
@@ -4093,7 +4148,12 @@
         dims.resize (nargin);
 
         for (int i = 0; i < nargin; i++)
-          dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          {
+            if (args(i).numel () > 1)
+              error ("%s: dimensions must be scalars.", fcn);
+
+            dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          }
       }
       break;
     }
@@ -4245,7 +4305,12 @@
         dims.resize (nargin);
 
         for (int i = 0; i < nargin; i++)
-          dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          {
+            if (args(i).numel () > 1)
+              error ("%s: dimensions must be scalars.", fcn);
+
+            dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          }
       }
       break;
     }
@@ -4327,7 +4392,12 @@
         dims.resize (nargin);
 
         for (int i = 0; i < nargin; i++)
-          dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          {
+            if (args(i).numel () > 1)
+              error ("%s: dimensions must be scalars.", fcn);
+
+            dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          }
       }
       break;
     }
@@ -4391,7 +4461,12 @@
         dims.resize (nargin);
 
         for (int i = 0; i < nargin; i++)
-          dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          {
+            if (args(i).numel () > 1)
+              error ("%s: dimensions must be scalars.", fcn);
+
+            dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          }
       }
       break;
     }
@@ -4469,7 +4544,12 @@
         dims.resize (nargin);
 
         for (int i = 0; i < nargin; i++)
-          dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          {
+            if (args(i).numel () > 1)
+              error ("%s: dimensions must be scalars.", fcn);
+
+            dims(i) = (args(i).isempty () ? 0 : args(i).idx_type_value (true));
+          }
       }
       break;
     }
@@ -4500,7 +4580,7 @@
 @deftypefnx {} {@var{val} =} ones (@var{m}, @var{n})
 @deftypefnx {} {@var{val} =} ones (@var{m}, @var{n}, @var{k}, @dots{})
 @deftypefnx {} {@var{val} =} ones ([@var{m} @var{n} @dots{}])
-@deftypefnx {} {@var{val} =} ones (@dots{}, "@var{like}", @var{var}))
+@deftypefnx {} {@var{val} =} ones (@dots{}, "@var{like}", @var{var})
 @deftypefnx {} {@var{val} =} ones (@dots{}, @var{class})
 Return a matrix or N-dimensional array whose elements are all 1.
 
@@ -4563,22 +4643,27 @@
 %!error <conversion of 1.1 .*failed> ones (1, 1.1)
 %!error <conversion of 1.1 .*failed> ones ([1, 1.1])
 %!error <sparse ND .* not supported> ones (3, 3, 3, "like", speye (1))
+%!error <must be scalar> ones (1:3, 1)
+%!error <must be scalar> ones (1, 1:3)
+%!error <must be scalar> ones (1, 2, 1:3)
+%!error <must be scalar> ones (1:3, 1, "like", single (1))
 */
 
 /*
 ## Tests for bug #47298
 ## Matlab requires the size to be a row vector.  In that logic, it supports
 ## n to be a 1x0 vector (returns 0x0) but not a 0x1 vector.  Octave supports
-## any vector and therefore must support 0x1, 1x0, and 0x0x1 (but not 0x1x1).
+## row and column vectors and therefore must support 0x1, 1x0, and 0x1x1.
+## Also any empty input results in a 0x0 output.
 %!test <*47298>
-%! funcs = {@zeros, @ones, @inf, @nan, @NA, @i, @pi, @e};
-%! for idx = 1:numel (funcs)
-%!   func = funcs{idx};
-%!   assert (func (zeros (1, 0)), zeros (0, 0));
-%!   assert (func (zeros (0, 1)), zeros (0, 0));
-%!   assert (func (zeros (0, 1, 1)), zeros (0, 0));
-%!   fail ([func2str(func) " ([])"]);
-%!   fail ([func2str(func) " (zeros (0, 0, 1))"]);
+%! fcns = {@zeros, @ones, @inf, @nan, @NA, @i, @pi, @e};
+%! for idx = 1:numel (fcns)
+%!   fcn = fcns{idx};
+%!   assert (fcn (zeros (1, 0)), zeros (0, 0));
+%!   assert (fcn (zeros (0, 1)), zeros (0, 0));
+%!   assert (fcn (zeros (0, 1, 1)), zeros (0, 0));
+%!   assert (fcn (zeros ([])), zeros (0, 0));
+%!   assert (fcn (zeros (0, 0, 1)), zeros (0, 0));
 %! endfor
 */
 
@@ -4588,7 +4673,7 @@
 @deftypefnx {} {@var{val} =} zeros (@var{m}, @var{n})
 @deftypefnx {} {@var{val} =} zeros (@var{m}, @var{n}, @var{k}, @dots{})
 @deftypefnx {} {@var{val} =} zeros ([@var{m} @var{n} @dots{}])
-@deftypefnx {} {@var{val} =} zeros (@dots{}, "@var{like}", @var{var}))
+@deftypefnx {} {@var{val} =} zeros (@dots{}, "@var{like}", @var{var})
 @deftypefnx {} {@var{val} =} zeros (@dots{}, @var{class})
 Return a matrix or N-dimensional array whose elements are all 0.
 
@@ -4644,6 +4729,10 @@
 %!error <conversion of 1.1 .*failed> zeros (1, 1.1, 2)
 %!error <conversion of 1.1 .*failed> zeros ([1, 1.1, 2])
 %!error <sparse ND .* not supported> zeros (3, 3, 3, "like", speye (1))
+%!error <must be scalar> zeros (1:3, 1)
+%!error <must be scalar> zeros (1, 1:3)
+%!error <must be scalar> zeros (1, 2, 1:3)
+%!error <must be scalar> zeros (1:3, 1, "like", single (1))
 */
 
 DEFUN (Inf, args, ,
@@ -4651,11 +4740,11 @@
 @c List other form of function in documentation index
 @findex inf
 
-@deftypefn  {} {} Inf
-@deftypefnx {} {} Inf (@var{n})
-@deftypefnx {} {} Inf (@var{n}, @var{m})
-@deftypefnx {} {} Inf (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {} Inf (@dots{}, @var{class})
+@deftypefn  {} {@var{A} =} Inf
+@deftypefnx {} {@var{A} =} Inf (@var{n})
+@deftypefnx {} {@var{A} =} Inf (@var{n}, @var{m})
+@deftypefnx {} {@var{A} =} Inf (@var{n}, @var{m}, @var{k}, @dots{})
+@deftypefnx {} {@var{A} =} Inf (@dots{}, @var{class})
 Return a scalar, matrix or N-dimensional array whose elements are all equal
 to the IEEE representation for positive infinity.
 
@@ -4696,7 +4785,8 @@
 %!assert (Inf (3, 2), [Inf, Inf; Inf, Inf; Inf, Inf])
 %!assert (size (Inf (3, 4, 5)), [3, 4, 5])
 
-%!assert (Inf (3, "single"), single ([Inf, Inf, Inf; Inf, Inf, Inf; Inf, Inf, Inf]))
+%!assert (Inf (3, "single"),
+%!        single ([Inf, Inf, Inf; Inf, Inf, Inf; Inf, Inf, Inf]))
 %!assert (Inf (2, 3, "single"), single ([Inf, Inf, Inf; Inf, Inf, Inf]))
 %!assert (Inf (3, 2, "single"), single ([Inf, Inf; Inf, Inf; Inf, Inf]))
 %!assert (size (inf (3, 4, 5, "single")), [3, 4, 5])
@@ -4704,7 +4794,8 @@
 %!assert (Inf (2, 2, "like", speye (2)), sparse ([Inf, Inf; Inf, Inf]))
 %!assert (Inf (2, 2, "like", complex (ones (2, 2))), [Inf, Inf; Inf, Inf])
 %!assert (Inf (2, 2, "like", double (1)), double ([Inf, Inf; Inf, Inf]))
-%!assert (Inf (3, 3, "like", single (1)), single ([Inf, Inf, Inf; Inf, Inf, Inf; Inf, Inf, Inf]))
+%!assert (Inf (3, 3, "like", single (1)),
+%!        single ([Inf, Inf, Inf; Inf, Inf, Inf; Inf, Inf, Inf]))
 %!assert (Inf (2, "like", single (1i)), single ([Inf, Inf; Inf, Inf]))
 
 %!error Inf (3, "like", int8 (1))
@@ -4715,6 +4806,10 @@
 %!error Inf (3, 4, 5, "int8")
 %!error <input .* floating> Inf (3, 3, "like", true)
 %!error <input .* floating> Inf (2, "like", uint8 (1))
+%!error <must be scalar> Inf (1:3, 1)
+%!error <must be scalar> Inf (1, 1:3)
+%!error <must be scalar> Inf (1, 2, 1:3)
+%!error <must be scalar> Inf (1:3, 1, "like", single (1))
 */
 
 DEFUN (NaN, args, ,
@@ -4726,7 +4821,7 @@
 @deftypefnx {} {@var{val} =} NaN (@var{n})
 @deftypefnx {} {@var{val} =} NaN (@var{n}, @var{m})
 @deftypefnx {} {@var{val} =} NaN (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {@var{val} =} NaN (@dots{}, "@var{like}", @var{var}))
+@deftypefnx {} {@var{val} =} NaN (@dots{}, "@var{like}", @var{var})
 @deftypefnx {} {@var{val} =} NaN (@dots{}, @var{class})
 Return a scalar, matrix, or N-dimensional array whose elements are all equal
 to the IEEE symbol NaN (Not a Number).
@@ -4775,14 +4870,16 @@
 %!assert (NaN (3, 2), [NaN, NaN; NaN, NaN; NaN, NaN])
 %!assert (size (NaN (3, 4, 5)), [3, 4, 5])
 
-%!assert (NaN (3, "single"), single ([NaN, NaN, NaN; NaN, NaN, NaN; NaN, NaN, NaN]))
+%!assert (NaN (3, "single"),
+%!        single ([NaN, NaN, NaN; NaN, NaN, NaN; NaN, NaN, NaN]))
 %!assert (NaN (2, 3, "single"), single ([NaN, NaN, NaN; NaN, NaN, NaN]))
 %!assert (NaN (3, 2, "single"), single ([NaN, NaN; NaN, NaN; NaN, NaN]))
 %!assert (size (NaN (3, 4, 5, "single")), [3, 4, 5])
 
 %!assert (NaN (2, 2, "like", double (1)), double ([NaN, NaN; NaN, NaN]))
 %!assert (NaN (2, 2, "like", complex (ones(2, 2))), [NaN, NaN; NaN, NaN])
-%!assert (NaN (3, 3, "like", single (1)), single ([NaN, NaN, NaN; NaN, NaN, NaN; NaN, NaN, NaN]))
+%!assert (NaN (3, 3, "like", single (1)),
+%!        single ([NaN, NaN, NaN; NaN, NaN, NaN; NaN, NaN, NaN]))
 %!assert (NaN (2, "like", single (1i)), single ([NaN, NaN; NaN, NaN]))
 %!assert (NaN (2, 2, "like", speye (2)), sparse ([NaN, NaN; NaN, NaN]))
 
@@ -4794,15 +4891,19 @@
 %!error NaN (3, 4, 5, "int8")
 %!error <input .* floating> NaN (3, 3, "like", true)
 %!error <input .* floating> NaN (2, "like", uint8 (1))
+%!error <must be scalar> NaN (1:3, 1)
+%!error <must be scalar> NaN (1, 1:3)
+%!error <must be scalar> NaN (1, 2, 1:3)
+%!error <must be scalar> NaN (1:3, 1, "like", single (1))
 */
 
 DEFUN (e, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} e
-@deftypefnx {} {} e (@var{n})
-@deftypefnx {} {} e (@var{n}, @var{m})
-@deftypefnx {} {} e (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {} e (@dots{}, @var{class})
+@deftypefn  {} {@var{A} =} e
+@deftypefnx {} {@var{A} =} e (@var{n})
+@deftypefnx {} {@var{A} =} e (@var{n}, @var{m})
+@deftypefnx {} {@var{A} =} e (@var{n}, @var{m}, @var{k}, @dots{})
+@deftypefnx {} {@var{A} =} e (@dots{}, @var{class})
 Return a scalar, matrix, or N-dimensional array whose elements are all equal
 to the base of natural logarithms.
 
@@ -4816,15 +4917,15 @@
 
 When called with no arguments, return a scalar with the value @math{e}.
 
-When called with a single argument, return a square matrix with the
-dimension specified.
+When called with a single argument, return a square matrix with the dimension
+specified.
 
 When called with more than one scalar argument the first two arguments are
 taken as the number of rows and columns and any further arguments specify
 additional matrix dimensions.
 
-The optional argument @var{class} specifies the return type and may be
-either @qcode{"double"} or @qcode{"single"}.
+The optional argument @var{class} specifies the return type and may be either
+@qcode{"double"} or @qcode{"single"}.
 @seealso{log, exp, pi, I}
 @end deftypefn */)
 {
@@ -4864,11 +4965,11 @@
 
 DEFUN (eps, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} eps
-@deftypefnx {} {} eps (@var{x})
-@deftypefnx {} {} eps (@var{n}, @var{m})
-@deftypefnx {} {} eps (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {} eps (@dots{}, @var{class})
+@deftypefn  {} {@var{d} =} eps
+@deftypefnx {} {@var{d} =} eps (@var{x})
+@deftypefnx {} {@var{d} =} eps (@var{n}, @var{m})
+@deftypefnx {} {@var{d} =} eps (@var{n}, @var{m}, @var{k}, @dots{})
+@deftypefnx {} {@var{d} =} eps (@dots{}, @var{class})
 Return a scalar, matrix or N-dimensional array whose elements are all eps,
 the machine precision.
 
@@ -4933,7 +5034,7 @@
 %!assert (eps (Inf), NaN)
 %!assert (eps (NaN), NaN)
 %!assert (eps ([1/2 1 2 realmax 0 realmin/2 realmin/16 Inf NaN]),
-%!             [2^(-53) 2^(-52) 2^(-51) 2^971 2^(-1074) 2^(-1074) 2^(-1074) NaN NaN])
+%!        [2^-53 2^-52 2^-51 2^971 2^-1074 2^-1074 2^-1074 NaN NaN])
 %!assert (eps (single (1/2)), single (2^(-24)))
 %!assert (eps (single (1)), single (2^(-23)))
 %!assert (eps (single (2)), single (2^(-22)))
@@ -4944,17 +5045,21 @@
 %!assert (eps (single (Inf)), single (NaN))
 %!assert (eps (single (NaN)), single (NaN))
 %!assert (eps (single ([1/2 1 2 realmax("single") 0 realmin("single")/2 realmin("single")/16 Inf NaN])),
-%!             single ([2^(-24) 2^(-23) 2^(-22) 2^104 2^(-149) 2^(-149) 2^(-149) NaN NaN]))
+%!        single ([2^-24 2^-23 2^-22 2^104 2^-149 2^-149 2^-149 NaN NaN]))
 %!error <X must be of a floating point type> eps (uint8 ([0 1 2]))
+%!error <must be scalar> eps (1:3, 1)
+%!error <must be scalar> eps (1, 1:3)
+%!error <must be scalar> eps (1, 2, 1:3)
+%!error <must be scalar> eps (1:3, 1, "single")
 */
 
 DEFUN (pi, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} pi
-@deftypefnx {} {} pi (@var{n})
-@deftypefnx {} {} pi (@var{n}, @var{m})
-@deftypefnx {} {} pi (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {} pi (@dots{}, @var{class})
+@deftypefn  {} {@var{p} =} pi
+@deftypefnx {} {@var{p} =} pi (@var{n})
+@deftypefnx {} {@var{p} =} pi (@var{n}, @var{m})
+@deftypefnx {} {@var{p} =} pi (@var{n}, @var{m}, @var{k}, @dots{})
+@deftypefnx {} {@var{p} =} pi (@dots{}, @var{class})
 Return a scalar, matrix, or N-dimensional array whose elements are all equal
 to the ratio of the circumference of a circle to its
 @tex
@@ -4964,8 +5069,6 @@
 diameter.
 @end ifnottex
 
-Internally, @code{pi} is computed as @samp{4.0 * atan (1.0)}.
-
 When called with no arguments, return a scalar with the value of
 @tex
 $\pi$.
@@ -4974,15 +5077,15 @@
 pi.
 @end ifnottex
 
-When called with a single argument, return a square matrix with the
-dimension specified.
+When called with a single argument, return a square matrix with the dimension
+specified.
 
 When called with more than one scalar argument the first two arguments are
 taken as the number of rows and columns and any further arguments specify
 additional matrix dimensions.
 
-The optional argument @var{class} specifies the return type and may be
-either @qcode{"double"} or @qcode{"single"}.
+The optional argument @var{class} specifies the return type and may be either
+@qcode{"double"} or @qcode{"single"}.
 @seealso{e, I}
 @end deftypefn */)
 {
@@ -4997,11 +5100,11 @@
 
 DEFUN (realmax, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} realmax
-@deftypefnx {} {} realmax (@var{n})
-@deftypefnx {} {} realmax (@var{n}, @var{m})
-@deftypefnx {} {} realmax (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {} realmax (@dots{}, @var{class})
+@deftypefn  {} {@var{Rmax} =} realmax
+@deftypefnx {} {@var{Rmax} =} realmax (@var{n})
+@deftypefnx {} {@var{Rmax} =} realmax (@var{n}, @var{m})
+@deftypefnx {} {@var{Rmax} =} realmax (@var{n}, @var{m}, @var{k}, @dots{})
+@deftypefnx {} {@var{Rmax} =} realmax (@dots{}, @var{class})
 Return a scalar, matrix, or N-dimensional array whose elements are all equal
 to the largest floating point number that is representable.
 
@@ -5036,16 +5139,16 @@
 
 DEFUN (realmin, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} realmin
-@deftypefnx {} {} realmin (@var{n})
-@deftypefnx {} {} realmin (@var{n}, @var{m})
-@deftypefnx {} {} realmin (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {} realmin (@dots{}, @var{class})
+@deftypefn  {} {@var{Rmin} =} realmin
+@deftypefnx {} {@var{Rmin} =} realmin (@var{n})
+@deftypefnx {} {@var{Rmin} =} realmin (@var{n}, @var{m})
+@deftypefnx {} {@var{Rmin} =} realmin (@var{n}, @var{m}, @var{k}, @dots{})
+@deftypefnx {} {@var{Rmin} =} realmin (@dots{}, @var{class})
 Return a scalar, matrix, or N-dimensional array whose elements are all equal
 to the smallest normalized floating point number that is representable.
 
-The actual value is system dependent.  On machines that support
-IEEE floating point arithmetic, @code{realmin} is approximately
+The actual value is system dependent.  On machines that support IEEE floating
+point arithmetic, @code{realmin} is approximately
 @tex
 $2.2251\times10^{-308}$ for double precision and $1.1755\times10^{-38}$
 @end tex
@@ -5057,15 +5160,15 @@
 When called with no arguments, return a scalar with the value
 @code{realmin (@qcode{"double"})}.
 
-When called with a single argument, return a square matrix with the
-dimension specified.
+When called with a single argument, return a square matrix with the dimension
+specified.
 
 When called with more than one scalar argument the first two arguments are
 taken as the number of rows and columns and any further arguments specify
 additional matrix dimensions.
 
-The optional argument @var{class} specifies the return type and may be
-either @qcode{"double"} or @qcode{"single"}.
+The optional argument @var{class} specifies the return type and may be either
+@qcode{"double"} or @qcode{"single"}.
 @seealso{realmax, intmin, eps}
 @end deftypefn */)
 {
@@ -5080,11 +5183,11 @@
 @findex j
 @findex J
 
-@deftypefn  {} {} I
-@deftypefnx {} {} I (@var{n})
-@deftypefnx {} {} I (@var{n}, @var{m})
-@deftypefnx {} {} I (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {} I (@dots{}, @var{class})
+@deftypefn  {} {@var{A} =} I
+@deftypefnx {} {@var{A} =} I (@var{n})
+@deftypefnx {} {@var{A} =} I (@var{n}, @var{m})
+@deftypefnx {} {@var{A} =} I (@var{n}, @var{m}, @var{k}, @dots{})
+@deftypefnx {} {@var{A} =} I (@dots{}, @var{class})
 Return a scalar, matrix, or N-dimensional array whose elements are all equal
 to the pure imaginary unit, defined as
 @tex
@@ -5124,7 +5227,7 @@
 @deftypefnx {} {@var{val} =} NA (@var{n})
 @deftypefnx {} {@var{val} =} NA (@var{n}, @var{m})
 @deftypefnx {} {@var{val} =} NA (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {@var{val} =} NA (@dots{}, "@var{like}", @var{var}))
+@deftypefnx {} {@var{val} =} NA (@dots{}, "@var{like}", @var{var})
 @deftypefnx {} {@var{val} =} NA (@dots{}, @var{class})
 Return a scalar, matrix, or N-dimensional array whose elements are all equal
 to the special constant used to designate missing values.
@@ -5163,7 +5266,7 @@
 @deftypefn  {} {@var{val} =} false (@var{x})
 @deftypefnx {} {@var{val} =} false (@var{n}, @var{m})
 @deftypefnx {} {@var{val} =} false (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {@var{val} =} false (@dots{}, "@var{like}", @var{var}))
+@deftypefnx {} {@var{val} =} false (@dots{}, "@var{like}", @var{var})
 Return a matrix or N-dimensional array whose elements are all logical 0.
 
 If invoked with a single scalar integer argument, return a square
@@ -5188,6 +5291,9 @@
 
 %!error false (2, 3, "double")
 %!error <input .* logical> false (2, 1, "like", sparse (1))
+%!error <must be scalar> false (1:3, 1)
+%!error <must be scalar> false (1, 1:3)
+%!error <must be scalar> false (1, 2, 1:3)
 */
 
 DEFUN (true, args, ,
@@ -5195,7 +5301,7 @@
 @deftypefn  {} {@var{val} =} true (@var{x})
 @deftypefnx {} {@var{val} =} true (@var{n}, @var{m})
 @deftypefnx {} {@var{val} =} true (@var{n}, @var{m}, @var{k}, @dots{})
-@deftypefnx {} {@var{val} =} true (@dots{}, "@var{like}", @var{var}))
+@deftypefnx {} {@var{val} =} true (@dots{}, "@var{like}", @var{var})
 Return a matrix or N-dimensional array whose elements are all logical 1.
 
 If invoked with a single scalar integer argument, return a square
@@ -5220,6 +5326,9 @@
 
 %!error true (2, 3, "double")
 %!error <input .* logical> true (2, 1, "like", double (1))
+%!error <must be scalar> true (1:3, 1)
+%!error <must be scalar> true (1, 1:3)
+%!error <must be scalar> true (1, 2, 1:3)
 */
 
 template <typename MT>
@@ -5335,10 +5444,10 @@
 
 DEFUN (eye, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} eye (@var{n})
-@deftypefnx {} {} eye (@var{m}, @var{n})
-@deftypefnx {} {} eye ([@var{m} @var{n}])
-@deftypefnx {} {} eye (@dots{}, @var{class})
+@deftypefn  {} {@var{I} =} eye (@var{n})
+@deftypefnx {} {@var{I} =} eye (@var{m}, @var{n})
+@deftypefnx {} {@var{I} =} eye ([@var{m} @var{n}])
+@deftypefnx {} {@var{I} =} eye (@dots{}, @var{class})
 Return an identity matrix.
 
 If invoked with a single scalar argument @var{n}, return a square
@@ -5485,8 +5594,8 @@
 
 DEFUN (linspace, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} linspace (@var{start}, @var{end})
-@deftypefnx {} {} linspace (@var{start}, @var{end}, @var{n})
+@deftypefn  {} {@var{y} =} linspace (@var{start}, @var{end})
+@deftypefnx {} {@var{y} =} linspace (@var{start}, @var{end}, @var{n})
 Return a row vector with @var{n} linearly spaced elements between @var{start}
 and @var{end}.
 
@@ -5662,19 +5771,19 @@
 
 DEFUN (resize, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} resize (@var{x}, @var{m})
-@deftypefnx {} {} resize (@var{x}, @var{m}, @var{n}, @dots{})
-@deftypefnx {} {} resize (@var{x}, [@var{m} @var{n} @dots{}])
-Resize @var{x} cutting off elements as necessary.
+@deftypefn  {} {@var{B} =} resize (@var{A}, @var{m})
+@deftypefnx {} {@var{B} =} resize (@var{A}, @var{m}, @var{n}, @dots{})
+@deftypefnx {} {@var{B} =} resize (@var{A}, [@var{m} @var{n} @dots{}])
+Resize @var{A} cutting off elements as necessary.
 
 In the result, element with certain indices is equal to the corresponding
-element of @var{x} if the indices are within the bounds of @var{x};
-otherwise, the element is set to zero.
+element of @var{A} if the indices are within the bounds of @var{A}; otherwise,
+the element is set to zero.
 
 In other words, the statement
 
 @example
-y = resize (x, dv)
+B = resize (A, dv)
 @end example
 
 @noindent
@@ -5682,28 +5791,27 @@
 
 @example
 @group
-y = zeros (dv, class (x));
-sz = min (dv, size (x));
+B = zeros (dv, class (A));
+sz = min (dv, size (A));
 for i = 1:length (sz)
   idx@{i@} = 1:sz(i);
 endfor
-y(idx@{:@}) = x(idx@{:@});
+B(idx@{:@}) = A(idx@{:@});
 @end group
 @end example
 
 @noindent
 but is performed more efficiently.
 
-If only @var{m} is supplied, and it is a scalar, the dimension of the
-result is @var{m}-by-@var{m}.
-If @var{m}, @var{n}, @dots{} are all scalars, then the dimensions of
-the result are @var{m}-by-@var{n}-by-@dots{}.
-If given a vector as input, then the
-dimensions of the result are given by the elements of that vector.
-
-An object can be resized to more dimensions than it has;
-in such case the missing dimensions are assumed to be 1.
-Resizing an object to fewer dimensions is not possible.
+If only @var{m} is supplied, and it is a scalar, the dimension of the result is
+@var{m}-by-@var{m}.  If @var{m}, @var{n}, @dots{} are all scalars, then the
+dimensions of the result are @var{m}-by-@var{n}-by-@dots{}.  If given a vector
+as input, then the dimensions of the result are given by the elements of that
+vector.
+
+An object can be resized to more dimensions than it has; in such case the
+missing dimensions are assumed to be 1.  Resizing an object to fewer dimensions
+is not possible.
 @seealso{reshape, postpad, prepad, cat}
 @end deftypefn */)
 {
@@ -5752,10 +5860,10 @@
 
 DEFUN (reshape, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} reshape (@var{A}, @var{m}, @var{n}, @dots{})
-@deftypefnx {} {} reshape (@var{A}, [@var{m} @var{n} @dots{}])
-@deftypefnx {} {} reshape (@var{A}, @dots{}, [], @dots{})
-@deftypefnx {} {} reshape (@var{A}, @var{size})
+@deftypefn  {} {@var{B} =} reshape (@var{A}, @var{m}, @var{n}, @dots{})
+@deftypefnx {} {@var{B} =} reshape (@var{A}, [@var{m} @var{n} @dots{}])
+@deftypefnx {} {@var{B} =} reshape (@var{A}, @dots{}, [], @dots{})
+@deftypefnx {} {@var{B} =} reshape (@var{A}, @var{size})
 Return a matrix with the specified dimensions (@var{m}, @var{n}, @dots{})
 whose elements are taken from the matrix @var{A}.
 
@@ -5950,8 +6058,8 @@
 
 DEFUN (squeeze, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} squeeze (@var{x})
-Remove singleton dimensions from @var{x} and return the result.
+@deftypefn {} {@var{B} =} squeeze (@var{A})
+Remove singleton dimensions from @var{A} and return the result.
 
 Note that for compatibility with @sc{matlab}, all objects have
 a minimum of two dimensions and row vectors are left unchanged.
@@ -5968,7 +6076,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn {} {@var{FM} =} full (@var{SM})
 Return a full storage matrix from a sparse, diagonal, or permutation matrix,
-or a range.
+or from a range.
 @seealso{sparse, issparse}
 @end deftypefn */)
 {
@@ -5982,9 +6090,9 @@
 
 DEFUN (norm, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} norm (@var{A})
-@deftypefnx {} {} norm (@var{A}, @var{p})
-@deftypefnx {} {} norm (@var{A}, @var{p}, @var{opt})
+@deftypefn  {} {@var{n} =} norm (@var{A})
+@deftypefnx {} {@var{n} =} norm (@var{A}, @var{p})
+@deftypefnx {} {@var{n} =} norm (@var{A}, @var{p}, @var{opt})
 Compute the p-norm of the matrix @var{A}.
 
 If the second argument is not given, @w{@code{p = 2}} is used.
@@ -6244,8 +6352,8 @@
 
 DEFUN (uplus, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} uplus (@var{x})
-This function and @w{@tcode{+ @var{x}}} are equivalent.
+@deftypefn {} {@var{B} =} uplus (@var{A})
+This function and @w{@tcode{+ @var{A}}} are equivalent.
 @seealso{uminus, plus}
 @end deftypefn */)
 {
@@ -6254,8 +6362,8 @@
 
 DEFUN (uminus, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} uminus (@var{x})
-This function and @w{@tcode{- @var{x}}} are equivalent.
+@deftypefn {} {@var{B} =} uminus (@var{A})
+This function and @w{@tcode{- @var{A}}} are equivalent.
 @seealso{uplus, minus}
 @end deftypefn */)
 {
@@ -6264,10 +6372,10 @@
 
 DEFUN (transpose, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} transpose (@var{x})
-Return the transpose of @var{x}.
-
-This function and @tcode{@var{x}.'@:} are equivalent.
+@deftypefn {} {@var{B} =} transpose (@var{A})
+Return the transpose of @var{A}.
+
+This function and @tcode{@var{A}.'@:} are equivalent.
 @seealso{ctranspose}
 @end deftypefn */)
 {
@@ -6296,10 +6404,10 @@
 
 DEFUN (ctranspose, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ctranspose (@var{x})
-Return the complex conjugate transpose of @var{x}.
-
-This function and @tcode{@var{x}'} are equivalent.
+@deftypefn {} {@var{B} =} ctranspose (@var{A})
+Return the complex conjugate transpose of @var{A}.
+
+This function and @tcode{@var{A}'} are equivalent.
 @seealso{transpose}
 @end deftypefn */)
 {
@@ -6363,15 +6471,15 @@
 
 DEFUN (plus, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} plus (@var{x}, @var{y})
-@deftypefnx {} {} plus (@var{x1}, @var{x2}, @dots{})
-This function and @w{@tcode{@var{x} + @var{y}}} are equivalent.
+@deftypefn  {} {@var{C} =} plus (@var{A}, @var{B})
+@deftypefnx {} {@var{C} =} plus (@var{A1}, @var{A2}, @dots{})
+This function and @w{@tcode{@var{A} + @var{B}}} are equivalent.
 
 If more arguments are given, the summation is applied
 cumulatively from left to right:
 
 @example
-(@dots{}((@var{x1} + @var{x2}) + @var{x3}) + @dots{})
+(@dots{}((@var{A1} + @var{A2}) + @var{A3}) + @dots{})
 @end example
 
 @seealso{minus, uplus}
@@ -6394,8 +6502,8 @@
 
 DEFUN (minus, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} minus (@var{x}, @var{y})
-This function and @w{@tcode{@var{x} - @var{y}}} are equivalent.
+@deftypefn {} {@var{C} =} minus (@var{A}, @var{B})
+This function and @w{@tcode{@var{A} - @var{B}}} are equivalent.
 @seealso{plus, uminus}
 @end deftypefn */)
 {
@@ -6404,16 +6512,16 @@
 
 DEFUN (mtimes, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} mtimes (@var{x}, @var{y})
-@deftypefnx {} {} mtimes (@var{x1}, @var{x2}, @dots{})
+@deftypefn  {} {@var{C} =} mtimes (@var{A}, @var{B})
+@deftypefnx {} {@var{C} =} mtimes (@var{A1}, @var{A2}, @dots{})
 Return the matrix multiplication product of inputs.
 
-This function and @w{@tcode{@var{x} * @var{y}}} are equivalent.
+This function and @w{@tcode{@var{A} * @var{B}}} are equivalent.
 If more arguments are given, the multiplication is applied
 cumulatively from left to right:
 
 @example
-(@dots{}((@var{x1} * @var{x2}) * @var{x3}) * @dots{})
+(@dots{}((@var{A1} * @var{A2}) * @var{A3}) * @dots{})
 @end example
 
 @seealso{times, plus, minus, rdivide, mrdivide, mldivide, mpower}
@@ -6425,10 +6533,10 @@
 
 DEFUN (mrdivide, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} mrdivide (@var{x}, @var{y})
-Return the matrix right division of @var{x} and @var{y}.
-
-This function and @w{@tcode{@var{x} / @var{y}}} are equivalent.
+@deftypefn {} {@var{C} =} mrdivide (@var{A}, @var{B})
+Return the matrix right division of @var{A} and @var{B}.
+
+This function and @w{@tcode{@var{A} / @var{B}}} are equivalent.
 
 If the system is not square, or if the coefficient matrix is singular, a
 minimum norm solution is computed.
@@ -6440,10 +6548,10 @@
 
 DEFUN (mpower, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} mpower (@var{x}, @var{y})
-Return the matrix power operation of @var{x} raised to the @var{y} power.
-
-This function and @w{@tcode{@var{x} ^ @var{y}}} are equivalent.
+@deftypefn {} {@var{C} =} mpower (@var{A}, @var{B})
+Return the matrix power operation of @var{A} raised to the @var{B} power.
+
+This function and @w{@tcode{@var{A} ^ @var{B}}} are equivalent.
 @seealso{power, mtimes, plus, minus}
 @end deftypefn */)
 {
@@ -6452,10 +6560,10 @@
 
 DEFUN (mldivide, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} mldivide (@var{x}, @var{y})
-Return the matrix left division of @var{x} and @var{y}.
-
-This function and @w{@tcode{@var{x} @backslashchar{} @var{y}}} are equivalent.
+@deftypefn {} {@var{C} =} mldivide (@var{A}, @var{B})
+Return the matrix left division of @var{A} and @var{B}.
+
+This function and @w{@tcode{@var{A} @backslashchar{} @var{B}}} are equivalent.
 
 If the system is not square, or if the coefficient matrix is singular, a
 minimum norm solution is computed.
@@ -6467,8 +6575,8 @@
 
 DEFUN (lt, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} lt (@var{x}, @var{y})
-This function is equivalent to @w{@code{@var{x} < @var{y}}}.
+@deftypefn {} {@var{TF} =} lt (@var{A}, @var{B})
+This function is equivalent to @w{@code{@var{A} < @var{B}}}.
 @seealso{le, eq, ge, gt, ne}
 @end deftypefn */)
 {
@@ -6477,8 +6585,8 @@
 
 DEFUN (le, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} le (@var{x}, @var{y})
-This function is equivalent to @w{@code{@var{x} <= @var{y}}}.
+@deftypefn {} {@var{TF} =} le (@var{A}, @var{B})
+This function is equivalent to @w{@code{@var{A} <= @var{B}}}.
 @seealso{eq, ge, gt, ne, lt}
 @end deftypefn */)
 {
@@ -6487,10 +6595,10 @@
 
 DEFUN (eq, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} eq (@var{x}, @var{y})
+@deftypefn {} {@var{TF} =} eq (@var{A}, @var{B})
 Return true if the two inputs are equal.
 
-This function is equivalent to @w{@code{@var{x} == @var{y}}}.
+This function is equivalent to @w{@code{@var{A} == @var{B}}}.
 @seealso{ne, isequal, le, ge, gt, ne, lt}
 @end deftypefn */)
 {
@@ -6499,8 +6607,8 @@
 
 DEFUN (ge, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ge (@var{x}, @var{y})
-This function is equivalent to @w{@code{@var{x} >= @var{y}}}.
+@deftypefn {} {@var{TF} =} ge (@var{A}, @var{B})
+This function is equivalent to @w{@code{@var{A} >= @var{B}}}.
 @seealso{le, eq, gt, ne, lt}
 @end deftypefn */)
 {
@@ -6509,8 +6617,8 @@
 
 DEFUN (gt, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} gt (@var{x}, @var{y})
-This function is equivalent to @w{@code{@var{x} > @var{y}}}.
+@deftypefn {} {@var{TF} =} gt (@var{A}, @var{B})
+This function is equivalent to @w{@code{@var{A} > @var{B}}}.
 @seealso{le, eq, ge, ne, lt}
 @end deftypefn */)
 {
@@ -6519,10 +6627,10 @@
 
 DEFUN (ne, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ne (@var{x}, @var{y})
+@deftypefn {} {@var{TF} =} ne (@var{A}, @var{B})
 Return true if the two inputs are not equal.
 
-This function is equivalent to @w{@code{@var{x} != @var{y}}}.
+This function is equivalent to @w{@code{@var{A} != @var{B}}}.
 @seealso{eq, isequal, le, ge, lt}
 @end deftypefn */)
 {
@@ -6531,16 +6639,16 @@
 
 DEFUN (times, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} times (@var{x}, @var{y})
-@deftypefnx {} {} times (@var{x1}, @var{x2}, @dots{})
+@deftypefn  {} {@var{C} =} times (@var{A}, @var{B})
+@deftypefnx {} {@var{C} =} times (@var{A1}, @var{A2}, @dots{})
 Return the element-by-element multiplication product of inputs.
 
-This function and @w{@tcode{@var{x} .* @var{y}}} are equivalent.
+This function and @w{@tcode{@var{A} .* @var{B}}} are equivalent.
 If more arguments are given, the multiplication is applied
 cumulatively from left to right:
 
 @example
-(@dots{}((@var{x1} .* @var{x2}) .* @var{x3}) .* @dots{})
+(@dots{}((@var{A1} .* @var{A2}) .* @var{A3}) .* @dots{})
 @end example
 
 @seealso{mtimes, rdivide}
@@ -6552,10 +6660,10 @@
 
 DEFUN (rdivide, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} rdivide (@var{x}, @var{y})
-Return the element-by-element right division of @var{x} and @var{y}.
-
-This function and @w{@tcode{@var{x} ./ @var{y}}} are equivalent.
+@deftypefn {} {@var{C} =} rdivide (@var{A}, @var{B})
+Return the element-by-element right division of @var{A} and @var{B}.
+
+This function and @w{@tcode{@var{A} ./ @var{B}}} are equivalent.
 @seealso{ldivide, mrdivide, times, plus}
 @end deftypefn */)
 {
@@ -6564,11 +6672,11 @@
 
 DEFUN (power, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} power (@var{x}, @var{y})
-Return the element-by-element operation of @var{x} raised to the
-@var{y} power.
-
-This function and @w{@tcode{@var{x} .^ @var{y}}} are equivalent.
+@deftypefn {} {@var{C} =} power (@var{A}, @var{B})
+Return the element-by-element operation of @var{A} raised to the
+@var{B} power.
+
+This function and @w{@tcode{@var{A} .^ @var{B}}} are equivalent.
 
 If several complex results are possible, returns the one with smallest
 non-negative argument (angle).  Use @code{realpow}, @code{realsqrt},
@@ -6582,10 +6690,10 @@
 
 DEFUN (ldivide, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ldivide (@var{x}, @var{y})
-Return the element-by-element left division of @var{x} and @var{y}.
-
-This function and @w{@tcode{@var{x} .@backslashchar{} @var{y}}} are
+@deftypefn {} {@var{C} =} ldivide (@var{A}, @var{B})
+Return the element-by-element left division of @var{A} and @var{B}.
+
+This function and @w{@tcode{@var{A} .@backslashchar{} @var{B}}} are
 equivalent.
 @seealso{rdivide, mldivide, times, plus}
 @end deftypefn */)
@@ -6595,8 +6703,8 @@
 
 DEFUN (and, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {@var{z} =} and (@var{x}, @var{y})
-@deftypefnx {} {@var{z} =} and (@var{x1}, @var{x2}, @dots{})
+@deftypefn  {} {@var{TF} =} and (@var{x}, @var{y})
+@deftypefnx {} {@var{TF} =} and (@var{x1}, @var{x2}, @dots{})
 Return the logical AND of @var{x} and @var{y}.
 
 This function is equivalent to the operator syntax
@@ -6616,8 +6724,8 @@
 
 DEFUN (or, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {@var{z} =} or (@var{x}, @var{y})
-@deftypefnx {} {@var{z} =} or (@var{x1}, @var{x2}, @dots{})
+@deftypefn  {} {@var{TF} =} or (@var{x}, @var{y})
+@deftypefnx {} {@var{TF} =} or (@var{x1}, @var{x2}, @dots{})
 Return the logical OR of @var{x} and @var{y}.
 
 This function is equivalent to the operator syntax
@@ -7007,16 +7115,26 @@
 
 ## Single
 %!assert (sort (single ([NaN, 1, -1, 2, Inf])), single ([-1, 1, 2, Inf, NaN]))
-%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 1), single ([NaN, 1, -1, 2, Inf]))
-%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 2), single ([-1, 1, 2, Inf, NaN]))
-%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 3), single ([NaN, 1, -1, 2, Inf]))
-%!assert (sort (single ([NaN, 1, -1, 2, Inf]), "ascend"), single ([-1, 1, 2, Inf, NaN]))
-%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 2, "ascend"), single ([-1, 1, 2, Inf, NaN]))
-%!assert (sort (single ([NaN, 1, -1, 2, Inf]), "descend"), single ([NaN, Inf, 2, 1, -1]))
-%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 2, "descend"), single ([NaN, Inf, 2, 1, -1]))
-%!assert (sort (single ([3, 1, 7, 5; 8, 2, 6, 4])), single ([3, 1, 6, 4; 8, 2, 7, 5]))
-%!assert (sort (single ([3, 1, 7, 5; 8, 2, 6, 4]), 1), single ([3, 1, 6, 4; 8, 2, 7, 5]))
-%!assert (sort (single ([3, 1, 7, 5; 8, 2, 6, 4]), 2), single ([1, 3, 5, 7; 2, 4, 6, 8]))
+%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 1),
+%!        single ([NaN, 1, -1, 2, Inf]))
+%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 2),
+%!        single ([-1, 1, 2, Inf, NaN]))
+%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 3),
+%!        single ([NaN, 1, -1, 2, Inf]))
+%!assert (sort (single ([NaN, 1, -1, 2, Inf]), "ascend"),
+%!        single ([-1, 1, 2, Inf, NaN]))
+%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 2, "ascend"),
+%!        single ([-1, 1, 2, Inf, NaN]))
+%!assert (sort (single ([NaN, 1, -1, 2, Inf]), "descend"),
+%!        single ([NaN, Inf, 2, 1, -1]))
+%!assert (sort (single ([NaN, 1, -1, 2, Inf]), 2, "descend"),
+%!        single ([NaN, Inf, 2, 1, -1]))
+%!assert (sort (single ([3, 1, 7, 5; 8, 2, 6, 4])),
+%!        single ([3, 1, 6, 4; 8, 2, 7, 5]))
+%!assert (sort (single ([3, 1, 7, 5; 8, 2, 6, 4]), 1),
+%!        single ([3, 1, 6, 4; 8, 2, 7, 5]))
+%!assert (sort (single ([3, 1, 7, 5; 8, 2, 6, 4]), 2),
+%!        single ([1, 3, 5, 7; 2, 4, 6, 8]))
 %!assert (sort (single (1)), single (1))
 
 %!test
@@ -7026,16 +7144,26 @@
 
 ## Single Complex
 %!assert (sort (single ([NaN, 1i, -1, 2, Inf])), single ([1i, -1, 2, Inf, NaN]))
-%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 1), single ([NaN, 1i, -1, 2, Inf]))
-%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 2), single ([1i, -1, 2, Inf, NaN]))
-%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 3), single ([NaN, 1i, -1, 2, Inf]))
-%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), "ascend"), single ([1i, -1, 2, Inf, NaN]))
-%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 2, "ascend"), single ([1i, -1, 2, Inf, NaN]))
-%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), "descend"), single ([NaN, Inf, 2, -1, 1i]))
-%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 2, "descend"), single ([NaN, Inf, 2, -1, 1i]))
-%!assert (sort (single ([3, 1i, 7, 5; 8, 2, 6, 4])), single ([3, 1i, 6, 4; 8, 2, 7, 5]))
-%!assert (sort (single ([3, 1i, 7, 5; 8, 2, 6, 4]), 1), single ([3, 1i, 6, 4; 8, 2, 7, 5]))
-%!assert (sort (single ([3, 1i, 7, 5; 8, 2, 6, 4]), 2), single ([1i, 3, 5, 7; 2, 4, 6, 8]))
+%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 1),
+%!        single ([NaN, 1i, -1, 2, Inf]))
+%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 2),
+%!        single ([1i, -1, 2, Inf, NaN]))
+%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 3),
+%!        single ([NaN, 1i, -1, 2, Inf]))
+%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), "ascend"),
+%!        single ([1i, -1, 2, Inf, NaN]))
+%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 2, "ascend"),
+%!        single ([1i, -1, 2, Inf, NaN]))
+%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), "descend"),
+%!        single ([NaN, Inf, 2, -1, 1i]))
+%!assert (sort (single ([NaN, 1i, -1, 2, Inf]), 2, "descend"),
+%!        single ([NaN, Inf, 2, -1, 1i]))
+%!assert (sort (single ([3, 1i, 7, 5; 8, 2, 6, 4])),
+%!        single ([3, 1i, 6, 4; 8, 2, 7, 5]))
+%!assert (sort (single ([3, 1i, 7, 5; 8, 2, 6, 4]), 1),
+%!        single ([3, 1i, 6, 4; 8, 2, 7, 5]))
+%!assert (sort (single ([3, 1i, 7, 5; 8, 2, 6, 4]), 2),
+%!        single ([1i, 3, 5, 7; 2, 4, 6, 8]))
 %!assert (sort (single (1i)), single (1i))
 
 %!test
@@ -7048,10 +7176,14 @@
 %!assert (sort ([true, false, true, false], 1), [true, false, true, false])
 %!assert (sort ([true, false, true, false], 2), [false, false, true, true])
 %!assert (sort ([true, false, true, false], 3), [true, false, true, false])
-%!assert (sort ([true, false, true, false], "ascend"), [false, false, true, true])
-%!assert (sort ([true, false, true, false], 2, "ascend"), [false, false, true, true])
-%!assert (sort ([true, false, true, false], "descend"), [true, true, false, false])
-%!assert (sort ([true, false, true, false], 2, "descend"), [true, true, false, false])
+%!assert (sort ([true, false, true, false], "ascend"),
+%!        [false, false, true, true])
+%!assert (sort ([true, false, true, false], 2, "ascend"),
+%!        [false, false, true, true])
+%!assert (sort ([true, false, true, false], "descend"),
+%!        [true, true, false, false])
+%!assert (sort ([true, false, true, false], 2, "descend"),
+%!        [true, true, false, false])
 %!assert (sort (true), true)
 
 %!test
@@ -7060,14 +7192,22 @@
 %! assert (i, [2, 4, 1, 3]);
 
 ## Sparse Double
-%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf])), sparse ([-1, 0, 0, 1, 2, Inf, NaN]))
-%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 1), sparse ([0, NaN, 1, 0, -1, 2, Inf]))
-%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 2), sparse ([-1, 0, 0, 1, 2, Inf, NaN]))
-%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 3), sparse ([0, NaN, 1, 0, -1, 2, Inf]))
-%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), "ascend"), sparse ([-1, 0, 0, 1, 2, Inf, NaN]))
-%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 2, "ascend"), sparse ([-1, 0, 0, 1, 2, Inf, NaN]))
-%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), "descend"), sparse ([NaN, Inf, 2, 1, 0, 0, -1]))
-%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 2, "descend"), sparse ([NaN, Inf, 2, 1, 0, 0, -1]))
+%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf])),
+%!        sparse ([-1, 0, 0, 1, 2, Inf, NaN]))
+%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 1),
+%!        sparse ([0, NaN, 1, 0, -1, 2, Inf]))
+%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 2),
+%!        sparse ([-1, 0, 0, 1, 2, Inf, NaN]))
+%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 3),
+%!        sparse ([0, NaN, 1, 0, -1, 2, Inf]))
+%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), "ascend"),
+%!        sparse ([-1, 0, 0, 1, 2, Inf, NaN]))
+%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 2, "ascend"),
+%!        sparse ([-1, 0, 0, 1, 2, Inf, NaN]))
+%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), "descend"),
+%!        sparse ([NaN, Inf, 2, 1, 0, 0, -1]))
+%!assert (sort (sparse ([0, NaN, 1, 0, -1, 2, Inf]), 2, "descend"),
+%!        sparse ([NaN, Inf, 2, 1, 0, 0, -1]))
 
 %!shared a
 %! a = randn (10, 10);
@@ -7082,14 +7222,22 @@
 %! assert (is, i);
 
 ## Sparse Complex
-%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf])), sparse ([0, 0, 1i, -1, 2, Inf, NaN]))
-%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 1), sparse ([0, NaN, 1i, 0, -1, 2, Inf]))
-%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 2), sparse ([0, 0, 1i, -1, 2, Inf, NaN]))
-%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 3), sparse ([0, NaN, 1i, 0, -1, 2, Inf]))
-%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), "ascend"), sparse ([0, 0, 1i, -1, 2, Inf, NaN]))
-%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 2, "ascend"), sparse ([0, 0, 1i, -1, 2, Inf, NaN]))
-%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), "descend"), sparse ([NaN, Inf, 2, -1, 1i, 0, 0]))
-%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 2, "descend"), sparse ([NaN, Inf, 2, -1, 1i, 0, 0]))
+%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf])),
+%!        sparse ([0, 0, 1i, -1, 2, Inf, NaN]))
+%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 1),
+%!        sparse ([0, NaN, 1i, 0, -1, 2, Inf]))
+%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 2),
+%!        sparse ([0, 0, 1i, -1, 2, Inf, NaN]))
+%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 3),
+%!        sparse ([0, NaN, 1i, 0, -1, 2, Inf]))
+%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), "ascend"),
+%!        sparse ([0, 0, 1i, -1, 2, Inf, NaN]))
+%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 2, "ascend"),
+%!        sparse ([0, 0, 1i, -1, 2, Inf, NaN]))
+%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), "descend"),
+%!        sparse ([NaN, Inf, 2, -1, 1i, 0, 0]))
+%!assert (sort (sparse ([0, NaN, 1i, 0, -1, 2, Inf]), 2, "descend"),
+%!        sparse ([NaN, Inf, 2, -1, 1i, 0, 0]))
 
 %!shared a
 %! a = randn (10, 10);
@@ -7105,14 +7253,22 @@
 %! assert (is, i);
 
 ## Sparse Bool
-%!assert (sort (sparse ([true, false, true, false])), sparse ([false, false, true, true]))
-%!assert (sort (sparse ([true, false, true, false]), 1), sparse ([true, false, true, false]))
-%!assert (sort (sparse ([true, false, true, false]), 2), sparse ([false, false, true, true]))
-%!assert (sort (sparse ([true, false, true, false]), 3), sparse ([true, false, true, false]))
-%!assert (sort (sparse ([true, false, true, false]), "ascend"), sparse ([false, false, true, true]))
-%!assert (sort (sparse ([true, false, true, false]), 2, "ascend"), sparse ([false, false, true, true]))
-%!assert (sort (sparse ([true, false, true, false]), "descend"), sparse ([true, true, false, false]))
-%!assert (sort (sparse ([true, false, true, false]), 2, "descend"), sparse ([true, true, false, false]))
+%!assert (sort (sparse ([true, false, true, false])),
+%!        sparse ([false, false, true, true]))
+%!assert (sort (sparse ([true, false, true, false]), 1),
+%!        sparse ([true, false, true, false]))
+%!assert (sort (sparse ([true, false, true, false]), 2),
+%!        sparse ([false, false, true, true]))
+%!assert (sort (sparse ([true, false, true, false]), 3),
+%!        sparse ([true, false, true, false]))
+%!assert (sort (sparse ([true, false, true, false]), "ascend"),
+%!        sparse ([false, false, true, true]))
+%!assert (sort (sparse ([true, false, true, false]), 2, "ascend"),
+%!        sparse ([false, false, true, true]))
+%!assert (sort (sparse ([true, false, true, false]), "descend"),
+%!        sparse ([true, true, false, false]))
+%!assert (sort (sparse ([true, false, true, false]), 2, "descend"),
+%!        sparse ([true, true, false, false]))
 
 %!test
 %! [v, i] = sort (sparse ([true, false, true, false]));
@@ -7145,13 +7301,12 @@
 // specified by @var{mode}, which can either be 'ascend' or 'descend'
 // and return the index vector corresponding to the sort order.
 //
-// This function does not yet support sparse matrices.
-
-// FIXME: Is this function used anymore?  12/14/2015
+// FIXME: This function does not yet support sparse matrices.
+
 DEFUN (__sort_rows_idx__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __sort_rows_idx__ (@var{a}, @var{mode})
-Undocumented internal function.
+@deftypefn {} {@var{idx} =} __sort_rows_idx__ (@var{A}, @var{mode})
+Called internally from @file{sortrows.m}.
 @end deftypefn */)
 {
   int nargin = args.length ();
@@ -7212,17 +7367,17 @@
 
 DEFUN (issorted, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} issorted (@var{a})
-@deftypefnx {} {} issorted (@var{a}, @var{mode})
-@deftypefnx {} {} issorted (@var{a}, "rows", @var{mode})
-Return true if the array is sorted according to @var{mode}, which may be either
-@qcode{"ascend"}, @qcode{"descend"}, or @qcode{"either"}.
+@deftypefn  {} {@var{tf} =} issorted (@var{A})
+@deftypefnx {} {@var{tf} =} issorted (@var{A}, @var{mode})
+@deftypefnx {} {@var{tf} =} issorted (@var{A}, "rows", @var{mode})
+Return true if the vector @var{A} is sorted according to @var{mode}, which
+may be either @qcode{"ascend"}, @qcode{"descend"}, or @qcode{"either"}.
 
 By default, @var{mode} is @qcode{"ascend"}.  NaNs are treated in the same
 manner as @code{sort}.
 
-If the optional argument @qcode{"rows"} is supplied, check whether the array is
-sorted by rows as output by the function @code{sortrows} (with no options).
+If the optional argument @qcode{"rows"} is supplied, check whether the matrix
+is sorted by rows as output by the function @code{sortrows} (with no options).
 
 This function does not support sparse matrices.
 @seealso{sort, sortrows}
@@ -7341,8 +7496,8 @@
 
 DEFUN (nth_element, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} nth_element (@var{x}, @var{n})
-@deftypefnx {} {} nth_element (@var{x}, @var{n}, @var{dim})
+@deftypefn  {} {@var{nel} =} nth_element (@var{x}, @var{n})
+@deftypefnx {} {@var{nel} =} nth_element (@var{x}, @var{n}, @var{dim})
 Select the n-th smallest element of a vector, using the ordering defined by
 @code{sort}.
 
@@ -7562,7 +7717,7 @@
 }
 
 static octave_value_list
-do_accumarray_minmax_fun (const octave_value_list& args,
+do_accumarray_minmax_fcn (const octave_value_list& args,
                           bool ismin)
 {
   int nargin = args.length ();
@@ -7637,7 +7792,7 @@
     }
   catch (const index_exception& ie)
     {
-      error ("do_accumarray_minmax_fun: invalid index %s", ie.what ());
+      error ("do_accumarray_minmax_fcn: invalid index %s", ie.what ());
     }
 
   return retval;
@@ -7649,7 +7804,7 @@
 Undocumented internal function.
 @end deftypefn */)
 {
-  return do_accumarray_minmax_fun (args, true);
+  return do_accumarray_minmax_fcn (args, true);
 }
 
 DEFUN (__accumarray_max__, args, ,
@@ -7658,7 +7813,7 @@
 Undocumented internal function.
 @end deftypefn */)
 {
-  return do_accumarray_minmax_fun (args, false);
+  return do_accumarray_minmax_fcn (args, false);
 }
 
 template <typename NDT>
@@ -7816,8 +7971,8 @@
 
 DEFUN (merge, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} merge (@var{mask}, @var{tval}, @var{fval})
-@deftypefnx {} {} ifelse (@var{mask}, @var{tval}, @var{fval})
+@deftypefn  {} {@var{M} =} merge (@var{mask}, @var{tval}, @var{fval})
+@deftypefnx {} {@var{M} =} ifelse (@var{mask}, @var{tval}, @var{fval})
 Merge elements of @var{true_val} and @var{false_val}, depending on the
 value of @var{mask}.
 
@@ -7935,7 +8090,7 @@
           idx_vector col1 (':'), col2 (':'), sl1 (1, k), sl2 (0, k-1);
           retval = SparseT (retval.index (col1, sl1))
                    - SparseT (retval.index (col2, sl2));
-          assert (retval.columns () == k-1);
+          error_unless (retval.columns () == k-1);
           order--;
           k--;
         }
@@ -7948,7 +8103,7 @@
           idx_vector col1 (':'), col2 (':'), sl1 (1, k), sl2 (0, k-1);
           retval = SparseT (retval.index (sl1, col1))
                    - SparseT (retval.index (sl2, col2));
-          assert (retval.rows () == k-1);
+          error_unless (retval.rows () == k-1);
           order--;
           k--;
         }
@@ -8047,9 +8202,9 @@
 
 DEFUN (diff, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} diff (@var{x})
-@deftypefnx {} {} diff (@var{x}, @var{k})
-@deftypefnx {} {} diff (@var{x}, @var{k}, @var{dim})
+@deftypefn  {} {@var{y} =} diff (@var{x})
+@deftypefnx {} {@var{y} =} diff (@var{x}, @var{k})
+@deftypefnx {} {@var{y} =} diff (@var{x}, @var{k}, @var{dim})
 If @var{x} is a vector of length @math{n}, @w{@code{diff (@var{x})}} is the
 vector of first differences
 @tex
@@ -8128,7 +8283,8 @@
 {
   Array<T> retval;
 
-  assert (rep.ndims () == 2 && rep.rows () == 2);
+  if (rep.ndims () != 2 || rep.rows () != 2)
+    error ("repelems: R must be a 2-row, N-column matrix of integers");
 
   octave_idx_type n = rep.columns ();
   octave_idx_type l = 0;
@@ -8156,7 +8312,7 @@
 
 DEFUN (repelems, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} repelems (@var{x}, @var{r})
+@deftypefn {} {@var{y} =} repelems (@var{x}, @var{r})
 Construct a vector of repeated elements from @var{x}.
 
 @var{r} is a 2x@var{N} integer matrix specifying which elements to repeat
--- a/libinterp/corefcn/debug.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/debug.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -78,13 +78,13 @@
 
 DEFMETHOD (dbstop, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} dbstop @var{func}
-@deftypefnx {} {} dbstop @var{func} @var{line}
-@deftypefnx {} {} dbstop @var{func} @var{line1} @var{line2} @dots{}
+@deftypefn  {} {} dbstop @var{fcn}
+@deftypefnx {} {} dbstop @var{fcn} @var{line}
+@deftypefnx {} {} dbstop @var{fcn} @var{line1} @var{line2} @dots{}
 @deftypefnx {} {} dbstop @var{line1} @dots{}
-@deftypefnx {} {} dbstop in @var{func}
-@deftypefnx {} {} dbstop in @var{func} at @var{line}
-@deftypefnx {} {} dbstop in @var{func} at @var{line} if "@var{condition}"
+@deftypefnx {} {} dbstop in @var{fcn}
+@deftypefnx {} {} dbstop in @var{fcn} at @var{line}
+@deftypefnx {} {} dbstop in @var{fcn} at @var{line} if "@var{condition}"
 @deftypefnx {} {} dbstop in @var{class} at @var{method}
 @deftypefnx {} {} dbstop if @var{event}
 @deftypefnx {} {} dbstop if @var{event} @var{ID}
@@ -93,16 +93,16 @@
 
 Set breakpoints for the built-in debugger.
 
-@var{func} is the name of a function on the current @code{path}.  When
-already in debug mode the @var{func} argument can be omitted and the current
+@var{fcn} is the name of a function on the current @code{path}.  When
+already in debug mode the @var{fcn} argument can be omitted and the current
 function will be used.  Breakpoints at subfunctions are set with the scope
 operator @samp{>}.  For example, If @file{file.m} has a subfunction
-@code{func2}, then a breakpoint in @code{func2} can be specified by
-@code{file>func2}.
+@code{fcn2}, then a breakpoint in @code{fcn2} can be specified by
+@code{file>fcn2}.
 
 @var{line} is the line number at which to break.  If @var{line} is not
 specified, it defaults to the first executable line in the file
-@file{func.m}.  Multiple lines can be specified in a single command; when
+@file{fcn.m}.  Multiple lines can be specified in a single command; when
 function syntax is used, the lines may also be passed as a single vector
 argument (@code{[@var{line1}, @var{line2}, @dots{}]}).
 
@@ -111,24 +111,24 @@
 @var{condition} will be evaluated, and execution will stop if
 @var{condition} is true.  If @var{condition} cannot be evaluated, for
 example because it refers to an undefined variable, an error will be thrown.
- Expressions with side effects (such as @code{y++ > 1}) will alter
-variables, and should generally be avoided.  Conditions containing quotes
-(@samp{"}, @samp{'}) or comment characters (@samp{#}, @samp{%}) must be
-enclosed in quotes.  (This does not apply to conditions entered from the
-editor's context menu.)  For example:
+Expressions with side effects (such as @code{y++ > 1}) will alter variables,
+and should generally be avoided.  Conditions containing quotes (@samp{"},
+@samp{'}) or comment characters (@samp{#}, @samp{%}) must be enclosed in
+quotes.  (This does not apply to conditions entered from the editor's context
+menu.)  For example:
 
 @example
 dbstop in axis at 246 if 'any (opt == "x")'
 @end example
 
-The form specifying @var{event} does not cause a specific breakpoint at a
-given function and line number.  Instead it causes debug mode to be entered
-when certain unexpected events are encountered.  Possible values are
+The form specifying @var{event} does not cause a specific breakpoint at a given
+function and line number.  Instead it causes debug mode to be entered when
+certain unexpected events are encountered.  Possible values are
 
 @table @code
 @item error
-Stop when an error is reported.  This is equivalent to specifying
-both @code{debug_on_error (true)} and @code{debug_on_interrupt (true)}.
+Stop when an error is reported.  This is equivalent to specifying both
+@code{debug_on_error (true)} and @code{debug_on_interrupt (true)}.
 
 @item caught error
 Stop when an error is caught by a try-catch block (not yet implemented).
@@ -145,10 +145,9 @@
 @end table
 
 The events @code{error}, @code{caught error}, and @code{warning} can all be
-followed by a string specifying an error ID or warning ID@.  If that is
-done, only errors with the specified ID will cause execution to stop.  To
-stop on one of a set of IDs, multiple @code{dbstop} commands must be
-issued.
+followed by a string specifying an error ID or warning ID@.  If that is done,
+only errors with the specified ID will cause execution to stop.  To stop on one
+of a set of IDs, multiple @code{dbstop} commands must be issued.
 
 Breakpoints and events can be removed using the @code{dbclear} command with
 the same syntax.
@@ -158,11 +157,11 @@
 
 The optional output @var{rline} is the real line number where the breakpoint
 was set.  This can differ from the specified line if the line is not
-executable.  For example, if a breakpoint attempted on a blank line then
-Octave will set the real breakpoint at the next executable line.
+executable.  For example, if a breakpoint attempted on a blank line then Octave
+will set the real breakpoint at the next executable line.
 
-When a file is re-parsed, such as when it is modified outside the GUI,
-all breakpoints within the file are cleared.
+When a file is re-parsed, such as when it is modified outside the GUI, all
+breakpoints within the file are cleared.
 
 @seealso{dbclear, dbstatus, dbstep, debug_on_error, debug_on_warning,
 debug_on_interrupt}
@@ -256,26 +255,26 @@
 
 DEFMETHOD (dbclear, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} dbclear @var{func}
-@deftypefnx {} {} dbclear @var{func} @var{line}
-@deftypefnx {} {} dbclear @var{func} @var{line1} @var{line2} @dots{}
+@deftypefn  {} {} dbclear @var{fcn}
+@deftypefnx {} {} dbclear @var{fcn} @var{line}
+@deftypefnx {} {} dbclear @var{fcn} @var{line1} @var{line2} @dots{}
 @deftypefnx {} {} dbclear @var{line} @dots{}
 @deftypefnx {} {} dbclear all
-@deftypefnx {} {} dbclear in @var{func}
-@deftypefnx {} {} dbclear in @var{func} at @var{line}
+@deftypefnx {} {} dbclear in @var{fcn}
+@deftypefnx {} {} dbclear in @var{fcn} at @var{line}
 @deftypefnx {} {} dbclear if @var{event}
-@deftypefnx {} {} dbclear ("@var{func}")
-@deftypefnx {} {} dbclear ("@var{func}", @var{line})
-@deftypefnx {} {} dbclear ("@var{func}", @var{line1}, @var{line2}, @dots{})
-@deftypefnx {} {} dbclear ("@var{func}", @var{line1}, @dots{})
+@deftypefnx {} {} dbclear ("@var{fcn}")
+@deftypefnx {} {} dbclear ("@var{fcn}", @var{line})
+@deftypefnx {} {} dbclear ("@var{fcn}", @var{line1}, @var{line2}, @dots{})
+@deftypefnx {} {} dbclear ("@var{fcn}", @var{line1}, @dots{})
 @deftypefnx {} {} dbclear (@var{line}, @dots{})
 @deftypefnx {} {} dbclear ("all")
-Delete a breakpoint at line number @var{line} in the function @var{func}.
+Delete a breakpoint at line number @var{line} in the function @var{fcn}.
 
 Arguments are
 
 @table @var
-@item func
+@item fcn
 Function name as a string variable.  When already in debug mode this
 argument can be omitted and the current function will be used.
 
@@ -332,7 +331,7 @@
 DEFMETHOD (dbstatus, interp, args, nargout,
            doc: /* -*- texinfo -*-
 @deftypefn  {} {} dbstatus
-@deftypefnx {} {} dbstatus @var{func}
+@deftypefnx {} {} dbstatus @var{fcn}
 @deftypefnx {} {@var{bp_list} =} dbstatus @dots{}
 Report the location of active breakpoints.
 
@@ -340,16 +339,16 @@
 functions with breakpoints and the line numbers where those breakpoints are
 set.
 
-If a function name @var{func} is specified then only report breakpoints
+If a function name @var{fcn} is specified then only report breakpoints
 for the named function and its subfunctions.
 
 The optional return argument @var{bp_list} is a struct array with the
-following fields.
+following fields:
 
 @table @asis
 @item name
-The name of the function with a breakpoint.  A subfunction, say @code{func2}
-within an m-file, say @file{file.m}, is specified as @code{file>func2}.
+The name of the function with a breakpoint.  A subfunction, say @code{fcn2}
+within an m-file, say @file{file.m}, is specified as @code{file>fcn2}.
 
 @item file
 The name of the m-file where the function code is located.
@@ -484,9 +483,9 @@
       for (const auto& fnm_bp_p : bp_list)
         {
           std::string filename = fnm_bp_p.first;
-          const char *sub_fun = strchr (filename.c_str (), '>');
-          if (sub_fun)
-            filename = filename.substr(0, sub_fun - filename.c_str ());
+          const char *sub_fcn = strchr (filename.c_str (), '>');
+          if (sub_fcn)
+            filename = filename.substr(0, sub_fcn - filename.c_str ());
           octave_value path_name;
           path_name
             = octave::sys::canonicalize_file_name (help_sys.which (filename));
@@ -529,12 +528,12 @@
 %!test
 %! if (isguirunning ())
 %!   orig_show_dbg = __event_manager_gui_preference__ ("editor/show_dbg_file",
-%!                                                   "0");
+%!                                                     "0");
 %! endif
 %! unwind_protect
 %!   dbclear all;   # Clear out breakpoints before test
 %!   dbstop @ftp/dir;
-%!   dbstop @audioplayer/set 70;
+%!   dbstop @audioplayer/set 75;
 %!   dbstop quantile>__quantile__;
 %!   dbstop ls;
 %!   s = dbstatus;
@@ -603,10 +602,10 @@
 @deftypefnx {} {} dbtype @var{lineno}
 @deftypefnx {} {} dbtype @var{startl:endl}
 @deftypefnx {} {} dbtype @var{startl:end}
-@deftypefnx {} {} dbtype @var{func}
-@deftypefnx {} {} dbtype @var{func} @var{lineno}
-@deftypefnx {} {} dbtype @var{func} @var{startl:endl}
-@deftypefnx {} {} dbtype @var{func} @var{startl:end}
+@deftypefnx {} {} dbtype @var{fcn}
+@deftypefnx {} {} dbtype @var{fcn} @var{lineno}
+@deftypefnx {} {} dbtype @var{fcn} @var{startl:endl}
+@deftypefnx {} {} dbtype @var{fcn} @var{startl:end}
 Display a script file with line numbers.
 
 When called with no arguments in debugging mode, display the script file
@@ -640,7 +639,7 @@
 
       break;
 
-    case 1:  // (dbtype start:end) || (dbtype func) || (dbtype lineno)
+    case 1:  // (dbtype start:end) || (dbtype fcn) || (dbtype lineno)
       {
         std::string arg = argv[1];
 
@@ -672,11 +671,11 @@
                            start, end);
               }
           }
-        else  // (dbtype func) || (dbtype lineno)
+        else  // (dbtype fcn) || (dbtype lineno)
           {
             int line = atoi (arg.c_str ());
 
-            if (line == 0)  // (dbtype func)
+            if (line == 0)  // (dbtype fcn)
               {
                 dbg_fcn = tw.get_user_code (arg);
 
@@ -701,7 +700,7 @@
       }
       break;
 
-    case 2:  // (dbtype func start:end) || (dbtype func start)
+    case 2:  // (dbtype fcn start:end) || (dbtype fcn start)
       {
         dbg_fcn = tw.get_user_code (argv[1]);
 
@@ -940,7 +939,7 @@
 void
 show_octave_dbstack (void)
 {
-  do_dbstack (octave::__get_interpreter__ ("show_octave_dbstack"),
+  do_dbstack (octave::__get_interpreter__ (),
               octave_value_list (), 0, std::cerr);
 }
 
@@ -1171,7 +1170,7 @@
 
 DEFMETHOD (isdebugmode, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} isdebugmode ()
+@deftypefn {} {@var{tf} =} isdebugmode ()
 Return true if in debugging mode, otherwise false.
 @seealso{dbwhere, dbstack, dbstatus}
 @end deftypefn */)
--- a/libinterp/corefcn/defaults.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/defaults.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -450,8 +450,9 @@
 
 DEFUN (OCTAVE_HOME, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} OCTAVE_HOME ()
+@deftypefn {} {@var{dir} =} OCTAVE_HOME ()
 Return the name of the top-level Octave installation directory.
+
 OCTAVE_HOME corresponds to the configuration variable @var{prefix}.
 @seealso{EXEC_PATH, IMAGE_PATH, OCTAVE_EXEC_HOME}
 @end deftypefn */)
@@ -469,11 +470,12 @@
 
 DEFUN (OCTAVE_EXEC_HOME, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} OCTAVE_EXEC_HOME ()
+@deftypefn {} {@var{dir} =} OCTAVE_EXEC_HOME ()
 Return the name of the top-level Octave installation directory for
-architecture-dependent files.  If not specified separately, the value
-is the same as OCTAVE_HOME@.  OCTAVE_EXEC_HOME corresponds to the
-configuration variable @var{exec_prefix}.
+architecture-dependent files.
+
+If not specified separately, the value is the same as OCTAVE_HOME@.
+OCTAVE_EXEC_HOME corresponds to the configuration variable @var{exec_prefix}.
 @seealso{EXEC_PATH, IMAGE_PATH, OCTAVE_HOME}
 @end deftypefn */)
 {
@@ -490,7 +492,7 @@
 
 DEFUNX ("OCTAVE_VERSION", FOCTAVE_VERSION, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} OCTAVE_VERSION ()
+@deftypefn {} {@var{verstr} =} OCTAVE_VERSION ()
 Return the version number of Octave as a string.
 @seealso{ver, version}
 @end deftypefn */)
--- a/libinterp/corefcn/defun.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/defun.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -54,7 +54,7 @@
 void
 print_usage (void)
 {
-  tree_evaluator& tw = __get_evaluator__ ("print_usage");
+  tree_evaluator& tw = __get_evaluator__ ();
 
   const octave_function *cur = tw.current_function ();
 
@@ -97,7 +97,7 @@
 
   octave_value fval (fcn);
 
-  symbol_table& symtab = __get_symbol_table__ ("install_dld_function");
+  symbol_table& symtab = __get_symbol_table__ ();
 
   symtab.install_built_in_function (name, fval);
 }
@@ -114,7 +114,7 @@
 
   octave_value fval (fcn);
 
-  symbol_table& symtab = __get_symbol_table__ ("install_dld_function");
+  symbol_table& symtab = __get_symbol_table__ ();
 
   symtab.install_built_in_function (name, fval);
 }
@@ -130,7 +130,7 @@
 
   octave_value fval (fcn);
 
-  symbol_table& symtab = __get_symbol_table__ ("install_mex_function");
+  symbol_table& symtab = __get_symbol_table__ ();
 
   symtab.install_built_in_function (name, fval);
 }
@@ -140,7 +140,7 @@
 {
   dynamic_library retval;
 
-  tree_evaluator& tw = __get_evaluator__ ("get_current_shlib");
+  tree_evaluator& tw = __get_evaluator__ ();
 
   octave_function *curr_fcn = tw.current_function ();
 
--- a/libinterp/corefcn/det.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/det.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -54,7 +54,7 @@
 
 DEFUN (det, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} det (@var{A})
+@deftypefn  {} {@var{d} =} det (@var{A})
 @deftypefnx {} {[@var{d}, @var{rcond}] =} det (@var{A})
 Compute the determinant of @var{A}.
 
--- a/libinterp/corefcn/dirfns.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/dirfns.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -91,8 +91,8 @@
 directory does not exist, an error message is printed and the working
 directory is not changed.
 
-@code{chdir} is an alias for @code{cd} and can be used in all of the same
-calling formats.
+Programming Note: @code{chdir} is an alias for @code{cd} and can be used with
+all of the same calling formats.
 
 Compatibility Note: When called with no arguments, @sc{matlab} prints the
 present working directory rather than changing to the user's home directory.
@@ -131,8 +131,7 @@
 
 DEFUN (pwd, , ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} pwd ()
-@deftypefnx {} {@var{dir} =} pwd ()
+@deftypefn {} {@var{dir} =} pwd ()
 Return the current working directory.
 @seealso{cd, dir, ls, mkdir, rmdir}
 @end deftypefn */)
@@ -182,7 +181,9 @@
 
 DEFUN (__mkdir__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __mkdir__ (@var{parent}, @var{dir})
+@deftypefn  {} {} __mkdir__ (@var{dir})
+@deftypefnx {} {} __mkdir__ (@var{parent}, @var{dir})
+@deftypefnx {} {[@var{status}, @var{msg}, @var{msgid}] =} __mkdir__ (@dots{})
 Internal function called by mkdir.m.
 @seealso{mkdir, rmdir, pwd, cd, umask}
 @end deftypefn */)
@@ -392,7 +393,7 @@
 
 DEFUNX ("readlink", Freadlink, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn  {} {} readlink @var{symlink}
+@deftypefn  {} {@var{result} =} readlink @var{symlink}
 @deftypefnx {} {[@var{result}, @var{err}, @var{msg}] =} readlink (@var{symlink})
 Read the value of the symbolic link @var{symlink}.
 
@@ -470,7 +471,7 @@
 
 DEFUN (glob, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} glob (@var{pattern})
+@deftypefn {} {@var{cstr} =} glob (@var{pattern})
 Given an array of pattern strings (as a char array or a cell array) in
 @var{pattern}, return a cell array of filenames that match any of
 them, or an empty cell array if no patterns match.
@@ -577,7 +578,7 @@
 
 DEFUN (__wglob__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __wglob__ (@var{pattern})
+@deftypefn {} {@var{cstr} =} __wglob__ (@var{pattern})
 Windows-like glob for dir.
 
 Given an array of pattern strings (as a char array or a cell array) in
@@ -690,7 +691,7 @@
 
 DEFUN (__fnmatch__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} fnmatch (@var{pattern}, @var{string})
+@deftypefn {} {@var{TF} =} fnmatch (@var{pattern}, @var{string})
 Return true or false for each element of @var{string} that matches any of
 the elements of the string array @var{pattern}, using the rules of
 filename pattern matching.
@@ -719,7 +720,7 @@
 
 DEFUN (filesep, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} filesep ()
+@deftypefn  {} {@var{sep} =} filesep ()
 @deftypefnx {} {} filesep ("all")
 Return the system-dependent character used to separate directory names.
 
@@ -768,7 +769,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} confirm_recursive_rmdir ()
 @deftypefnx {} {@var{old_val} =} confirm_recursive_rmdir (@var{new_val})
-@deftypefnx {} {} confirm_recursive_rmdir (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} confirm_recursive_rmdir (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave
 will ask for confirmation before recursively removing a directory tree.
 
--- a/libinterp/corefcn/display.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/display.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -55,7 +55,7 @@
 
 DEFMETHOD (have_window_system, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} have_window_system ()
+@deftypefn {} {@var{tf} =} have_window_system ()
 Return true if a window system is available (X11, Windows, or Apple OS X)
 and false otherwise.
 @seealso{isguirunning}
--- a/libinterp/corefcn/dot.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/dot.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -37,12 +37,14 @@
 
 OCTAVE_NAMESPACE_BEGIN
 
+// FIXME: input 'y' is no longer necessary (2/5/2022).
+//        At some point it would be better to change all occurrences of
+//        get_red_dims to eliminate this input parameter.
 static void
-get_red_dims (const dim_vector& x, const dim_vector& y, int dim,
+get_red_dims (const dim_vector& x, const dim_vector& /* y */, int dim,
               dim_vector& z, F77_INT& m, F77_INT& n, F77_INT& k)
 {
   int nd = x.ndims ();
-  assert (nd == y.ndims ());
   z = dim_vector::alloc (nd);
   octave_idx_type tmp_m = 1;
   octave_idx_type tmp_n = 1;
@@ -73,7 +75,8 @@
 
 DEFUN (dot, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} dot (@var{x}, @var{y}, @var{dim})
+@deftypefn  {} {@var{z} =} dot (@var{x}, @var{y})
+@deftypefnx {} {@var{z} =} dot (@var{x}, @var{y}, @var{dim})
 Compute the dot product of two vectors.
 
 If @var{x} and @var{y} are matrices, calculate the dot products along the
@@ -349,7 +352,7 @@
 
 DEFUN (blkmm, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} blkmm (@var{A}, @var{B})
+@deftypefn {} {@var{C} =} blkmm (@var{A}, @var{B})
 Compute products of matrix blocks.
 
 The blocks are given as 2-dimensional subarrays of the arrays @var{A},
--- a/libinterp/corefcn/environment.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/environment.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -157,7 +157,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} EDITOR ()
 @deftypefnx {} {@var{old_val} =} EDITOR (@var{new_val})
-@deftypefnx {} {} EDITOR (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} EDITOR (@var{new_val}, "local")
 Query or set the internal variable that specifies the default text editor.
 
 The default value is taken from the environment variable @w{@env{EDITOR}}
@@ -192,7 +192,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} EXEC_PATH ()
 @deftypefnx {} {@var{old_val} =} EXEC_PATH (@var{new_val})
-@deftypefnx {} {} EXEC_PATH (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} EXEC_PATH (@var{new_val}, "local")
 Query or set the internal variable that specifies a colon separated
 list of directories to append to the shell PATH when executing external
 programs.
@@ -229,7 +229,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} IMAGE_PATH ()
 @deftypefnx {} {@var{old_val} =} IMAGE_PATH (@var{new_val})
-@deftypefnx {} {} IMAGE_PATH (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} IMAGE_PATH (@var{new_val}, "local")
 Query or set the internal variable that specifies a colon separated
 list of directories in which to search for image files.
 
--- a/libinterp/corefcn/error.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/error.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -76,7 +76,7 @@
 error_1 (octave::execution_exception& ee, const char *id, const char *fmt,
          va_list args)
 {
-  octave::error_system& es = octave::__get_error_system__ ("error_1");
+  octave::error_system& es = octave::__get_error_system__ ();
 
   es.error_1 (ee, id, fmt, args);
 }
@@ -85,7 +85,7 @@
 static void
 error_1 (const char *id, const char *fmt, va_list args)
 {
-  octave::error_system& es = octave::__get_error_system__ ("error_1");
+  octave::error_system& es = octave::__get_error_system__ ();
 
   es.error_1 (id, fmt, args);
 }
@@ -111,7 +111,7 @@
 static void
 vwarning (const char *id, const char *fmt, va_list args)
 {
-  octave::error_system& es = octave::__get_error_system__ ("warning");
+  octave::error_system& es = octave::__get_error_system__ ();
 
   es.vwarning (id, fmt, args);
 }
@@ -125,10 +125,10 @@
   va_end (args);
 }
 
-typedef void (*error_fun)(const char *, const char *, ...);
+typedef void (*error_fcn)(const char *, const char *, ...);
 
 static std::string
-handle_message (error_fun f, const char *id, const char *msg,
+handle_message (error_fcn f, const char *id, const char *msg,
                 const octave_value_list& args, bool have_fmt)
 {
   std::string retval;
@@ -657,7 +657,7 @@
 
     octave_idx_type nel = ident.numel ();
 
-    assert (nel != 0);
+    panic_if (nel == 0);
 
     bool found = false;
 
@@ -689,8 +689,7 @@
     // The warning state "all" is always supposed to remain in the list,
     // so we should always find a state, either explicitly or by using the
     // state for "all".
-
-    assert (found);
+    panic_unless (found);
 
     retval.assign ("identifier", id);
     retval.assign ("state", val);
@@ -956,7 +955,7 @@
 void
 vusage_with_id (const char *id, const char *fmt, va_list args)
 {
-  octave::error_system& es = octave::__get_error_system__ ("warning_enabled");
+  octave::error_system& es = octave::__get_error_system__ ();
 
   es.vusage (id, fmt, args);
 }
@@ -1109,7 +1108,7 @@
 void
 vpanic (const char *fmt, va_list args)
 {
-  octave::error_system& es = octave::__get_error_system__ ("vpanic");
+  octave::error_system& es = octave::__get_error_system__ ();
 
   es.vpanic (fmt, args);
 }
@@ -1255,7 +1254,6 @@
 @seealso{warning, lasterror}
 @end deftypefn */)
 {
-
   int nargin = args.length ();
 
   if (nargin == 0)
@@ -1816,7 +1814,7 @@
   args(1) = id;
   args(0) = state;
 
-  interpreter& interp = __get_interpreter__ ("set_warning_state");
+  interpreter& interp = __get_interpreter__ ();
 
   return Fwarning (interp, args, 1);
 }
@@ -1824,7 +1822,7 @@
 octave_value_list
 set_warning_state (const octave_value_list& args)
 {
-  interpreter& interp = __get_interpreter__ ("set_warning_state");
+  interpreter& interp = __get_interpreter__ ();
 
   return Fwarning (interp, args, 1);
 }
@@ -1832,7 +1830,7 @@
 int
 warning_enabled (const std::string& id)
 {
-  error_system& es = __get_error_system__ ("warning_enabled");
+  error_system& es = __get_error_system__ ();
 
   return es.warning_enabled (id);
 }
@@ -1840,7 +1838,7 @@
 void
 disable_warning (const std::string& id)
 {
-  error_system& es = __get_error_system__ ("disable_warning");
+  error_system& es = __get_error_system__ ();
 
   es.disable_warning (id);
 }
@@ -2079,7 +2077,7 @@
 
 With one argument, set the last warning message to @var{msg}.
 
-With two arguments, also set the last message identifier.
+With two arguments, also set the last message identifier to @var{msgid}.
 @seealso{warning, lasterror, lasterr}
 @end deftypefn */)
 {
@@ -2116,7 +2114,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} beep_on_error ()
 @deftypefnx {} {@var{old_val} =} beep_on_error (@var{new_val})
-@deftypefnx {} {} beep_on_error (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} beep_on_error (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave will try
 to ring the terminal bell before printing an error message.
 
@@ -2134,7 +2132,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} debug_on_error ()
 @deftypefnx {} {@var{old_val} =} debug_on_error (@var{new_val})
-@deftypefnx {} {} debug_on_error (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} debug_on_error (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave will try
 to enter the debugger when an error is encountered.
 
@@ -2156,7 +2154,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} debug_on_warning ()
 @deftypefnx {} {@var{old_val} =} debug_on_warning (@var{new_val})
-@deftypefnx {} {} debug_on_warning (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} debug_on_warning (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave will try
 to enter the debugger when a warning is encountered.
 
@@ -2174,14 +2172,9 @@
 void
 interpreter_try (unwind_protect& frame)
 {
-  error_system& es = __get_error_system__ ("interpreter_try");
+  error_system& es = __get_error_system__ ();
 
   es.interpreter_try (frame);
 }
 
 OCTAVE_NAMESPACE_END
-
-// Deprecated variables and functions.
-
-// This variable is obsolete and always has the value 0.
-int error_state = 0;
--- a/libinterp/corefcn/error.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/error.h	Tue Nov 15 13:15:28 2022 -0800
@@ -174,7 +174,8 @@
 
     octave_map warning_options (void) const { return m_warning_options; }
 
-    void set_warning_options (const octave_map& val) { m_warning_options = val; }
+    void set_warning_options (const octave_map& val)
+    { m_warning_options = val; }
 
     octave_map warning_options (const octave_map& new_val)
     {
@@ -187,9 +188,7 @@
     last_error_message (const octave_value_list& args, int nargout);
 
     void set_last_error_message (const std::string& val)
-    {
-      m_last_error_message = val;
-    }
+    { m_last_error_message = val; }
 
     std::string last_error_message (void) const { return m_last_error_message; }
 
@@ -203,9 +202,11 @@
     OCTINTERP_API octave_value
     last_warning_message (const octave_value_list& args, int nargout);
 
-    void set_last_warning_message (const std::string& val) { m_last_warning_message = val; }
+    void set_last_warning_message (const std::string& val)
+    { m_last_warning_message = val; }
 
-    std::string last_warning_message (void) const { return m_last_warning_message; }
+    std::string last_warning_message (void) const
+    { return m_last_warning_message; }
 
     std::string last_warning_message (const std::string& s)
     {
@@ -217,7 +218,8 @@
     OCTINTERP_API octave_value
     last_warning_id (const octave_value_list& args, int nargout);
 
-    void set_last_warning_id (const std::string& val) { m_last_warning_id = val; }
+    void set_last_warning_id (const std::string& val)
+    { m_last_warning_id = val; }
 
     std::string last_warning_id (void) const { return m_last_warning_id; }
 
@@ -408,9 +410,6 @@
 // not deprecated and eventually removed, does it make sense to also
 // define them inside the octave namespace?
 
-#define panic_impossible()                                              \
-  panic ("impossible state reached in file '%s' at line %d", __FILE__, __LINE__)
-
 extern OCTINTERP_API void
 vmessage (const char *name, const char *fmt, va_list args);
 
@@ -506,6 +505,52 @@
 OCTAVE_NORETURN
 extern OCTINTERP_API void panic (const char *fmt, ...);
 
+#define panic_impossible()                                              \
+  panic ("impossible state reached in file '%s' at line %d", __FILE__, __LINE__)
+
+inline void
+panic_if (bool cond)
+{
+#ifndef NDEBUG
+  if (cond)
+    panic_impossible ();
+  else
+    return;
+
+#else
+  octave_unused_parameter (cond);
+#endif
+}
+
+inline void
+panic_unless (bool cond)
+{
+  panic_if (! cond);
+}
+
+#define error_impossible()                                              \
+  error ("impossible state reached in file '%s' at line %d", __FILE__, __LINE__)
+
+inline void
+error_if (bool cond)
+{
+#ifndef NDEBUG
+  if (cond)
+    error_impossible ();
+  else
+    return;
+
+#else
+  octave_unused_parameter (cond);
+#endif
+}
+
+inline void
+error_unless (bool cond)
+{
+  error_if (! cond);
+}
+
 OCTAVE_NAMESPACE_BEGIN
 
 //! Helper function for print_usage defined in defun.cc.
@@ -566,14 +611,6 @@
   octave::interpreter_try (uwp);
 }
 
-OCTAVE_DEPRECATED (6, "this function is obsolete and should not be needed")
-inline void reset_error_handler (void) { }
 #endif
 
-// This symbol must have be declared with the correct visibility
-// attributes when Octave is built, so it must appear unconditionally in
-// this header file.
-OCTAVE_DEPRECATED (6, "this variable is obsolete and always has the value 0")
-extern OCTINTERP_API int error_state;
-
 #endif
--- a/libinterp/corefcn/errwarn.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/errwarn.h	Tue Nov 15 13:15:28 2022 -0800
@@ -188,11 +188,4 @@
 extern OCTINTERP_API void
 warn_wrong_type_arg (const char *name, const octave_value& tc);
 
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-OCTAVE_DEPRECATED (6, "this function will be removed in a future version of Octave")
-inline void
-warn_divide_by_zero (void)
-{ }
 #endif
-
-#endif
--- a/libinterp/corefcn/event-manager.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/event-manager.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -48,7 +48,7 @@
 
   static int readline_event_hook (void)
   {
-    event_manager& evmgr = __get_event_manager__ ("octave_readline_hook");
+    event_manager& evmgr = __get_event_manager__ ();
 
     evmgr.process_events ();
 
@@ -225,7 +225,7 @@
 
 DEFMETHOD (__event_manager_enabled__, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_enabled__ ()
+@deftypefn {} {@var{tf} =} __event_manager_enabled__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -236,7 +236,7 @@
 
 DEFMETHOD (__event_manager_have_dialogs__, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_have_dialogs__ ()
+@deftypefn {} {@var{tf} =} __event_manager_have_dialogs__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -247,7 +247,7 @@
 
 DEFMETHOD (__event_manager_edit_file__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_edit_file__ (@var{file})
+@deftypefn {} {@var{status} =} __event_manager_edit_file__ (@var{file})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -279,7 +279,7 @@
 
 DEFMETHOD (__event_manager_question_dialog__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_question_dialog__ (@var{msg}, @var{title}, @var{btn1}, @var{btn2}, @var{btn3}, @var{default})
+@deftypefn {} {@var{btn_val} =} __event_manager_question_dialog__ (@var{msg}, @var{title}, @var{btn1}, @var{btn2}, @var{btn3}, @var{default})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -306,7 +306,7 @@
 
 DEFMETHOD (__event_manager_file_dialog__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_file_dialog__ (@var{filterlist}, @var{title}, @var{filename}, @var{multiselect}, @var{pathname})
+@deftypefn {} {[@var{fname}, @var{fpath}, @var{fltidx}] =} __event_manager_file_dialog__ (@var{filterlist}, @var{title}, @var{filename}, @var{multiselect}, @var{pathname})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -375,7 +375,7 @@
 
 DEFMETHOD (__event_manager_list_dialog__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_list_dialog__ (@var{list}, @var{mode}, @var{size}, @var{initial}, @var{name}, @var{prompt}, @var{ok_string}, @var{cancel_string})
+@deftypefn {} {[@var{sel}, @var{ok}] =} __event_manager_list_dialog__ (@var{list}, @var{mode}, @var{size}, @var{initial}, @var{name}, @var{prompt}, @var{ok_string}, @var{cancel_string})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -431,7 +431,7 @@
 
 DEFMETHOD (__event_manager_input_dialog__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_input_dialog__ (@var{prompt}, @var{title}, @var{rowscols}, @var{defaults})
+@deftypefn {} {@var{cstr} =} __event_manager_input_dialog__ (@var{prompt}, @var{title}, @var{rowscols}, @var{defaults})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -483,7 +483,7 @@
 
 DEFMETHOD (__event_manager_named_icon__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_dialog_icons__ (@var{icon_name})
+@deftypefn {} {@var{icon} =} __event_manager_dialog_icons__ (@var{icon_name})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -501,9 +501,10 @@
   return ovl (retval);
 }
 
+// FIXME: Why does this function return any value at all?
 DEFMETHOD (__event_manager_show_preferences__, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_show_preferences__ ()
+@deftypefn {} {@var{status} =} __event_manager_show_preferences__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -514,7 +515,7 @@
 
 DEFMETHOD (__event_manager_apply_preferences__, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_apply_preferences__ ()
+@deftypefn {} {@var{status} =} __event_manager_apply_preferences__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -525,7 +526,8 @@
 
 DEFMETHOD (__event_manager_gui_preference__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_gui_preference__ ()
+@deftypefn  {} {@var{prefval} =} __event_manager_gui_preference__ (@var{key})
+@deftypefnx {} {@var{prefval} =} __event_manager_gui_preference__ (@var{key}, @var{value})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -645,7 +647,7 @@
 
 DEFMETHOD (__event_manager_show_documentation__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_show_documentation__ (@var{filename})
+@deftypefn {} {@var{status} =} __event_manager_show_documentation__ (@var{filename})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -661,7 +663,7 @@
 
 DEFMETHOD (__event_manager_register_documentation__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_register_documentation__ (@var{filename})
+@deftypefn {} {@var{status} =} __event_manager_register_documentation__ (@var{filename})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -677,7 +679,7 @@
 
 DEFMETHOD (__event_manager_unregister_documentation__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_unregister_documentation__ (@var{filename})
+@deftypefn {} {@var{status} =} __event_manager_unregister_documentation__ (@var{filename})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -758,7 +760,7 @@
 
 DEFMETHOD (__event_manager_gui_status_update__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_gui_status_update__ (@var{feature}, @var{status})
+@deftypefn {} {@var{status} =} __event_manager_gui_status_update__ (@var{feature}, @var{status})
 Internal function for updating the status of some features in the GUI.
 @end deftypefn */)
 {
@@ -792,7 +794,7 @@
 
 DEFMETHOD (__event_manager_update_gui_lexer__, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __event_manager_update_gui_lexer__ ()
+@deftypefn {} {@var{status} =} __event_manager_update_gui_lexer__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
--- a/libinterp/corefcn/event-manager.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/event-manager.h	Tue Nov 15 13:15:28 2022 -0800
@@ -623,7 +623,8 @@
         return false;
     }
 
-    bool gui_status_update (const std::string& feature, const std::string& status)
+    bool gui_status_update (const std::string& feature,
+                            const std::string& status)
     {
       if (enabled ())
         {
--- a/libinterp/corefcn/fcn-info.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/fcn-info.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -54,8 +54,7 @@
   {
     octave_value retval;
 
-    load_path& lp
-      = __get_load_path__ ("fcn_info::fcn_info_rep::load_private_function");
+    load_path& lp = __get_load_path__ ();
 
     std::string file_name = lp.find_private_fcn (dir_name, name);
 
@@ -98,8 +97,7 @@
 
     std::string dir_name;
 
-    load_path& lp
-      = __get_load_path__ ("fcn_info::fcn_info_rep::load_class_constructor");
+    load_path& lp = __get_load_path__ ();
 
     std::string file_name = lp.find_method (name, name, dir_name, package_name);
 
@@ -159,8 +157,7 @@
       retval = load_class_constructor ();
     else
       {
-        cdef_manager& cdm
-          = __get_cdef_manager__ ("fcn_info::fcn_info_rep::load_class_method");
+        cdef_manager& cdm = __get_cdef_manager__ ();
 
         retval = cdm.find_method_symbol (name, dispatch_type);
 
@@ -168,7 +165,7 @@
           {
             std::string dir_name;
 
-            load_path& lp = __get_load_path__ ("fcn_info::fcn_info_rep::load_class_method");
+            load_path& lp = __get_load_path__ ();
 
             std::string file_name = lp.find_method (dispatch_type, name,
                                                     dir_name);
@@ -196,8 +193,7 @@
               {
                 // Search parent classes
 
-                symbol_table& symtab
-                  = __get_symbol_table__ ("fcn_info::fcn_info_rep::load_class_method");
+                symbol_table& symtab = __get_symbol_table__ ();
 
                 const std::list<std::string>& plist
                   = symtab.parent_classes (dispatch_type);
@@ -303,7 +299,7 @@
             // There's a non-builtin class in the argument list.
             dispatch_type = args(i).class_name ();
 
-            symbol_table& symtab = __get_symbol_table__ ("get_dispatch_type");
+            symbol_table& symtab = __get_symbol_table__ ();
 
             for (int j = i+1; j < n; j++)
               {
@@ -356,7 +352,7 @@
   {
     symbol_scope search_scope
       = (scope
-         ? scope : __get_current_scope__("fcn_info::fcn_info_rep::find"));
+         ? scope : __get_current_scope__ ());
 
     octave_value retval = xfind (search_scope, args);
 
@@ -366,7 +362,7 @@
         // the last prompt or chdir, so try updating the load path and
         // searching again.
 
-        load_path& lp = __get_load_path__ ("fcn_info::fcn_info_rep::find");
+        load_path& lp = __get_load_path__ ();
 
         lp.update ();
 
@@ -525,8 +521,7 @@
 
                             if (! dispatch_type.empty ())
                               {
-                                load_path& lp
-                                  = __get_load_path__ ("out_of_date_check");
+                                load_path& lp = __get_load_path__ ();
 
                                 file = lp.find_method (dispatch_type, nm,
                                                        dir_name, pack);
@@ -536,8 +531,7 @@
                                     std::string s_name;
                                     std::string s_pack;
 
-                                    symbol_table& symtab
-                                      = __get_symbol_table__ ("out_of_date_check");
+                                    symbol_table& symtab = __get_symbol_table__ ();
 
                                     const std::list<std::string>& plist
                                       = symtab.parent_classes (dispatch_type);
@@ -566,16 +560,14 @@
                             // Maybe it's an autoload?
                             if (file.empty ())
                               {
-                                tree_evaluator& tw
-                                  = __get_evaluator__ ("out_of_data_check");
+                                tree_evaluator& tw = __get_evaluator__ ();
 
                                 file = tw.lookup_autoload (nm);
                               }
 
                             if (file.empty ())
                               {
-                                load_path& lp
-                                  = __get_load_path__ ("out_of_date_check");
+                                load_path& lp = __get_load_path__ ();
                                 file = lp.find_fcn (nm, dir_name, pack);
                               }
                           }
@@ -648,8 +640,7 @@
                     // breakpoints associated with it
                     if (clear_breakpoints)
                       {
-                        bp_table& bptab
-                          = __get_bp_table__ ("out_of_date_check");
+                        bp_table& bptab = __get_bp_table__ ();
 
                         bptab.remove_all_breakpoints_from_function (canonical_nm,
                                                                     true);
@@ -857,7 +848,7 @@
   {
     symbol_scope search_scope
       = (scope
-         ? scope : __get_current_scope__("fcn_info::fcn_info_rep::find"));
+         ? scope : __get_current_scope__ ());
 
     octave_value retval = x_builtin_find (search_scope);
 
@@ -867,7 +858,7 @@
         // the last prompt or chdir, so try updating the load path and
         // searching again.
 
-        load_path& lp = __get_load_path__ ("fcn_info::fcn_info_rep::builtin_find");
+        load_path& lp = __get_load_path__ ();
 
         lp.update ();
 
@@ -1017,8 +1008,7 @@
 
     if (! autoload_function.is_defined ())
       {
-        tree_evaluator& tw
-          = __get_evaluator__ ("fcn_info::fcn_info_rep::x_builtin_find");
+        tree_evaluator& tw = __get_evaluator__ ();
 
         std::string file_name = tw.lookup_autoload (name);
 
@@ -1051,8 +1041,7 @@
       {
         std::string dir_name;
 
-        load_path& lp
-          = __get_load_path__ ("fcn_info::fcn_info_rep::find_user_function");
+        load_path& lp = __get_load_path__ ();
 
 
         std::string file_name = lp.find_fcn (name, dir_name, package_name);
@@ -1079,8 +1068,7 @@
 
     if (package.is_undefined ())
       {
-        cdef_manager& cdm
-          = __get_cdef_manager__ ("fcn_info::fcn_info_rep::find_package");
+        cdef_manager& cdm = __get_cdef_manager__ ();
 
         package = cdm.find_package_symbol (full_name ());
       }
--- a/libinterp/corefcn/fft.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/fft.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -195,9 +195,9 @@
 
 DEFUN (fft, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} fft (@var{x})
-@deftypefnx {} {} fft (@var{x}, @var{n})
-@deftypefnx {} {} fft (@var{x}, @var{n}, @var{dim})
+@deftypefn  {} {@var{y} =} fft (@var{x})
+@deftypefnx {} {@var{y} =} fft (@var{x}, @var{n})
+@deftypefnx {} {@var{y} =} fft (@var{x}, @var{n}, @var{dim})
 Compute the discrete Fourier transform of @var{x} using
 a Fast Fourier Transform (FFT) algorithm.
 
@@ -224,23 +224,23 @@
 
 DEFUN (ifft, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} ifft (@var{x})
-@deftypefnx {} {} ifft (@var{x}, @var{n})
-@deftypefnx {} {} ifft (@var{x}, @var{n}, @var{dim})
-Compute the inverse discrete Fourier transform of @var{x}
+@deftypefn  {} {@var{x} =} ifft (@var{y})
+@deftypefnx {} {@var{x} =} ifft (@var{y}, @var{n})
+@deftypefnx {} {@var{x} =} ifft (@var{y}, @var{n}, @var{dim})
+Compute the inverse discrete Fourier transform of @var{y}
 using a Fast Fourier Transform (FFT) algorithm.
 
 The inverse FFT is calculated along the first non-singleton dimension
-of the array.  Thus if @var{x} is a matrix, @code{fft (@var{x})} computes
-the inverse FFT for each column of @var{x}.
+of the array.  Thus if @var{y} is a matrix, @code{ifft (@var{y})} computes
+the inverse FFT for each column of @var{y}.
 
 If called with two arguments, @var{n} is expected to be an integer
-specifying the number of elements of @var{x} to use, or an empty
+specifying the number of elements of @var{y} to use, or an empty
 matrix to specify that its value should be ignored.  If @var{n} is
 larger than the dimension along which the inverse FFT is calculated, then
-@var{x} is resized and padded with zeros.  Otherwise, if @var{n} is
+@var{y} is resized and padded with zeros.  Otherwise, if @var{n} is
 smaller than the dimension along which the inverse FFT is calculated,
-then @var{x} is truncated.
+then @var{y} is truncated.
 
 If called with three arguments, @var{dim} is an integer specifying the
 dimension of the matrix along which the inverse FFT is performed.
--- a/libinterp/corefcn/fft2.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/fft2.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -139,8 +139,8 @@
 
 DEFUN (fft2, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} fft2 (@var{A})
-@deftypefnx {} {} fft2 (@var{A}, @var{m}, @var{n})
+@deftypefn  {} {@var{B} =} fft2 (@var{A})
+@deftypefnx {} {@var{B} =} fft2 (@var{A}, @var{m}, @var{n})
 Compute the two-dimensional discrete Fourier transform of @var{A} using
 a Fast Fourier Transform (FFT) algorithm.
 
@@ -159,17 +159,17 @@
 
 DEFUN (ifft2, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} ifft2 (@var{A})
-@deftypefnx {} {} ifft2 (@var{A}, @var{m}, @var{n})
-Compute the inverse two-dimensional discrete Fourier transform of @var{A}
+@deftypefn  {} {@var{A} =} ifft2 (@var{B})
+@deftypefnx {} {@var{A} =} ifft2 (@var{B}, @var{m}, @var{n})
+Compute the inverse two-dimensional discrete Fourier transform of @var{B}
 using a Fast Fourier Transform (FFT) algorithm.
 
 The optional arguments @var{m} and @var{n} may be used specify the number of
-rows and columns of @var{A} to use.  If either of these is larger than the
-size of @var{A}, @var{A} is resized and padded with zeros.
+rows and columns of @var{B} to use.  If either of these is larger than the
+size of @var{B}, @var{B} is resized and padded with zeros.
 
-If @var{A} is a multi-dimensional matrix, each two-dimensional sub-matrix
-of @var{A} is treated separately.
+If @var{B} is a multi-dimensional matrix, each two-dimensional sub-matrix
+of @var{B} is treated separately.
 @seealso{fft2, ifft, ifftn, fftw}
 @end deftypefn */)
 {
--- a/libinterp/corefcn/fftn.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/fftn.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -126,8 +126,8 @@
 
 DEFUN (fftn, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} fftn (@var{A})
-@deftypefnx {} {} fftn (@var{A}, @var{size})
+@deftypefn  {} {@var{B} =} fftn (@var{A})
+@deftypefnx {} {@var{B} =} fftn (@var{A}, @var{size})
 Compute the N-dimensional discrete Fourier transform of @var{A} using
 a Fast Fourier Transform (FFT) algorithm.
 
@@ -145,16 +145,16 @@
 
 DEFUN (ifftn, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} ifftn (@var{A})
-@deftypefnx {} {} ifftn (@var{A}, @var{size})
-Compute the inverse N-dimensional discrete Fourier transform of @var{A}
+@deftypefn  {} {@var{A} =} ifftn (@var{B})
+@deftypefnx {} {@var{A} =} ifftn (@var{B}, @var{size})
+Compute the inverse N-dimensional discrete Fourier transform of @var{B}
 using a Fast Fourier Transform (FFT) algorithm.
 
 The optional vector argument @var{size} may be used specify the dimensions
 of the array to be used.  If an element of @var{size} is smaller than the
-corresponding dimension of @var{A}, then the dimension of @var{A} is
+corresponding dimension of @var{B}, then the dimension of @var{B} is
 truncated prior to performing the inverse FFT@.  Otherwise, if an element of
-@var{size} is larger than the corresponding dimension then @var{A} is
+@var{size} is larger than the corresponding dimension then @var{B} is
 resized and padded with zeros.
 @seealso{fftn, ifft, ifft2, fftw}
 @end deftypefn */)
--- a/libinterp/corefcn/file-io.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/file-io.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -60,14 +60,12 @@
 #include "mkostemp-wrapper.h"
 #include "oct-env.h"
 #include "oct-locbuf.h"
-#include "tmpfile-wrapper.h"
 #include "unistd-wrappers.h"
 
 #include "builtin-defun-decls.h"
 #include "defun.h"
 #include "error.h"
 #include "errwarn.h"
-#include "file-io.h"
 #include "interpreter-private.h"
 #include "interpreter.h"
 #include "load-path.h"
@@ -177,8 +175,7 @@
 
 DEFMETHOD (fclose, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} fclose (@var{fid})
-@deftypefnx {} {} fclose ("all")
+@deftypefn  {} {@var{status} =} fclose (@var{fid})
 @deftypefnx {} {@var{status} =} fclose ("all")
 Close the file specified by the file descriptor @var{fid}.
 
@@ -221,7 +218,7 @@
 
 DEFMETHOD (fflush, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} fflush (@var{fid})
+@deftypefn {} {@var{status} =} fflush (@var{fid})
 Flush output to file descriptor @var{fid}.
 
 @code{fflush} returns 0 on success and an OS dependent error value
@@ -704,8 +701,11 @@
 Move the file pointer to the beginning of the file specified by file
 descriptor @var{fid}.
 
-@code{frewind} returns 0 for success, and -1 if an error is encountered.  It
-is equivalent to @code{fseek (@var{fid}, 0, SEEK_SET)}.
+If an output @var{status} is requested then @code{frewind} returns 0 for
+success, and -1 if an error is encountered.
+
+Programming Note: @code{frewind} is equivalent to
+@code{fseek (@var{fid}, 0, SEEK_SET)}.
 @seealso{fseek, ftell, fopen}
 @end deftypefn */)
 {
@@ -728,9 +728,8 @@
 
 DEFMETHOD (fseek, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} fseek (@var{fid}, @var{offset})
-@deftypefnx {} {} fseek (@var{fid}, @var{offset}, @var{origin})
-@deftypefnx {} {@var{status} =} fseek (@dots{})
+@deftypefn  {} {@var{status} =} fseek (@var{fid}, @var{offset})
+@deftypefnx {} {@var{status} =} fseek (@var{fid}, @var{offset}, @var{origin})
 Set the file pointer to the location @var{offset} within the file @var{fid}.
 
 The pointer is positioned @var{offset} characters from the @var{origin}, which
@@ -833,7 +832,8 @@
 If @var{fid} is omitted, the output is written to @code{stdout} making the
 function exactly equivalent to @code{printf}.
 
-The optional output returns the number of bytes written to the file.
+The optional output @var{numbytes} returns the number of bytes written to the
+file.
 
 Implementation Note: For compatibility with @sc{matlab}, escape sequences in
 the template string (e.g., @qcode{"@backslashchar{}n"} => newline) are
@@ -848,16 +848,19 @@
 
 DEFMETHOD (printf, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} printf (@var{template}, @dots{})
+@deftypefn  {} {} printf (@var{template}, @dots{})
+@deftypefnx {} {@var{numbytes} =} printf (@dots{})
 Print optional arguments under the control of the template string
-@var{template} to the stream @code{stdout} and return the number of
-characters printed.
+@var{template} to the stream @code{stdout} and return the number of characters
+printed.
 @ifclear OCTAVE_MANUAL
 
-See the Formatted Output section of the GNU Octave manual for a
-complete description of the syntax of the template string.
+See the Formatted Output section of the GNU Octave manual for a complete
+description of the syntax of the template string.
 @end ifclear
 
+The optional output @var{numbytes} returns the number of bytes printed.
+
 Implementation Note: For compatibility with @sc{matlab}, escape sequences in
 the template string (e.g., @qcode{"@backslashchar{}n"} => newline) are
 expanded even when the template string is defined with single quotes.
@@ -883,20 +886,20 @@
 
   stream os = streams.lookup (args(0), who);
 
-  return ovl (os.puts (args(1), who));
+  return ovl (- (os.puts (args(1), who) < 0));
 }
 
 DEFMETHOD (fputs, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} fputs (@var{fid}, @var{string})
-@deftypefnx {} {@var{status} =} fputs (@var{fid}, @var{string})
+@deftypefn {} {@var{status} =} fputs (@var{fid}, @var{string})
 Write the string @var{string} to the file with file descriptor @var{fid}.
 
 The string is written to the file with no additional formatting.  Use
 @code{fdisp} instead to automatically append a newline character appropriate
 for the local machine.
 
-Return a non-negative number on success or EOF on error.
+The optional output @var{status} is 0 for success, or -1 if an error was
+encountered.
 @seealso{fdisp, fprintf, fwrite, fopen}
 @end deftypefn */)
 {
@@ -905,16 +908,44 @@
   return puts_internal (interp, who, args);
 }
 
+/*
+## Check if text is correctly converted to output encoding
+%!test <*61839>
+%! str = "aäöu";  # string with non-ASCII characters
+%! fname = tempname ();
+%! fid = fopen (fname, "wt", "n", "ISO-8859-1");
+%! unwind_protect
+%!   fprintf (fid, '%s\n', str);
+%!   fdisp (fid, str);
+%!   fputs (fid, str);
+%!   fclose (fid);
+%!   ## re-open file for reading in binary mode
+%!   fid = fopen (fname, "rb");
+%!   fb = fread (fid);
+%!   fclose (fid);
+%!   ## check file content
+%!   encoded = [97 228 246 117];  # original string in ISO-8859-1 encoding
+%!   if (ispc ())
+%!     eol = double ("\r\n");
+%!   else
+%!     eol = double ("\n");
+%!   endif
+%!   assert (fb.', [encoded eol encoded eol encoded])
+%! unwind_protect_cleanup
+%!   unlink (fname);
+%! end_unwind_protect
+*/
+
 DEFMETHOD (puts, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} puts (@var{string})
-@deftypefnx {} {@var{status} =} puts (@var{string})
+@deftypefn {} {@var{status} =} puts (@var{string})
 Write a string to the standard output with no formatting.
 
 The string is written verbatim to the standard output.  Use @code{disp} to
 automatically append a newline character appropriate for the local machine.
 
-Return a non-negative number on success and EOF on error.
+The optional output @var{status} is 0 for success, or -1 if an error was
+encountered.
 @seealso{fputs, disp}
 @end deftypefn */)
 {
@@ -927,7 +958,7 @@
 
 DEFUN (sprintf, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} sprintf (@var{template}, @dots{})
+@deftypefn {} {@var{str} =} sprintf (@var{template}, @dots{})
 This is like @code{printf}, except that the output is returned as a
 string.
 
@@ -2278,6 +2309,7 @@
 %! fid = fopen (f, "w+", "n", "iso-8859-1");
 %! unwind_protect
 %!   fprintf (fid, "abc,äöü\n");
+%!   fflush (fid);
 %!   fseek (fid, 0, "bof");
 %!   obs = textscan (fid, "%s", "delimiter", ",");
 %!   fclose (fid);
@@ -2329,6 +2361,8 @@
 %! C = textscan ('5973459727478852968', '%u64');
 %! assert (C{1}, uint64 (5973459727478852968));
 
+%!assert <*60711> (textscan('1,.,2', '%f', 'Delimiter', ','), {1});
+
 */
 
 // These tests have end-comment sequences, so can't just be in a comment
@@ -2648,23 +2682,23 @@
 
 DEFMETHOD (fwrite, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} fwrite (@var{fid}, @var{data})
-@deftypefnx {} {} fwrite (@var{fid}, @var{data}, @var{precision})
-@deftypefnx {} {} fwrite (@var{fid}, @var{data}, @var{precision}, @var{skip})
-@deftypefnx {} {} fwrite (@var{fid}, @var{data}, @var{precision}, @var{skip}, @var{arch})
-@deftypefnx {} {@var{count} =} fwrite (@dots{})
+@deftypefn  {} {@var{count} =} fwrite (@var{fid}, @var{data})
+@deftypefnx {} {@var{count} =} fwrite (@var{fid}, @var{data}, @var{precision})
+@deftypefnx {} {@var{count} =} fwrite (@var{fid}, @var{data}, @var{precision}, @var{skip})
+@deftypefnx {} {@var{count} =} fwrite (@var{fid}, @var{data}, @var{precision}, @var{skip}, @var{arch})
 Write data in binary form to the file specified by the file descriptor
-@var{fid}, returning the number of values @var{count} successfully written
-to the file.
-
-The argument @var{data} is a matrix of values that are to be written to
-the file.  The values are extracted in column-major order.
+@var{fid}.
+
+The argument @var{data} is a matrix of values that are to be written to the
+file.  The values are extracted in column-major order.
 
 The remaining arguments @var{precision}, @var{skip}, and @var{arch} are
 optional, and are interpreted as described for @code{fread}.
 
-The behavior of @code{fwrite} is undefined if the values in @var{data}
-are too large to fit in the specified precision.
+The output @var{count} is the number of data items successfully written.
+
+Programming Note: The behavior of @code{fwrite} is undefined if the values in
+@var{data} are too large to fit in the specified precision.
 @seealso{fread, fputs, fprintf, fopen}
 @end deftypefn */)
 {
@@ -2838,10 +2872,13 @@
 
 DEFMETHODX ("pclose", Fpclose, interp, args, ,
             doc: /* -*- texinfo -*-
-@deftypefn {} {} pclose (@var{fid})
-Close a file identifier that was opened by @code{popen}.
-
-The function @code{fclose} may also be used for the same purpose.
+@deftypefn {} {@var{status} =} pclose (@var{fid})
+Close a file identifier @var{fid} that was opened by @code{popen}.
+
+If successful, @code{fclose} returns 0, otherwise, it returns -1.
+
+Programming Note: The function @code{fclose} may also be used for the same
+purpose.
 @seealso{fclose, popen}
 @end deftypefn */)
 {
@@ -2853,6 +2890,51 @@
   return ovl (streams.remove (args(0), "pclose"));
 }
 
+DEFUN (tempdir, args, ,
+       doc: /* -*- texinfo -*-
+@deftypefn {} {@var{dir} =} tempdir ()
+Return the name of the host system's directory for temporary files.
+
+The directory name is taken first from the environment variable @env{TMPDIR}.
+If that does not exist, the environment variable @env{TMP} (and on Windows
+platforms also with higher priority the environment variable @env{TEMP}) is
+checked.  If none of those are set, the system default returned by
+@code{P_tmpdir} is used.
+@seealso{P_tmpdir, tempname, mkstemp, tmpfile}
+@end deftypefn */)
+{
+  int nargin = args.length ();
+
+  if (nargin > 0)
+    print_usage ();
+
+  std::string tmpdir = sys::env::get_temp_directory ();
+
+  if (! sys::file_ops::is_dir_sep (tmpdir.back ()))
+    tmpdir += sys::file_ops::dir_sep_str ();
+
+  return ovl (tmpdir);
+}
+
+/*
+%!assert (ischar (tempdir ()))
+
+%!test
+%! old_wstate = warning ("off");
+%! old_tmpdir = getenv ("TMPDIR");
+%! unwind_protect
+%!   setenv ("TMPDIR", "__MY_TMP_DIR__");
+%!   assert (tempdir (), ["__MY_TMP_DIR__" filesep()]);
+%! unwind_protect_cleanup
+%!   if (! isempty (old_tmpdir))
+%!     setenv ("TMPDIR", old_tmpdir);
+%!   else
+%!     unsetenv ("TMPDIR");
+%!   endif
+%!   warning (old_wstate);
+%! end_unwind_protect
+*/
+
 DEFUN (tempname, args, ,
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{fname} =} tempname ()
@@ -2882,8 +2964,6 @@
 
   if (nargin > 0)
     dir = args(0).xstring_value ("tempname: DIR must be a string");
-  else
-    dir = sys::env::getenv ("TMPDIR");
 
   std::string pfx ("oct-");
 
@@ -2966,15 +3046,15 @@
 
   octave_value_list retval;
 
-  FILE *fid = octave_tmpfile_wrapper ();
+  std::string tmpfile (sys::tempnam (sys::env::get_temp_directory (), "oct-"));
+
+  FILE *fid = sys::fopen_tmp (tmpfile, "w+b");
 
   if (fid)
     {
-      std::string nm;
-
       std::ios::openmode md = fopen_mode_to_ios_mode ("w+b");
 
-      stream s = stdiostream::create (nm, fid, md);
+      stream s = stdiostream::create (tmpfile, fid, md);
 
       if (! s)
         {
@@ -3101,7 +3181,7 @@
 
 DEFUNX ("umask", Fumask, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} umask (@var{mask})
+@deftypefn {} {@var{oldmask} =} umask (@var{mask})
 Set the permission mask for file creation.
 
 The parameter @var{mask} is an integer, interpreted as an octal number.
@@ -3146,7 +3226,7 @@
 
 DEFUNX ("P_tmpdir", FP_tmpdir, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} P_tmpdir ()
+@deftypefn {} {@var{sys_tmpdir} =} P_tmpdir ()
 Return the name of the host system's @strong{default} directory for
 temporary files.
 
@@ -3168,7 +3248,7 @@
 
 DEFUNX ("SEEK_SET", FSEEK_SET, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} SEEK_SET ()
+@deftypefn {} {@var{fseek_origin} =} SEEK_SET ()
 Return the numerical value to pass to @code{fseek} to position the file pointer
 relative to the beginning of the file.
 @seealso{SEEK_CUR, SEEK_END, fseek}
@@ -3179,7 +3259,7 @@
 
 DEFUNX ("SEEK_CUR", FSEEK_CUR, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} SEEK_CUR ()
+@deftypefn {} {@var{fseek_origin} =} SEEK_CUR ()
 Return the numerical value to pass to @code{fseek} to position the file pointer
 relative to the current position.
 @seealso{SEEK_SET, SEEK_END, fseek}
@@ -3190,7 +3270,7 @@
 
 DEFUNX ("SEEK_END", FSEEK_END, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} SEEK_END ()
+@deftypefn {} {@var{fseek_origin} =} SEEK_END ()
 Return the numerical value to pass to @code{fseek} to position the file pointer
 relative to the end of the file.
 @seealso{SEEK_SET, SEEK_CUR, fseek}
@@ -3211,7 +3291,7 @@
 
 DEFMETHODX ("stdin", Fstdin, interp, args, ,
             doc: /* -*- texinfo -*-
-@deftypefn {} {} stdin ()
+@deftypefn {} {@var{fid} =} stdin ()
 Return the numeric value corresponding to the standard input stream.
 
 When Octave is used interactively, stdin is filtered through the command
@@ -3226,7 +3306,7 @@
 
 DEFMETHODX ("stdout", Fstdout, interp, args, ,
             doc: /* -*- texinfo -*-
-@deftypefn {} {} stdout ()
+@deftypefn {} {@var{fid} =} stdout ()
 Return the numeric value corresponding to the standard output stream.
 
 Data written to the standard output may be filtered through the pager.
@@ -3240,7 +3320,7 @@
 
 DEFMETHODX ("stderr", Fstderr, interp, args, ,
             doc: /* -*- texinfo -*-
-@deftypefn {} {} stderr ()
+@deftypefn {} {@var{fid} =} stderr ()
 Return the numeric value corresponding to the standard error stream.
 
 Even if paging is turned on, the standard error is not sent to the pager.
@@ -3253,24 +3333,4 @@
   return const_value ("stderr", args, streams.stderr_file ());
 }
 
-// Deprecated variables and functions.
-
-// Remove when corresponding global deprecated function is removed.
-void mark_for_deletion_deprecated (const std::string& file)
-{
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("mark_for_deletion");
-
-  interp.mark_for_deletion (file);
-}
-
-// Remove when corresponding global deprecated function is removed.
-void cleanup_tmp_files_deprecated (void)
-{
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("cleanup_tmp_files");
-
-  interp.cleanup_tmp_files ();
-}
-
 OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/file-io.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/file-io.h	Tue Nov 15 13:15:28 2022 -0800
@@ -23,43 +23,9 @@
 //
 ////////////////////////////////////////////////////////////////////////
 
-// Written by John C. Campbell <jcc@bevo.che.wisc.edu>
-
 #if ! defined (octave_file_io_h)
 #define octave_file_io_h 1
 
-#include "octave-config.h"
-
-#include <string>
-
-OCTAVE_NAMESPACE_BEGIN
-
-// Use this function internally until the function that uses it is
-// removed.  Remove when corresponding global deprecated function is
-// removed.
-extern void mark_for_deletion_deprecated (const std::string&);
-
-// Use this function internally until the function that uses it is
-// removed.  Remove when corresponding global deprecated function is
-// removed.
-extern void cleanup_tmp_files_deprecated (void);
-
-OCTAVE_NAMESPACE_END
-
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-
-OCTAVE_DEPRECATED (6, "use 'interpreter::mark_for_deletion' instead")
-inline void mark_for_deletion (const std::string& fname)
-{
-  octave::mark_for_deletion_deprecated (fname);
-}
-
-OCTAVE_DEPRECATED (6, "use 'interpreter::cleanup_tmp_files' instead")
-inline void cleanup_tmp_files (void)
-{
-  octave::cleanup_tmp_files_deprecated ();
-}
+#warning "file-io.h was deprecated in Octave 8 and will be removed in a future version."
 
 #endif
-
-#endif
--- a/libinterp/corefcn/filter.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/filter.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -106,6 +106,8 @@
   if (a_len <= 1 && si_len <= 0)
     return b(0) * x;
 
+  // Here onwards, either a_len > 1 or si_len >= 1 or both.
+
   y.resize (x_dims, 0.0);
 
   octave_idx_type x_stride = 1;
@@ -113,29 +115,69 @@
     x_stride *= x_dims(i);
 
   octave_idx_type x_num = x_dims.numel () / x_len;
+  // For deconv and fftfilt, x_num seems to always be 1.
+  // For directly calling filter, it can be more than 1.
+
   for (octave_idx_type num = 0; num < x_num; num++)
     {
-      octave_idx_type x_offset;
-      if (x_stride == 1)
-        x_offset = num * x_len;
-      else
-        {
-          x_offset = num;
-          octave_idx_type n_strides = num / x_stride;
-          x_offset += n_strides * x_stride * (x_len - 1);
-        }
+      octave_idx_type x_offset = (x_stride == 1) ? num * x_len
+                         : num + (num / x_stride) * x_stride * (x_len - 1);
+
       octave_idx_type si_offset = num * si_len;
 
+      // Try to achieve a balance between speed and interruptibility.
+      //
+      // One extreme is to not check for interruptions at all, which gives
+      // good speed but the user cannot use Ctrl-C for the whole duration.
+      // The other end is to check frequently from inside an inner loop,
+      // which slows down performance by 5X or 6X.
+      //
+      // Putting any sort of check in an inner loop seems to prevent the
+      // compiler from optimizing the loop, so we cannot say "check for
+      // interruptions every M iterations" using an if-statement.
+      //
+      // This is a compromise approach to split the total numer of loop
+      // executions into num_outer and num_inner, to provide periodic checks
+      // for interruptions without writing a conditional inside a tight loop.
+      //
+      // To make it more interruptible and run more slowly, reduce num_inner.
+      // To speed it up but make it less interruptible, increase it.
+      // May need to increase it slowly over time as computers get faster.
+      // The aim is to not lose Ctrl-C ability for longer than about 2 seconds.
+      //
+      // In December 2021, num_inner = 100000 is acceptable.
+
+      octave_idx_type num_execs = si_len-1; // 0 to num_execs-1
+      octave_idx_type num_inner = 100000;
+      octave_idx_type num_outer = num_execs / num_inner;
+
+      // The following if-else block depends on a_len and si_len,
+      // both of which are loop invariants in this 0 <= num < x_num loop.
+      // But x_num is so small in practice that using the if-else inside
+      // the loop has more benefits than duplicating the outer for-loop,
+      // even though the checks are on loop invariants.
+
+      // We cannot have a_len <= 1 AND si_len <= 0 because that case already
+      // returned above. This means exactly one of the following blocks
+      // inside the if-conditional will be obeyed: it is not possible for the
+      // if-block and the else-block to *both* skip. Therefore any code that
+      // is common to both branches can be pulled out here without affecting
+      // correctness or speed.
+
+      T *py = y.fortran_vec ();
+      T *psi = si.fortran_vec ();
+      const T *pb = b.data ();
+      const T *px = x.data ();
+      psi += si_offset;
+
       if (a_len > 1)
         {
-          T *py = y.fortran_vec ();
-          T *psi = si.fortran_vec ();
+          const T *pa = a.data ();
 
-          const T *pa = a.data ();
-          const T *pb = b.data ();
-          const T *px = x.data ();
-
-          psi += si_offset;
+          // Usually the last element to be written will be si_len-1
+          // but if si_len is 0, then we need the 0th element to be written.
+          // Pulling this check out of the for-loop makes it run faster.
+          octave_idx_type iidx = (si_len > 0) ? si_len-1 : 0;
 
           for (octave_idx_type i = 0, idx = x_offset;
                i < x_len;
@@ -143,34 +185,27 @@
             {
               py[idx] = psi[0] + pb[0] * px[idx];
 
-              if (si_len > 0)
+              // Outer and inner loops for interruption management
+              for (octave_idx_type u = 0; u <= num_outer; u++)
                 {
-                  for (octave_idx_type j = 0; j < si_len - 1; j++)
-                    {
-                      octave_quit ();
-
-                      psi[j] = psi[j+1] - pa[j+1] * py[idx] + pb[j+1] * px[idx];
-                    }
+                  octave_idx_type lo = u * num_inner;
+                  octave_idx_type hi = (lo + num_inner < num_execs-1)
+                                     ? lo + num_inner : num_execs-1;
 
-                  psi[si_len-1] = pb[si_len] * px[idx] - pa[si_len] * py[idx];
+                  // Inner loop, no interruption
+                  for (octave_idx_type j = lo; j <= hi; j++)
+                    psi[j] = psi[j+1] - pa[j+1] * py[idx] + pb[j+1] * px[idx];
+
+                  octave_quit();  // Check for interruptions
                 }
-              else
-                {
-                  octave_quit ();
 
-                  psi[0] = pb[si_len] * px[idx] - pa[si_len] * py[idx];
-                }
+              psi[iidx] = pb[si_len] * px[idx] - pa[si_len] * py[idx];
             }
         }
-      else if (si_len > 0)
+      else // a_len <= 1 ==> si_len MUST be > 0
         {
-          T *py = y.fortran_vec ();
-          T *psi = si.fortran_vec ();
-
-          const T *pb = b.data ();
-          const T *px = x.data ();
-
-          psi += si_offset;
+          // This else-block is almost the same as the above if-block,
+          // except for the absence of variable pa.
 
           for (octave_idx_type i = 0, idx = x_offset;
                i < x_len;
@@ -178,23 +213,21 @@
             {
               py[idx] = psi[0] + pb[0] * px[idx];
 
-              if (si_len > 1)
+              // Outer and inner loops for interruption management
+              for (octave_idx_type u = 0; u <= num_outer; u++)
                 {
-                  for (octave_idx_type j = 0; j < si_len - 1; j++)
-                    {
-                      octave_quit ();
-
-                      psi[j] = psi[j+1] + pb[j+1] * px[idx];
-                    }
+                  octave_idx_type lo = u * num_inner;
+                  octave_idx_type hi = (lo + num_inner < num_execs-1)
+                                     ? lo + num_inner : num_execs-1;
 
-                  psi[si_len-1] = pb[si_len] * px[idx];
+                  // Inner loop, no interruption
+                  for (octave_idx_type j = lo; j <= hi; j++)
+                    psi[j] = psi[j+1] + pb[j+1] * px[idx];
+
+                  octave_quit();  // Check for interruptions
                 }
-              else
-                {
-                  octave_quit ();
 
-                  psi[0] = pb[1] * px[idx];
-                }
+              psi[si_len-1] = pb[si_len] * px[idx];
             }
         }
     }
@@ -596,14 +629,16 @@
 
 %!assert (filter (1, ones (10,1) / 10, []), [])
 %!assert (filter (1, ones (10,1) / 10, zeros (0,10)), zeros (0,10))
-%!assert (filter (1, ones (10,1) / 10, single (1:5)), repmat (single (10), 1, 5))
+%!assert (filter (1, ones (10,1) / 10, single (1:5)),
+%!        repmat (single (10), 1, 5))
 
 ## Test using initial conditions
 %!assert (filter ([1, 1, 1], [1, 1], [1 2], [1, 1]), [2 2])
 %!assert (filter ([1, 1, 1], [1, 1], [1 2], [1, 1]'), [2 2])
 %!assert (filter ([1, 3], [1], [1 2; 3 4; 5 6], [4, 5]), [5 7; 6 10; 14 18])
 %!error filter ([1, 3], [1], [1 2; 3 4; 5 6], [4, 5]')
-%!assert (filter ([1, 3, 2], [1], [1 2; 3 4; 5 6], [1 0 0; 1 0 0], 2), [2 6; 3 13; 5 21])
+%!assert (filter ([1, 3, 2], [1], [1 2; 3 4; 5 6], [1 0 0; 1 0 0], 2),
+%!        [2 6; 3 13; 5 21])
 
 ## Test of DIM parameter
 %!test
--- a/libinterp/corefcn/find.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/find.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -54,7 +54,8 @@
     idx = nda.find ();
 
   // The maximum element is always at the end.
-  octave_idx_type iext = (idx.isempty () ? 0 : idx.xelem (idx.numel () - 1) + 1);
+  octave_idx_type iext = (idx.isempty () ? 0
+                                         : idx.xelem (idx.numel () - 1) + 1);
 
   switch (nargout)
     {
--- a/libinterp/corefcn/gcd.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/gcd.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -511,7 +511,8 @@
 /*
 %!assert (gcd (200, 300, 50, 35), 5)
 %!assert (gcd (int16 (200), int16 (300), int16 (50), int16 (35)), int16 (5))
-%!assert (gcd (uint64 (200), uint64 (300), uint64 (50), uint64 (35)), uint64 (5))
+%!assert (gcd (uint64 (200), uint64 (300), uint64 (50), uint64 (35)),
+%!        uint64 (5))
 %!assert (gcd (18-i, -29+3i), -3-4i)
 
 %!test
--- a/libinterp/corefcn/getgrent.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/getgrent.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -136,7 +136,7 @@
 
 DEFUN (setgrent, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} setgrent ()
+@deftypefn {} {[@var{status}, @var{msg}] =} setgrent ()
 Return the internal pointer to the beginning of the group database.
 @seealso{getgrent, endgrent}
 @end deftypefn */)
@@ -154,7 +154,7 @@
 
 DEFUN (endgrent, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} endgrent ()
+@deftypefn {} {[@var{status}, @var{msg}] =} endgrent ()
 Close the group database.
 @seealso{getgrent, setgrent}
 @end deftypefn */)
--- a/libinterp/corefcn/getpwent.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/getpwent.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -142,7 +142,7 @@
 
 DEFUN (setpwent, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} setpwent ()
+@deftypefn {} {[@var{status}, @var{msg}] =} setpwent ()
 Return the internal pointer to the beginning of the password database.
 @seealso{getpwent, endpwent}
 @end deftypefn */)
@@ -160,7 +160,7 @@
 
 DEFUN (endpwent, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} endpwent ()
+@deftypefn {} {[@var{status}, @var{msg}] =} endpwent ()
 Close the password database.
 @seealso{getpwent, setpwent}
 @end deftypefn */)
--- a/libinterp/corefcn/getrusage.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/getrusage.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -38,7 +38,7 @@
 
 DEFUN (getrusage, , ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} getrusage ()
+@deftypefn {} {@var{procstats} =} getrusage ()
 Return a structure containing a number of statistics about the current
 Octave process.
 
--- a/libinterp/corefcn/gl-render.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/gl-render.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1551,8 +1551,7 @@
   {
 #if defined (HAVE_OPENGL)
 
-    gh_manager& gh_mgr
-      = __get_gh_manager__ ("opengl_renderer::draw_axes_x_grid");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     int xstate = props.get_xstate ();
 
@@ -1748,8 +1747,7 @@
   {
 #if defined (HAVE_OPENGL)
 
-    gh_manager& gh_mgr
-      = __get_gh_manager__ ("opengl_renderer::draw_axes_y_grid");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     int ystate = props.get_ystate ();
 
@@ -1944,8 +1942,7 @@
   void
   opengl_renderer::draw_axes_z_grid (const axes::properties& props)
   {
-    gh_manager& gh_mgr
-      = __get_gh_manager__ ("opengl_renderer::draw_axes_z_grid");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     int zstate = props.get_zstate ();
 
@@ -2167,8 +2164,7 @@
                                     std::list<graphics_object>& obj_list)
   {
 #if defined (HAVE_OPENGL)
-    gh_manager& gh_mgr
-      = __get_gh_manager__ ("opengl_renderer::draw_axes_all_lights");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     Matrix children = props.get_all_children ();
 
@@ -3771,8 +3767,7 @@
 
         if (props.markerfacecolor_is ("auto"))
           {
-            gh_manager& gh_mgr
-              = __get_gh_manager__ ("opengl_renderer::draw_scatter");
+            gh_manager& gh_mgr = __get_gh_manager__ ();
             graphics_object go = gh_mgr.get_object (props.get___myhandle__ ());
             graphics_object ax = go.get_ancestor ("axes");
             const axes::properties& ax_props
@@ -4163,7 +4158,7 @@
   {
     int len = hlist.numel ();
 
-    gh_manager& gh_mgr = __get_gh_manager__ ("opengl_renderer::draw");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     for (int i = len-1; i >= 0; i--)
       {
@@ -4664,7 +4659,7 @@
   double
   opengl_renderer::points_to_pixels (const double val) const
   {
-    gh_manager& gh_mgr = __get_gh_manager__ ("opengl_renderer::points_to_pixels");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     // FIXME: Does making this static cause problems if figure is moved to a
     //        2nd monitor with a different value for "screenpixelsperinch"?
--- a/libinterp/corefcn/gl-render.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/gl-render.h	Tue Nov 15 13:15:28 2022 -0800
@@ -146,7 +146,8 @@
                               double p1, double p1N, double p2, double p2N,
                               int xyz, bool is_3D);
 
-    virtual void render_tickmarks (const Matrix& ticks, double lim1, double lim2,
+    virtual void render_tickmarks (const Matrix& ticks,
+                                   double lim1, double lim2,
                                    double p1, double p1N, double p2, double p2N,
                                    double dx, double dy, double dz,
                                    int xyz, bool doubleside);
--- a/libinterp/corefcn/gl2ps-print.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/gl2ps-print.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -42,7 +42,7 @@
 #include "file-ops.h"
 #include "lo-mappers.h"
 #include "oct-locbuf.h"
-#include "tmpfile-wrapper.h"
+#include "oct-env.h"
 #include "unistd-wrappers.h"
 #include "unistr-wrappers.h"
 #include "unwind-prot.h"
@@ -91,7 +91,7 @@
     {
       bool retval = false;
 
-      gh_manager& gh_mgr = __get_gh_manager__ ("gl2ps_renderer::has_alpha");
+      gh_manager& gh_mgr = __get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (h);
 
@@ -295,7 +295,7 @@
   {
     bool retval = true;
 
-    gh_manager& gh_mgr = __get_gh_manager__ ("gl2ps_renderer::has_2D_axes");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     graphics_object go = gh_mgr.get_object (h);
 
@@ -327,7 +327,7 @@
   {
     std::string retval;
 
-    gh_manager& gh_mgr = __get_gh_manager__ ("gl2ps_renderer::get_title");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     graphics_object go = gh_mgr.get_object (h);
 
@@ -396,7 +396,9 @@
           gl2ps_sort = GL2PS_NO_SORT;
 
         // Use a temporary file in case an overflow happens
-        FILE *tmpf = octave_tmpfile_wrapper ();
+        std::string tmpfile (sys::tempnam (sys::env::get_temp_directory (),
+                             "oct-"));
+        FILE *tmpf = sys::fopen_tmp (tmpfile, "w+b");
 
         if (! tmpf)
           error ("gl2ps_renderer::draw: couldn't open temporary file for printing");
@@ -1329,16 +1331,20 @@
       std::swap (vp_lim_min(1), vp_lim_max(1));
 
     float clip_xmin
-      = do_clip ? (vp_lim_min(0) > m_xmin ? vp_lim_min(0) : m_xmin) : vp_lim_min(0);
+      = do_clip ? (vp_lim_min(0) > m_xmin ? vp_lim_min(0) : m_xmin)
+                : vp_lim_min(0);
 
     float clip_ymin
-      = do_clip ? (vp_lim_min(1) > m_ymin ? vp_lim_min(1) : m_ymin) : vp_lim_min(1);
+      = do_clip ? (vp_lim_min(1) > m_ymin ? vp_lim_min(1) : m_ymin)
+                : vp_lim_min(1);
 
     float clip_xmax
-      = do_clip ? (vp_lim_max(0) < m_xmax ? vp_lim_max(0) : m_xmax) : vp_lim_max(0);
+      = do_clip ? (vp_lim_max(0) < m_xmax ? vp_lim_max(0) : m_xmax)
+                : vp_lim_max(0);
 
     float clip_ymax
-      = do_clip ? (vp_lim_max(1) < m_ymax ? vp_lim_max(1) : m_ymax) : vp_lim_max(1);
+      = do_clip ? (vp_lim_max(1) < m_ymax ? vp_lim_max(1) : m_ymax)
+                : vp_lim_max(1);
 
     if (im_xmin < clip_xmin)
       j0 += (clip_xmin - im_xmin)/nor_dx + 1;
--- a/libinterp/corefcn/graphics-toolkit.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/graphics-toolkit.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -36,7 +36,7 @@
   void
   base_graphics_toolkit::update (const graphics_handle& h, int id)
   {
-    gh_manager& gh_mgr = __get_gh_manager__ ("base_graphics_toolkit::update");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     graphics_object go = gh_mgr.get_object (h);
 
@@ -46,8 +46,7 @@
   bool
   base_graphics_toolkit::initialize (const graphics_handle& h)
   {
-    gh_manager& gh_mgr
-      = __get_gh_manager__ ("base_graphics_toolkit::initialize");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     graphics_object go = gh_mgr.get_object (h);
 
@@ -57,8 +56,7 @@
   void
   base_graphics_toolkit::finalize (const graphics_handle& h)
   {
-    gh_manager& gh_mgr
-      = __get_gh_manager__ ("base_graphics_toolkit::finalize");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     graphics_object go = gh_mgr.get_object (h);
 
--- a/libinterp/corefcn/graphics-toolkit.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/graphics-toolkit.h	Tue Nov 15 13:15:28 2022 -0800
@@ -284,12 +284,4 @@
   };
 }
 
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-OCTAVE_DEPRECATED (6, "use 'octave::graphics_toolkit' instead")
-typedef octave::graphics_toolkit graphics_toolkit;
-
-OCTAVE_DEPRECATED (6, "use 'octave::base_graphics_toolkit' instead")
-typedef octave::base_graphics_toolkit base_graphics_toolkit;
 #endif
-
-#endif
--- a/libinterp/corefcn/graphics.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/graphics.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -224,8 +224,7 @@
 static double
 default_screendepth (void)
 {
-  octave::display_info& dpy_info
-    = octave::__get_display_info__ ("default_screendepth");
+  octave::display_info& dpy_info = octave::__get_display_info__ ();
 
   return dpy_info.depth ();
 }
@@ -235,8 +234,7 @@
 {
   Matrix retval (1, 4);
 
-  octave::display_info& dpy_info
-    = octave::__get_display_info__ ("default_screensize");
+  octave::display_info& dpy_info = octave::__get_display_info__ ();
 
   retval(0) = 1.0;
   retval(1) = 1.0;
@@ -249,8 +247,7 @@
 static double
 default_screenpixelsperinch (void)
 {
-  octave::display_info& dpy_info
-    = octave::__get_display_info__ ("default_screenpixelsperinch");
+  octave::display_info& dpy_info = octave::__get_display_info__ ();
 
   return (dpy_info.x_dpi () + dpy_info.y_dpi ()) / 2;
 }
@@ -538,8 +535,7 @@
 static std::string
 default_graphics_toolkit (void)
 {
-  octave::gtk_manager& gtk_mgr
-    = octave::__get_gtk_manager__ ("default_graphics_toolkit");
+  octave::gtk_manager& gtk_mgr = octave::__get_gtk_manager__ ();
 
   return gtk_mgr.default_toolkit ();
 }
@@ -626,7 +622,7 @@
                       bool call_createfcn = true,
                       bool notify_toolkit = true)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("make_graphics_handle");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   return gh_mgr.make_graphics_handle (go_name, parent, integer_figure_handle,
                                       call_createfcn, notify_toolkit);
@@ -838,7 +834,7 @@
                        const caseless_str& from_units,
                        const caseless_str& to_units)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("convert_text_position");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (props.get___myhandle__ ());
 
@@ -928,7 +924,7 @@
 static Matrix
 screen_size_pixels (void)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("scren_size_pixels");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object obj = gh_mgr.get_object (0);
 
@@ -943,7 +939,7 @@
 {
   double retval = 1.0;
 
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("device_pixel_ratio");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object fig = gh_mgr.get_object (h).get_ancestor ("figure");
 
@@ -1008,7 +1004,7 @@
   Matrix cmap (1, 3, 0.0);
   Matrix clim (1, 2, 0.0);
 
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("convert_cdata");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (props.get___myhandle__ ());
   graphics_object ax = go.get_ancestor ("axes");
@@ -1264,8 +1260,7 @@
       // Notify graphics toolkit.
       if (m_id >= 0 && do_notify_toolkit)
         {
-          gh_manager& gh_mgr
-            = octave::__get_gh_manager__ ("base_property::set");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           graphics_object go = gh_mgr.get_object (m_parent);
           if (go)
@@ -1287,8 +1282,7 @@
 {
   const octave_value_list& l = m_listeners[mode];
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_property::run_listeners");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   for (int i = 0; i < l.length (); i++)
     gh_mgr.execute_listener (m_parent, l(i));
@@ -1789,7 +1783,7 @@
   double dv = v.xdouble_value (R"(set: invalid graphics handle for property "%s")",
                                get_name ().c_str ());
 
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("handle_property::do_set");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_handle gh = gh_mgr.lookup (dv);
 
@@ -1851,8 +1845,7 @@
   Matrix retval (m_children_list.size (), 1);
   octave_idx_type k = 0;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("children_property::do_get_children");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (0);
 
@@ -1888,8 +1881,7 @@
 void
 children_property::do_delete_children (bool clear, bool from_root)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("children_property::do_delete_children");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   if (from_root)
     {
@@ -1996,8 +1988,7 @@
 
       if (m_callback.is_defined () && ! m_callback.isempty ())
         {
-          gh_manager& gh_mgr
-            = octave::__get_gh_manager__ ("callback_property::execute");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           gh_mgr.execute_callback (get_parent (), m_callback, data);
         }
@@ -2135,7 +2126,7 @@
 static void
 finalize_r (const graphics_handle& h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("finalize_r");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -2153,7 +2144,7 @@
 static void
 initialize_r (const graphics_handle& h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("initialize_r");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -2247,8 +2238,7 @@
 {
   if (! is_handle_visible ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("figure::properties::update_handlevisibility");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       octave_value cf = gh_mgr.get_object (0).get ("currentfigure");
 
@@ -2274,7 +2264,7 @@
 static void
 update_text_pos (graphics_handle h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("update_text_pos");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -2879,7 +2869,7 @@
 static bool
 isfigure (double val)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("isfigure");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (val);
 
@@ -2982,7 +2972,7 @@
 xset (const graphics_handle& h, const caseless_str& pname,
       const octave_value& val)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("xset");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -2994,7 +2984,7 @@
 {
   if (args.length () > 0)
     {
-      gh_manager& gh_mgr = octave::__get_gh_manager__ ("xset");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (h);
 
@@ -3005,7 +2995,7 @@
 static octave_value
 xget (const graphics_handle& h, const caseless_str& pname)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("xget");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -3020,7 +3010,7 @@
   double hv = ov.xdouble_value ("%s: %s must be a graphics handle",
                                 who.c_str (), pname.c_str ());
 
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("reparent");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_handle h = gh_mgr.lookup (hv);
 
@@ -3069,8 +3059,7 @@
 {
   if (h.ok ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("delete_graphics_object");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (h);
 
@@ -3090,7 +3079,7 @@
 static void
 delete_graphics_object (double val, bool from_root = false)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("delete_graphics_object");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   delete_graphics_object (gh_mgr.lookup (val), from_root || isfigure (val));
 }
@@ -3113,7 +3102,7 @@
 {
   octave_value closerequestfcn = xget (h, "closerequestfcn");
 
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("close_figure");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   gh_mgr.execute_callback (h, closerequestfcn);
 }
@@ -3177,7 +3166,7 @@
 static void
 adopt (const graphics_handle& parent_h, const graphics_handle& h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("adopt");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (parent_h);
 
@@ -3193,7 +3182,7 @@
 static bool
 ishghandle (double val)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("ishghandle");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_handle h = gh_mgr.lookup (val);
 
@@ -3225,7 +3214,7 @@
 static void
 xcreatefcn (const graphics_handle& h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("xcreatefcn");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -3235,7 +3224,7 @@
 static void
 xinitialize (const graphics_handle& h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("xinitialize");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -3267,8 +3256,7 @@
 xreset_default_properties (graphics_handle h,
                            property_list::pval_map_type factory_pval)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("xreset_default_properties");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -3431,8 +3419,7 @@
   if (hp == m___myhandle__)
     error ("set: can not set object parent to be object itself");
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::set_parent");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_handle new_parent = gh_mgr.lookup (hp);
   if (! new_parent.ok ())
@@ -3481,8 +3468,7 @@
 
   // Attempt to mark parent object as modified if it exists
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::mark_modified");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -3493,8 +3479,7 @@
 void
 base_properties::override_defaults (base_graphics_object& obj)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::override_defaults");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -3505,8 +3490,7 @@
 void
 base_properties::update_axis_limits (const std::string& axis_type) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::update_axis_limits");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (m___myhandle__);
 
@@ -3518,8 +3502,7 @@
 base_properties::update_axis_limits (const std::string& axis_type,
                                      const graphics_handle& h) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::update_axis_limits");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (m___myhandle__);
 
@@ -3533,8 +3516,7 @@
   if (m_contextmenu.get ().isempty ())
     return;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::update_contextmenu");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (m_contextmenu.get ());
 
@@ -3556,8 +3538,7 @@
 octave::graphics_toolkit
 base_properties::get_toolkit (void) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::get_toolkit");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_parent ());
 
@@ -3572,8 +3553,7 @@
 {
   Matrix kids = get_children ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::update_boundingbox");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   for (int i = 0; i < kids.numel (); i++)
     {
@@ -3587,8 +3567,7 @@
 void
 base_properties::update_autopos (const std::string& elem_type)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::update_autopos");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -3604,8 +3583,7 @@
 
   // This object should not be the figure "currentobject"
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::update_handlevisibility");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go (gh_mgr.get_object (get___myhandle__ ()));
 
@@ -3690,8 +3668,7 @@
                                        bool traverse,
                                        std::list<graphics_object>& children_list) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_properties::get_children_of_type");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   Matrix ch = get_children ();
 
@@ -3724,8 +3701,7 @@
   if (! valid_object ())
     error ("base_graphics_object::update_axis_limits: invalid graphics object");
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_graphics_object::update_axis_limits");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -3740,8 +3716,7 @@
   if (! valid_object ())
     error ("base_graphics_object::update_axis_limits: invalid graphics object");
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_graphics_object::update_axis_limits");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -3775,8 +3750,7 @@
         }
       catch (const octave::execution_exception&)
         {
-          octave::interpreter& interp
-            = octave::__get_interpreter__ ("remove_all_listeners");
+          octave::interpreter& interp = octave::__get_interpreter__ ();
 
           interp.recover_from_exception ();
         }
@@ -3801,8 +3775,7 @@
         }
     }
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_graphics_object::build_user_defaults_map");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -3815,8 +3788,7 @@
 {
   if (valid_object ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("base_graphics_object::reset_default_properties");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       property_list::pval_map_type factory_pval
         = gh_mgr.get_object (0).get_factory_defaults_list ().find (type ())->second;
@@ -3835,8 +3807,7 @@
   std::string retval;
   octave_map m = get ().map_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_graphics_object::values_as_string");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_handle ());
 
@@ -3870,8 +3841,7 @@
   if (! valid_object ())
     error ("base_graphics_object::value_as_string: invalid graphics object");
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_graphics_object::value_as_string");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_handle ());
 
@@ -3902,8 +3872,7 @@
 
   octave_scalar_map m = get ().scalar_map_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_graphics_object::values_as_struct");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_handle ());
 
@@ -3956,8 +3925,7 @@
         return *this;
       else
         {
-          gh_manager& gh_mgr
-            = octave::__get_gh_manager__ ("graphics_object::get_ancestor");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           return gh_mgr.get_object (get_parent ()).get_ancestor (obj_type);
         }
@@ -3996,8 +3964,7 @@
 
       if (val.ok ())
         {
-          gh_manager& gh_mgr
-            = octave::__get_gh_manager__ ("root_figure::properties::set_currentfigure");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           gh_mgr.push_figure (val);
         }
@@ -4013,8 +3980,7 @@
     {
       bool int_fig_handle = m_integerhandle.is_on ();
 
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("figure::properties::set_integerhandle");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object this_go = gh_mgr.get_object (m___myhandle__);
 
@@ -4136,7 +4102,8 @@
 %!   set (0, "units", "pixels");
 %!   assert (get (0, "screensize"), sz + [1, 1, 0, 0]);
 %!   set (0, "units", "characters");
-%!   assert (get (0, "screensize"), sz / dpi * (74.951 / 12.0), 0.5 / dpi * (74.951 / 12.0));
+%!   assert (get (0, "screensize"),
+%!           sz / dpi * (74.951 / 12.0), 0.5 / dpi * (74.951 / 12.0));
 %! unwind_protect_cleanup
 %!   set (0, "units", old_units);
 %! end_unwind_protect
@@ -4145,8 +4112,7 @@
 void
 root_figure::properties::remove_child (const graphics_handle& h, bool)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("root_figure::properties::remove_child");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   gh_mgr.pop_figure (h);
 
@@ -4192,8 +4158,7 @@
 
       Matrix kids = get_children ();
 
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("root_figure::properties::remove_child");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       for (octave_idx_type i = 0; i < kids.numel (); i++)
         {
@@ -4235,8 +4200,7 @@
 
   std::string nm = val.string_value ();
 
-  octave::gtk_manager& gtk_mgr
-    = octave::__get_gtk_manager__ ("figure::properties::set___graphics_toolkit__");
+  octave::gtk_manager& gtk_mgr = octave::__get_gtk_manager__ ();
 
   octave::graphics_toolkit b = gtk_mgr.find_toolkit (nm);
 
@@ -4257,8 +4221,7 @@
 
   if (! get_currentaxes ().ok ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("figure::properties::adopt");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (h);
 
@@ -4388,8 +4351,7 @@
     {
       if (old_bb(2) != new_bb(2) || old_bb(3) != new_bb(3))
         {
-          gh_manager& gh_mgr
-            = octave::__get_gh_manager__ ("figure::properties::set_position");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           if (! get_resizefcn ().isempty ())
             gh_mgr.post_callback (m___myhandle__, "resizefcn");
@@ -5082,7 +5044,7 @@
     {
       graphics_handle parent_h = get_parent ();
 
-      gh_manager& gh_mgr = octave::__get_gh_manager__ ("figure::get_default");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object parent_go = gh_mgr.get_object (parent_h);
 
@@ -5188,7 +5150,8 @@
                    yaxislocation_is ("origin"),
                    m_xscale.is ("log") ? 2 : (xaxislocation_is ("origin") ? 0 :
                    (xaxislocation_is ("bottom") ? -1 : 1)), m_ylim);
-  calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"), false, 2, m_zlim);
+  calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"),
+                   false, 2, m_zlim);
 
   xset (m_xlabel.handle_value (), "handlevisibility", "off");
   xset (m_ylabel.handle_value (), "handlevisibility", "off");
@@ -5274,8 +5237,7 @@
 {
   Matrix pos = init_pos;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::calc_tightbox");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_parent ());
 
@@ -5413,8 +5375,7 @@
 
   graphics_handle val;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::set_text_child");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (gh_mgr.lookup (v));
 
@@ -5500,11 +5461,11 @@
   // FIXME: Should this have all properties in it?
   // Including ones we do don't implement?
 
-  // FIXME: This function is probably never called without mode == "reset"
-  //        Check that this is the case with an assert statement (1/6/2017).
+  // FIXME: This function is probably never called without mode == "reset".
+  //        Verify this is the case with error_unless() (1/6/2017).
   //        If there are reports of problems then figure out what code is
   //        calling it with the mode set to something else.
-  assert (mode == "reset");
+  error_unless (mode == "reset");
 
   Matrix tlim (1, 2, 0.0);
   tlim(1) = 1;
@@ -5642,8 +5603,7 @@
 
   m_visible = "on";
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::set_defaults");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (m_xlabel.handle_value ());
   go.reset_default_properties ();
@@ -5709,8 +5669,7 @@
 {
   if (m___colormap__.get ().isempty ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("axes::properties::get_colormap");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go (gh_mgr.get_object (get___myhandle__ ()));
       graphics_object go_f (go.get_ancestor ("figure"));
@@ -5727,8 +5686,7 @@
 {
   graphics_handle h = hp.handle_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::delete_text_child");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   if (h.ok ())
     {
@@ -5756,8 +5714,7 @@
 void
 axes::properties::remove_child (const graphics_handle& h, bool from_root)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::remove_child");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -5793,7 +5750,7 @@
 void
 axes::properties::adopt (const graphics_handle& h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("axes::properties::adopt");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go (gh_mgr.get_object (h));
 
@@ -6463,8 +6420,7 @@
   if (updating_xlabel_position)
     return;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::update_xlabel_position");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_xlabel ());
 
@@ -6484,7 +6440,8 @@
       if (xlabel_props.horizontalalignmentmode_is ("auto"))
         {
           xlabel_props.set_horizontalalignment
-            (m_xstate > AXE_DEPTH_DIR ? "center" : (m_xyzSym ? "left" : "right"));
+            (m_xstate > AXE_DEPTH_DIR ? "center"
+                                      : (m_xyzSym ? "left" : "right"));
 
           xlabel_props.set_horizontalalignmentmode ("auto");
         }
@@ -6567,8 +6524,7 @@
   if (updating_ylabel_position)
     return;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::update_ylabel_position");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_ylabel ());
 
@@ -6588,7 +6544,8 @@
       if (ylabel_props.horizontalalignmentmode_is ("auto"))
         {
           ylabel_props.set_horizontalalignment
-            (m_ystate > AXE_DEPTH_DIR ? "center" : (! m_xyzSym ? "left" : "right"));
+            (m_ystate > AXE_DEPTH_DIR ? "center"
+                                      : (! m_xyzSym ? "left" : "right"));
 
           ylabel_props.set_horizontalalignmentmode ("auto");
         }
@@ -6671,8 +6628,7 @@
   if (updating_zlabel_position)
     return;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::update_zlabel_position");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_zlabel ());
 
@@ -6798,8 +6754,7 @@
   if (updating_title_position)
     return;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::update_title_position");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get_title ());
 
@@ -7010,8 +6965,7 @@
 axes::properties::update_label_color (handle_property label,
                                       color_property col)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::update_label_color");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   gh_mgr.get_object (label.handle_value ()).set ("color", col.get ());
 }
@@ -7019,8 +6973,7 @@
 void
 axes::properties::update_font (std::string prop)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::update_font");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   if (! prop.empty ())
     {
@@ -7064,8 +7017,7 @@
 
   if (parent_size.isempty ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("axes::properties::get_boundingbox");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (get_parent ());
 
@@ -7120,8 +7072,7 @@
           else if (i == 3)
             htext = get_zlabel ();
 
-          gh_manager& gh_mgr
-            = octave::__get_gh_manager__ ("axes::properties::get_extent");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           text::properties& text_props
             = reinterpret_cast<text::properties&>
@@ -7339,8 +7290,7 @@
 void
 axes::properties::update_units (const caseless_str& old_units)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("axes::properties::update_units");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -7452,8 +7402,7 @@
     {
       graphics_handle parent_h = get_parent ();
 
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("axes::properties::get_default");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object parent_go = gh_mgr.get_object (parent_h);
 
@@ -7780,7 +7729,8 @@
 Matrix
 axes::properties::get_axis_limits (double xmin, double xmax,
                                    double min_pos, double max_neg,
-                                   const bool logscale)
+                                   const bool logscale,
+                                   const std::string& method)
 {
   Matrix retval;
 
@@ -7832,17 +7782,38 @@
                   max_val *= 0.9;
                 }
             }
-          if (min_val > 0)
-            {
-              // Log plots with all positive data
-              min_val = std::pow (10, std::floor (log10 (min_val)));
-              max_val = std::pow (10, std::ceil (log10 (max_val)));
-            }
-          else
-            {
-              // Log plots with all negative data
-              min_val = -std::pow (10, std::ceil (log10 (-min_val)));
-              max_val = -std::pow (10, std::floor (log10 (-max_val)));
+
+          if (method == "tickaligned")
+            {
+              if (min_val > 0)
+                {
+                  // Log plots with all positive data
+                  min_val = std::pow (10, std::floor (log10 (min_val)));
+                  max_val = std::pow (10, std::ceil (log10 (max_val)));
+                }
+              else
+                {
+                  // Log plots with all negative data
+                  min_val = -std::pow (10, std::ceil (log10 (-min_val)));
+                  max_val = -std::pow (10, std::floor (log10 (-max_val)));
+                }
+            }
+          else if (method == "padded")
+            {
+              if (min_val > 0)
+                {
+                  // Log plots with all positive data
+                  double pad = (log10 (max_val) - log10 (min_val)) * 0.07;
+                  min_val = std::pow (10, log10 (min_val) - pad);
+                  max_val = std::pow (10, log10 (max_val) + pad);
+                }
+              else
+                {
+                  // Log plots with all negative data
+                  double pad = (log10 (-min_val) - log10 (-max_val)) * 0.07;
+                  min_val = -std::pow (10, log10 (-min_val) + pad);
+                  max_val = -std::pow (10, log10 (-max_val) - pad);
+                }
             }
         }
       else
@@ -7860,12 +7831,21 @@
               max_val += 0.1 * std::abs (max_val);
             }
 
-          double tick_sep = calc_tick_sep (min_val, max_val);
-          double min_tick = std::floor (min_val / tick_sep);
-          double max_tick = std::ceil (max_val / tick_sep);
-          // Prevent round-off from cropping ticks
-          min_val = std::min (min_val, tick_sep * min_tick);
-          max_val = std::max (max_val, tick_sep * max_tick);
+          if (method == "tickaligned")
+            {
+              double tick_sep = calc_tick_sep (min_val, max_val);
+              double min_tick = std::floor (min_val / tick_sep);
+              double max_tick = std::ceil (max_val / tick_sep);
+              // Prevent round-off from cropping ticks
+              min_val = std::min (min_val, tick_sep * min_tick);
+              max_val = std::max (max_val, tick_sep * max_tick);
+            }
+          else if (method == "padded")
+            {
+              double pad = 0.07 * (max_val - min_val);
+              min_val -= pad;
+              max_val += pad;
+            }
         }
     }
 
@@ -8072,6 +8052,21 @@
 %! unwind_protect_cleanup
 %!   delete (hf);
 %! end_unwind_protect
+
+## Check that graphics objects with hidden handle visibility are included in
+## axis limit calculation.
+%!test <*63095>
+%! hf = figure ("visible", "off");
+%! unwind_protect
+%!   hax = axes ("parent", hf);
+%!   plot (hax, [0, 1]);
+%!   assert (get (hax, "ylim"), [0, 1]);
+%!   hold (hax, "on");
+%!   plot (hax, [2, 0], "handlevisibility", "off");
+%!   assert (get (hax, "ylim"), [0, 2]);
+%! unwind_protect_cleanup
+%!   delete (hf);
+%! end_unwind_protect
 */
 
 void
@@ -8080,13 +8075,16 @@
                                        array_property& mticks,
                                        bool limmode_is_auto,
                                        bool tickmode_is_auto,
-                                       bool is_logscale)
+                                       bool is_logscale,
+                                       bool method_is_padded,
+                                       bool method_is_tight)
 {
   if (lims.get ().isempty ())
     return;
 
   double lo = (lims.get ().matrix_value ())(0);
   double hi = (lims.get ().matrix_value ())(1);
+
   double lo_lim = lo;
   double hi_lim = hi;
   bool is_negative = lo < 0 && hi < 0;
@@ -8130,17 +8128,28 @@
 
       if (limmode_is_auto)
         {
-          // Adjust limits to include min and max ticks
           Matrix tmp_lims (1, 2);
-          tmp_lims(0) = std::min (tick_sep * i1, lo);
-          tmp_lims(1) = std::max (tick_sep * i2, hi);
+
+          if (! method_is_padded && ! method_is_tight)
+            {
+              // Adjust limits to include min and max ticks
+              tmp_lims(0) = std::min (tick_sep * i1, lo);
+              tmp_lims(1) = std::max (tick_sep * i2, hi);
+            }
+          else
+            {
+              tmp_lims(0) = lo;
+              tmp_lims(1) = hi;
+            }
 
           if (is_logscale)
             {
               tmp_lims(0) = std::pow (10., tmp_lims(0));
               tmp_lims(1) = std::pow (10., tmp_lims(1));
+
               if (tmp_lims(0) <= 0)
                 tmp_lims(0) = std::pow (10., lo);
+
               if (is_negative)
                 {
                   double tmp = tmp_lims(0);
@@ -8148,6 +8157,7 @@
                   tmp_lims(1) = -tmp;
                 }
             }
+
           lims = tmp_lims;
         }
       else
@@ -8360,8 +8370,7 @@
 
           if (m_txt_renderer.ok ())
             {
-              gh_manager& gh_mgr
-                = octave::__get_gh_manager__ ("axes::properties::get_ticklabel_extents");
+              gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
               octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -8395,7 +8404,7 @@
 {
   octave_idx_type n = kids.numel ();
 
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("get_children_limits");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   switch (limit_type)
     {
@@ -8516,9 +8525,11 @@
         {
           get_children_limits (min_val, max_val, min_pos, max_neg, kids, 'x');
 
+          std::string method = m_properties.get_xlimitmethod ();
           limits = m_properties.get_axis_limits (min_val, max_val,
                                                  min_pos, max_neg,
-                                                 m_properties.xscale_is ("log"));
+                                                 m_properties.xscale_is ("log"),
+                                                 method);
         }
       else
         m_properties.check_axis_limits (limits, kids,
@@ -8537,9 +8548,11 @@
         {
           get_children_limits (min_val, max_val, min_pos, max_neg, kids, 'y');
 
+          std::string method = m_properties.get_ylimitmethod ();
           limits = m_properties.get_axis_limits (min_val, max_val,
                                                  min_pos, max_neg,
-                                                 m_properties.yscale_is ("log"));
+                                                 m_properties.yscale_is ("log"),
+                                                 method);
         }
       else
         m_properties.check_axis_limits (limits, kids,
@@ -8561,9 +8574,11 @@
           m_properties.set_has3Dkids ((max_val - min_val) >
                                       std::numeric_limits<double>::epsilon ());
 
+          std::string method = m_properties.get_zlimitmethod ();
           limits = m_properties.get_axis_limits (min_val, max_val,
                                                  min_pos, max_neg,
-                                                 m_properties.zscale_is ("log"));
+                                                 m_properties.zscale_is ("log"),
+                                                 method);
         }
       else
         {
@@ -8696,7 +8711,7 @@
           != updating_aspectratios.end ()))
     return;
 
-  Matrix kids = m_properties.get_children ();
+  Matrix kids = m_properties.get_all_children ();
 
   double min_val = octave::numeric_limits<double>::Inf ();
   double max_val = -octave::numeric_limits<double>::Inf ();
@@ -8716,9 +8731,11 @@
         {
           get_children_limits (min_val, max_val, min_pos, max_neg, kids, 'x');
 
+          std::string method = m_properties.get_xlimitmethod ();
           limits = m_properties.get_axis_limits (min_val, max_val,
                                                  min_pos, max_neg,
-                                                 m_properties.xscale_is ("log"));
+                                                 m_properties.xscale_is ("log"),
+                                                 method);
         }
       else
         {
@@ -8739,9 +8756,11 @@
         {
           get_children_limits (min_val, max_val, min_pos, max_neg, kids, 'y');
 
+          std::string method = m_properties.get_ylimitmethod ();
           limits = m_properties.get_axis_limits (min_val, max_val,
                                                  min_pos, max_neg,
-                                                 m_properties.yscale_is ("log"));
+                                                 m_properties.yscale_is ("log"),
+                                                 method);
         }
       else
         {
@@ -8771,9 +8790,11 @@
               && ! m_properties.zscale_is ("log"))
             min_val = max_val = 0.;
 
+          std::string method = m_properties.get_zlimitmethod ();
           limits = m_properties.get_axis_limits (min_val, max_val,
                                                  min_pos, max_neg,
-                                                 m_properties.zscale_is ("log"));
+                                                 m_properties.zscale_is ("log"),
+                                                 method);
         }
       else
         {
@@ -9268,8 +9289,7 @@
 {
   if (! is_handle_visible ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("axes::properties::update_handlevisibility");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go (gh_mgr.get_object (get___myhandle__ ()));
 
@@ -9296,8 +9316,7 @@
 void
 figure::properties::init_toolkit (void)
 {
-  octave::gtk_manager& gtk_mgr
-    = octave::__get_gtk_manager__ ("figure::properties::init_toolkit");
+  octave::gtk_manager& gtk_mgr = octave::__get_gtk_manager__ ();
 
   m_toolkit = gtk_mgr.get_toolkit ();
 }
@@ -9500,8 +9519,7 @@
 
   if (new_units == "normalized" || old_units == "normalized")
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("text::properties::update_fontunits");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go (gh_mgr.get_object (get___myhandle__ ()));
 
@@ -9520,8 +9538,7 @@
 {
   double dpr = device_pixel_ratio (get___myhandle__ ());
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("text::properties::update_font");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -9566,8 +9583,7 @@
 
   string_vector sv = string_prop.string_vector_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("text::properties::update_text_extent");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -9633,8 +9649,7 @@
   double fontsz = get_fontsize ();
   double parent_height = box_pix_height;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("text::properties::get___fontsize_points__");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go (gh_mgr.get_object (get___myhandle__ ()));
 
@@ -9672,8 +9687,7 @@
 void
 light::properties::update_visible (void)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("light::properties::update_visible");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get___myhandle__ ());
 
@@ -9690,8 +9704,7 @@
 bool
 patch::properties::get_do_lighting (void) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("patch::properties::get_do_lighting");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get___myhandle__ ());
 
@@ -10322,8 +10335,8 @@
   if (! cd.isempty () && (c_rows != 1 || c_cols != 3)
       && (c_rows != x_rows || (c_cols != 1 && c_cols != 3)))
     {
-      m_bad_data_msg = "cdata must be an rgb triplet or have the same number of "
-                       "rows as X and one or three columns";
+      m_bad_data_msg = "cdata must be an rgb triplet or have the same number "
+                       "of rows as X and one or three columns";
       return;
     }
 
@@ -10348,8 +10361,7 @@
   if (series_idx.isempty ())
     return;
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("scatter::properties::update_color");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get___myhandle__ ());
 
@@ -10411,8 +10423,7 @@
 bool
 surface::properties::get_do_lighting (void) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("surface::properties::get_do_lighting");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get___myhandle__ ());
 
@@ -10704,8 +10715,7 @@
 void
 hggroup::properties::remove_child (const graphics_handle& h, bool from_root)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("hggroup::properties::remove_child");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -10722,8 +10732,7 @@
 void
 hggroup::properties::adopt (const graphics_handle& h)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("hggroup::properties::adopt");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -10740,8 +10749,7 @@
 void
 hggroup::properties::update_limits (void) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("hggroup::properties::update_limits");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (m___myhandle__);
 
@@ -10758,8 +10766,7 @@
 void
 hggroup::properties::update_limits (const graphics_handle& h) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("hggroup::properties::update_limits");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (m___myhandle__);
 
@@ -10979,8 +10986,7 @@
   // Clear the uicontextmenu property of dependent objects
   if (m_beingdeleted.is ("on"))
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("uicontextmenu::properties::update_beingdeleted");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       std::list<graphics_handle> lst = get_dependent_obj_list ();
 
@@ -11029,8 +11035,7 @@
 {
   Matrix m = m_extent.get ().matrix_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uicontrol::properties::get_extent");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -11045,8 +11050,7 @@
 {
   // FIXME: support multiline text
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uicontrol::properties::update_text_extent");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (get___myhandle__ ());
 
@@ -11058,8 +11062,7 @@
 {
   Matrix pos = get_position ().matrix_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uicontrol::properties::update_units");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -11075,8 +11078,7 @@
 void
 uicontrol::properties::set_style (const octave_value& st)
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uicontrol::properties::set_style");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go_parent = gh_mgr.get_object (get_parent ());
   if (go_parent.valid_object () && go_parent.isa ("uibuttongroup"))
@@ -11129,8 +11131,7 @@
 
   if (parent_size.isempty ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("uicontrol::properties::get_boundingbox");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (get_parent ());
 
@@ -11196,8 +11197,7 @@
 
   if (parent_size.isempty ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("uibuttongroup::properties::get_boundingbox");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (get_parent ());
 
@@ -11272,8 +11272,7 @@
     {
       if (old_bb(2) != new_bb(2) || old_bb(3) != new_bb(3))
         {
-          gh_manager& gh_mgr
-            = octave::__get_gh_manager__ ("uibuttongroup::properties::set_position");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           if (! get_resizefcn ().isempty ())
             gh_mgr.post_callback (m___myhandle__, "resizefcn");
@@ -11309,8 +11308,7 @@
 {
   Matrix pos = get_position ().matrix_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uibuttongroup::properties::update_units");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -11375,8 +11373,7 @@
   graphics_handle val (v);
   if (val.ok ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("uibuttongroup::properties::set_selectedobject");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go (gh_mgr.get_object (val));
 
@@ -11419,8 +11416,7 @@
   graphics_handle current_selected = get_selectedobject ();
   bool has_selected = current_selected.ok ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uibuttongroup::properties::adopt");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (h);
 
@@ -11444,8 +11440,7 @@
 
   if (parent_size.isempty ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("uipanel::properties::get_boundingbox");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (get_parent ());
 
@@ -11520,8 +11515,7 @@
     {
       if (old_bb(2) != new_bb(2) || old_bb(3) != new_bb(3))
         {
-          gh_manager& gh_mgr
-            = octave::__get_gh_manager__ ("uipanel::properties::set_position");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           if (! get_resizefcn ().isempty ())
             gh_mgr.post_callback (m___myhandle__, "resizefcn");
@@ -11558,8 +11552,7 @@
 {
   Matrix pos = get_position ().matrix_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uipanel::properties::update_units");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -11617,8 +11610,7 @@
 
   if (parent_size.isempty ())
     {
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("uitable::properties::get_boundingbox");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object go = gh_mgr.get_object (get_parent ());
 
@@ -11744,8 +11736,7 @@
 {
   Matrix pos = get_position ().matrix_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uitable::properties::update_units");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -11834,8 +11825,7 @@
   // FIXME: Is it really acceptable to just let the toolkit update the extent?
   Matrix m = m_extent.get ().matrix_value ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("uitable::properties::get_extent");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (get_parent ());
 
@@ -11861,8 +11851,7 @@
     {
       graphics_handle parent_h = get_parent ();
 
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("uitoolbar::get_default");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       graphics_object parent_go = gh_mgr.get_object (parent_h);
 
@@ -11889,8 +11878,7 @@
 {
   graphics_handle parent_h = get_parent ();
 
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_graphics_object::get_default");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (parent_h);
 
@@ -11900,8 +11888,7 @@
 octave_value
 base_graphics_object::get_factory_default (const caseless_str& name) const
 {
-  gh_manager& gh_mgr
-    = octave::__get_gh_manager__ ("base_graphics_object::get_factory_default");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object parent_go = gh_mgr.get_object (0);
 
@@ -11918,7 +11905,7 @@
 {
   m_handle_map[0] = graphics_object (new root_figure ());
 
-  octave::gtk_manager& gtk_mgr = octave::__get_gtk_manager__ ("gh_manager");
+  octave::gtk_manager& gtk_mgr = octave::__get_gtk_manager__ ();
 
   // Make sure the default graphics toolkit is registered.
   gtk_mgr.default_toolkit ();
@@ -12038,8 +12025,7 @@
 
   void execute (void)
   {
-    gh_manager& gh_mgr
-      = octave::__get_gh_manager__ ("callback_event::execute");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     if (m_callback.is_defined ())
       gh_mgr.execute_callback (m_handle, m_callback, m_callback_data);
@@ -12073,8 +12059,7 @@
   {
     if (! m_mcode.empty ())
       {
-        gh_manager& gh_mgr
-          = octave::__get_gh_manager__ ("mcode_event::execute");
+        gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
         graphics_object go = gh_mgr.get_object (m_handle);
 
@@ -12141,7 +12126,7 @@
 
   void execute (void)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("set_event::execute");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -12249,7 +12234,7 @@
 static void
 xset_gcbo (const graphics_handle& h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("xset_gcbo");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (0);
 
@@ -12388,7 +12373,7 @@
 static int
 process_graphics_events (void)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("process_graphics_events");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   return gh_mgr.process_events ();
 }
@@ -12644,7 +12629,7 @@
 
 DEFMETHOD (ishghandle, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} ishghandle (@var{h})
+@deftypefn {} {@var{tf} =} ishghandle (@var{h})
 Return true if @var{h} is a graphics handle and false otherwise.
 
 @var{h} may also be a matrix of handles in which case a logical array is
@@ -12685,7 +12670,7 @@
 static bool
 is_handle_visible (const graphics_handle& h)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("is_handle_visible");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   return h.ok () && gh_mgr.is_handle_visible (h);
 }
@@ -12693,7 +12678,7 @@
 static bool
 is_handle_visible (double val)
 {
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("is_handle_visible");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   return is_handle_visible (gh_mgr.lookup (val));
 }
@@ -12722,7 +12707,7 @@
 
 DEFUN (__is_handle_visible__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __is_handle_visible__ (@var{h})
+@deftypefn {} {@var{tf} =} __is_handle_visible__ (@var{h})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13046,7 +13031,7 @@
 {
   std::string retval;
 
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("get_graphics_object_type");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_object go = gh_mgr.get_object (val);
 
@@ -13187,7 +13172,7 @@
 
 DEFMETHOD (__get__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __get__ (@var{h})
+@deftypefn {} {@var{props} =} __get__ (@var{h})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13264,7 +13249,7 @@
   if (octave::math::isnan (val))
     val = args(0).xdouble_value ("__go_%s__: invalid parent", go_name.c_str ());
 
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("make_graphics_object");
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   graphics_handle parent = gh_mgr.lookup (val);
 
@@ -13309,7 +13294,7 @@
 
 DEFMETHOD (__go_figure__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_figure__ (@var{fignum})
+@deftypefn {} {@var{hfig} =} __go_figure__ (@var{fignum})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13427,7 +13412,7 @@
     {
       Matrix kids = go.get_properties ().get_children ();
 
-      gh_manager& gh_mgr = octave::__get_gh_manager__ ("calc_dimensions");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       for (octave_idx_type i = 0; i < kids.numel (); i++)
         {
@@ -13451,7 +13436,7 @@
 
 DEFMETHOD (__calc_dimensions__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __calc_dimensions__ (@var{axes})
+@deftypefn {} {@var{ndims} =} __calc_dimensions__ (@var{axes})
 Internal function.
 
 Determine the number of dimensions in a graphics object, either 2 or 3.
@@ -13471,7 +13456,7 @@
 
 DEFMETHOD (__go_axes__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_axes__ (@var{parent})
+@deftypefn {} {@var{hax} =} __go_axes__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13480,7 +13465,7 @@
 
 DEFMETHOD (__go_line__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_line__ (@var{parent})
+@deftypefn {} {@var{hl} =} __go_line__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13489,7 +13474,7 @@
 
 DEFMETHOD (__go_text__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_text__ (@var{parent})
+@deftypefn {} {@var{ht} =} __go_text__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13498,7 +13483,7 @@
 
 DEFMETHOD (__go_image__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_image__ (@var{parent})
+@deftypefn {} {@var{hi} =} __go_image__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13507,7 +13492,7 @@
 
 DEFMETHOD (__go_surface__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_surface__ (@var{parent})
+@deftypefn {} {@var{hs} =} __go_surface__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13516,7 +13501,7 @@
 
 DEFMETHOD (__go_patch__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_patch__ (@var{parent})
+@deftypefn {} {@var{hp} =} __go_patch__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13525,7 +13510,7 @@
 
 DEFMETHOD (__go_scatter__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_scatter__ (@var{parent})
+@deftypefn {} {@var{hs} =} __go_scatter__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13534,7 +13519,7 @@
 
 DEFMETHOD (__go_light__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_light__ (@var{parent})
+@deftypefn {} {@var{hl} =} __go_light__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13543,7 +13528,7 @@
 
 DEFMETHOD (__go_hggroup__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_hggroup__ (@var{parent})
+@deftypefn {} {@var{hgg} =} __go_hggroup__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13552,7 +13537,7 @@
 
 DEFMETHOD (__go_uimenu__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uimenu__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uimenu__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13561,7 +13546,7 @@
 
 DEFMETHOD (__go_uicontrol__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uicontrol__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uicontrol__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13570,7 +13555,7 @@
 
 DEFMETHOD (__go_uibuttongroup__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uibuttongroup__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uibuttongroup__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13579,7 +13564,7 @@
 
 DEFMETHOD (__go_uipanel__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uipanel__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uipanel__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13588,7 +13573,7 @@
 
 DEFMETHOD (__go_uicontextmenu__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uicontextmenu__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uicontextmenu__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13597,7 +13582,7 @@
 
 DEFMETHOD (__go_uitable__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uitable__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uitable__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13606,7 +13591,7 @@
 
 DEFMETHOD (__go_uitoolbar__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uitoolbar__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uitoolbar__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13615,7 +13600,7 @@
 
 DEFMETHOD (__go_uipushtool__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uipushtool__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uipushtool__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13624,7 +13609,7 @@
 
 DEFMETHOD (__go_uitoggletool__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_uitoggletool__ (@var{parent})
+@deftypefn {} {@var{hui} =} __go_uitoggletool__ (@var{parent})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13665,7 +13650,7 @@
 
 DEFMETHOD (__go_handles__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_handles__ (@var{show_hidden})
+@deftypefn {} {@var{hg_list} =} __go_handles__ (@var{show_hidden})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13683,7 +13668,7 @@
 
 DEFMETHOD (__go_figure_handles__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __go_figure_handles__ (@var{show_hidden})
+@deftypefn {} {@var{hfig_list} =} __go_figure_handles__ (@var{show_hidden})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -13800,7 +13785,7 @@
 
 DEFMETHOD (available_graphics_toolkits, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} available_graphics_toolkits ()
+@deftypefn {} {@var{toolkits} =} available_graphics_toolkits ()
 Return a cell array of registered graphics toolkits.
 @seealso{graphics_toolkit, register_graphics_toolkit}
 @end deftypefn */)
@@ -13816,8 +13801,11 @@
 
 DEFMETHOD (register_graphics_toolkit, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} register_graphics_toolkit (@var{toolkit})
+@deftypefn {} {} register_graphics_toolkit ("@var{toolkit}")
 List @var{toolkit} as an available graphics toolkit.
+
+Programming Note: No input validation is done on the input string; it is simply
+added to the list of possible graphics toolkits.
 @seealso{available_graphics_toolkits}
 @end deftypefn */)
 {
@@ -13839,7 +13827,7 @@
 
 DEFMETHOD (loaded_graphics_toolkits, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} loaded_graphics_toolkits ()
+@deftypefn {} {@var{toolkits} =} loaded_graphics_toolkits ()
 Return a cell array of the currently loaded graphics toolkits.
 @seealso{available_graphics_toolkits}
 @end deftypefn */)
@@ -14253,32 +14241,32 @@
 
 octave_value
 get_property_from_handle (double handle, const std::string& property,
-                          const std::string& func)
-{
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("get_property_from_handle");
+                          const std::string& fcn)
+{
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   octave::autolock guard (gh_mgr.graphics_lock ());
 
   graphics_object go = gh_mgr.get_object (handle);
 
   if (! go)
-    error ("%s: invalid handle (= %g)", func.c_str (), handle);
+    error ("%s: invalid handle (= %g)", fcn.c_str (), handle);
 
   return go.get (caseless_str (property));
 }
 
 bool
 set_property_in_handle (double handle, const std::string& property,
-                        const octave_value& arg, const std::string& func)
-{
-  gh_manager& gh_mgr = octave::__get_gh_manager__ ("set_property_in_handle");
+                        const octave_value& arg, const std::string& fcn)
+{
+  gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
   octave::autolock guard (gh_mgr.graphics_lock ());
 
   graphics_object go = gh_mgr.get_object (handle);
 
   if (! go)
-    error ("%s: invalid handle (= %g)", func.c_str (), handle);
+    error ("%s: invalid handle (= %g)", fcn.c_str (), handle);
 
   go.set (caseless_str (property), arg);
 
@@ -14321,8 +14309,7 @@
 
       caseless_str pname = c(3).string_value ();
 
-      gh_manager& gh_mgr
-        = octave::__get_gh_manager__ ("do_cleanup_waitfor_listener");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -14364,7 +14351,7 @@
 
           caseless_str pname = args(4).string_value ();
 
-          gh_manager& gh_mgr = octave::__get_gh_manager__ ("waitfor_listener");
+          gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
           octave::autolock guard (gh_mgr.graphics_lock ());
 
--- a/libinterp/corefcn/graphics.in.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/graphics.in.h	Tue Nov 15 13:15:28 2022 -0800
@@ -950,7 +950,8 @@
 
   const std::string& current_value (void) const { return m_current_val; }
 
-  std::string values_as_string (void) const { return m_vals.values_as_string (); }
+  std::string values_as_string (void) const
+  { return m_vals.values_as_string (); }
 
   Cell values_as_cell (void) const { return m_vals.values_as_cell (); }
 
@@ -1378,7 +1379,8 @@
   array_property (void)
     : base_property ("", graphics_handle ()), m_data (Matrix ()),
       m_min_val (), m_max_val (), m_min_pos (), m_max_neg (),
-      m_type_constraints (), m_size_constraints (), m_finite_constraint (NO_CHECK),
+      m_type_constraints (), m_size_constraints (),
+      m_finite_constraint (NO_CHECK),
       m_minval (std::pair<double, bool> (octave_NaN, true)),
       m_maxval (std::pair<double, bool> (octave_NaN, true))
   {
@@ -1389,7 +1391,8 @@
                   const octave_value& m)
     : base_property (nm, h), m_data (m.issparse () ? m.full_value () : m),
       m_min_val (), m_max_val (), m_min_pos (), m_max_neg (),
-      m_type_constraints (), m_size_constraints (), m_finite_constraint (NO_CHECK),
+      m_type_constraints (), m_size_constraints (),
+      m_finite_constraint (NO_CHECK),
       m_minval (std::pair<double, bool> (octave_NaN, true)),
       m_maxval (std::pair<double, bool> (octave_NaN, true))
   {
@@ -1401,8 +1404,10 @@
   // copy constraints.
   array_property (const array_property& p)
     : base_property (p), m_data (p.m_data),
-      m_min_val (p.m_min_val), m_max_val (p.m_max_val), m_min_pos (p.m_min_pos), m_max_neg (p.m_max_neg),
-      m_type_constraints (), m_size_constraints (), m_finite_constraint (NO_CHECK),
+      m_min_val (p.m_min_val), m_max_val (p.m_max_val),
+      m_min_pos (p.m_min_pos), m_max_neg (p.m_max_neg),
+      m_type_constraints (), m_size_constraints (),
+      m_finite_constraint (NO_CHECK),
       m_minval (std::pair<double, bool> (octave_NaN, true)),
       m_maxval (std::pair<double, bool> (octave_NaN, true))
   { }
@@ -1820,12 +1825,13 @@
     bool add_hidden = true;
 
     const Matrix visible_kids = do_get_children (false);
+    const Matrix hidden_kids = do_get_children (true);
 
     if (visible_kids.numel () == new_kids.numel ())
       {
         Matrix t1 = visible_kids.sort ();
         Matrix t2 = new_kids_column.sort ();
-        Matrix t3 = get_hidden ().sort ();
+        Matrix t3 = hidden_kids.sort ();
 
         if (t1 != t2)
           is_ok = false;
@@ -1837,22 +1843,22 @@
       is_ok = false;
 
     if (! is_ok)
-      error ("set: new children must be a permutation of existing children");
-
-    Matrix tmp = new_kids_column;
-
-    if (add_hidden)
-      tmp.stack (get_hidden ());
+      error ("set: new children list must be a permutation of existing "
+             "children with visible handles");
 
     m_children_list.clear ();
 
     // Don't use do_init_children here, as that reverses the
     // order of the list, and we don't want to do that if setting
     // the child list directly.
-    for (octave_idx_type i = 0; i < tmp.numel (); i++)
-      m_children_list.push_back (tmp.xelem (i));
-
-    return is_ok;
+    for (octave_idx_type i = 0; i < new_kids_column.numel (); i++)
+      m_children_list.push_back (new_kids_column.xelem (i));
+
+    if (add_hidden)
+      for (octave_idx_type i = 0; i < hidden_kids.numel (); i++)
+        m_children_list.push_back (hidden_kids.xelem (i));
+
+    return true;
   }
 
 private:
@@ -3144,6 +3150,17 @@
 
     OCTINTERP_API void adopt (const graphics_handle& h);
 
+    // Alias "innerposition" to "position".
+    octave_value get_innerposition (void) const
+    {
+      return get_position ();
+    }
+
+    void set_innerposition (const octave_value& val)
+    {
+      set_position (val);
+    }
+
     OCTINTERP_API void set_position (const octave_value& val,
                                      bool do_notify_toolkit = true);
 
@@ -3184,9 +3201,10 @@
       string_property currentcharacter r , ""
       handle_property currentobject r , graphics_handle ()
       array_property currentpoint r , Matrix (2, 1, 0)
-      bool_property dockcontrols , "off"
+      bool_property dockcontrols , "on"
       string_property filename , ""
       bool_property graphicssmoothing , "on"
+      array_property innerposition sg , default_figure_position ()
       bool_property integerhandle S , "on"
       bool_property inverthardcopy , "on"
       callback_property keypressfcn , Matrix ()
@@ -3204,7 +3222,7 @@
       array_property papersize U , default_figure_papersize ()
       radio_property papertype SU , "{usletter}|uslegal|a0|a1|a2|a3|a4|a5|b0|b1|b2|b3|b4|b5|arch-a|arch-b|arch-c|arch-d|arch-e|a|b|c|d|e|tabloid|<custom>"
       radio_property paperunits Su , "{inches}|centimeters|normalized|points"
-      radio_property pointer , "crosshair|{arrow}|ibeam|watch|topl|topr|botl|botr|left|top|right|bottom|circle|cross|fleur|custom|hand"
+      radio_property pointer , "{arrow}|crosshair|ibeam|watch|topl|topr|botl|botr|left|top|right|bottom|circle|cross|fleur|custom|hand"
       array_property pointershapecdata , Matrix (16, 16, 1)
       array_property pointershapehotspot , Matrix (1, 2, 1)
       array_property position s , default_figure_position ()
@@ -3225,6 +3243,7 @@
       callback_property windowkeypressfcn , Matrix ()
       callback_property windowkeyreleasefcn , Matrix ()
       callback_property windowscrollwheelfcn , Matrix ()
+      radio_property windowstate , "{normal}|minimized|maximized|fullscreen"
       radio_property windowstyle , "{normal}|modal|docked"
 
       // Overridden base property
@@ -3383,7 +3402,9 @@
   graphics_xform (const Matrix& xm, const Matrix& xim,
                   const scaler& x, const scaler& y, const scaler& z,
                   const Matrix& zl)
-    : m_xform (xm), m_xform_inv (xim), m_sx (x), m_sy (y), m_sz (z), m_zlim (zl) { }
+    : m_xform (xm), m_xform_inv (xim), m_sx (x), m_sy (y),
+      m_sz (z), m_zlim (zl)
+  { }
 
   graphics_xform (const graphics_xform& g)
     : m_xform (g.m_xform), m_xform_inv (g.m_xform_inv), m_sx (g.m_sx),
@@ -3553,7 +3574,10 @@
     OCTINTERP_API void update_title_position (void);
 
     graphics_xform get_transform (void) const
-    { return graphics_xform (m_x_render, m_x_render_inv, m_sx, m_sy, m_sz, m_x_zlim); }
+    {
+      return graphics_xform (m_x_render, m_x_render_inv,
+                             m_sx, m_sy, m_sz, m_x_zlim);
+    }
 
     Matrix get_transform_matrix (void) const { return m_x_render; }
     Matrix get_inverse_transform_matrix (void) const { return m_x_render_inv; }
@@ -3603,7 +3627,10 @@
     bool get_nearhoriz (void) const { return m_nearhoriz; }
 
     ColumnVector pixel2coord (double px, double py) const
-    { return get_transform ().untransform (px, py, (m_x_zlim(0)+m_x_zlim(1))/2); }
+    {
+      return get_transform ().untransform (px, py,
+                                           (m_x_zlim(0)+m_x_zlim(1))/2);
+    }
 
     ColumnVector coord2pixel (double x, double y, double z) const
     { return get_transform ().transform (x, y, z); }
@@ -3766,7 +3793,8 @@
       radio_property gridcolormode , "{auto}|manual"
       radio_property gridlinestyle , "{-}|--|:|-.|none"
       array_property innerposition sg , default_axes_position ()
-      // FIXME: Should be an array of "interaction objects". Make it read-only for now.
+      // FIXME: Should be an array of "interaction objects".
+      // Make it read-only for now.
       any_property interactions r , Matrix ()
       double_property labelfontsizemultiplier u , 1.1
       radio_property layer u , "{bottom}|top"
@@ -3814,6 +3842,7 @@
       bool_property xgrid , "off"
       handle_property xlabel SOf , make_graphics_handle ("text", m___myhandle__, false, false, false)
       row_vector_property xlim mu , default_lim ()
+      radio_property xlimitmethod u , "{tickaligned}|tight|padded"
       radio_property xlimmode al , "{auto}|manual"
       bool_property xminorgrid , "off"
       bool_property xminortick , "off"
@@ -3833,6 +3862,7 @@
       bool_property ygrid , "off"
       handle_property ylabel SOf , make_graphics_handle ("text", m___myhandle__, false, false, false)
       row_vector_property ylim mu , default_lim ()
+      radio_property ylimitmethod u , "{tickaligned}|tight|padded"
       radio_property ylimmode al , "{auto}|manual"
       bool_property yminorgrid , "off"
       bool_property yminortick , "off"
@@ -3850,6 +3880,7 @@
       bool_property zgrid , "off"
       handle_property zlabel SOf , make_graphics_handle ("text", m___myhandle__, false, false, false)
       row_vector_property zlim mu , default_lim ()
+      radio_property zlimitmethod u , "{tickaligned}|tight|padded"
       radio_property zlimmode al , "{auto}|manual"
       bool_property zminorgrid , "off"
       bool_property zminortick , "off"
@@ -4029,7 +4060,8 @@
     {
       calc_ticks_and_lims (m_xlim, m_xtick, m_xminortickvalues,
                            m_xlimmode.is ("auto"), m_xtickmode.is ("auto"),
-                           m_xscale.is ("log"));
+                           m_xscale.is ("log"), m_xlimitmethod.is ("padded"),
+                           m_xlimitmethod.is ("tight"));
       if (m_xticklabelmode.is ("auto"))
         calc_ticklabels (m_xtick, m_xticklabel, m_xscale.is ("log"),
                          xaxislocation_is ("origin"),
@@ -4045,7 +4077,8 @@
     {
       calc_ticks_and_lims (m_ylim, m_ytick, m_yminortickvalues,
                            m_ylimmode.is ("auto"), m_ytickmode.is ("auto"),
-                           m_yscale.is ("log"));
+                           m_yscale.is ("log"), m_ylimitmethod.is ("padded"),
+                           m_ylimitmethod.is ("tight"));
       if (m_yticklabelmode.is ("auto"))
         calc_ticklabels (m_ytick, m_yticklabel, m_yscale.is ("log"),
                          yaxislocation_is ("origin"),
@@ -4061,7 +4094,8 @@
     {
       calc_ticks_and_lims (m_zlim, m_ztick, m_zminortickvalues,
                            m_zlimmode.is ("auto"), m_ztickmode.is ("auto"),
-                           m_zscale.is ("log"));
+                           m_zscale.is ("log"), m_zlimitmethod.is ("padded"),
+                           m_zlimitmethod.is ("tight"));
       if (m_zticklabelmode.is ("auto"))
         calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"), false,
                          2, m_zlim);
@@ -4109,7 +4143,8 @@
     void update_zticklabelmode (void)
     {
       if (m_zticklabelmode.is ("auto"))
-        calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"), false, 2, m_zlim);
+        calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"),
+                         false, 2, m_zlim);
     }
 
     void update_fontname (void)
@@ -4165,7 +4200,8 @@
     OCTINTERP_API void
     calc_ticks_and_lims (array_property& lims, array_property& ticks,
                          array_property& mticks, bool limmode_is_auto,
-                         bool tickmode_is_auto, bool is_logscale);
+                         bool tickmode_is_auto, bool is_logscale,
+                         bool method_is_padded, bool method_is_tight);
     OCTINTERP_API void
     calc_ticklabels (const array_property& ticks, any_property& labels,
                      bool is_logscale, const bool is_origin,
@@ -4214,7 +4250,7 @@
     OCTINTERP_API Matrix
     get_axis_limits (double xmin, double xmax,
                      double min_pos, double max_neg,
-                     const bool logscale);
+                     const bool logscale, const std::string& method);
 
     OCTINTERP_API void
     check_axis_limits (Matrix& limits, const Matrix kids,
@@ -4226,7 +4262,8 @@
 
       calc_ticks_and_lims (m_xlim, m_xtick, m_xminortickvalues,
                            m_xlimmode.is ("auto"), m_xtickmode.is ("auto"),
-                           m_xscale.is ("log"));
+                           m_xscale.is ("log"), m_xlimitmethod.is ("padded"),
+                           m_xlimitmethod.is ("tight"));
       if (m_xticklabelmode.is ("auto"))
         calc_ticklabels (m_xtick, m_xticklabel, m_xscale.is ("log"),
                          m_xaxislocation.is ("origin"),
@@ -4242,13 +4279,19 @@
       update_axes_layout ();
     }
 
+    void update_xlimitmethod ()
+    {
+      update_xlim ();
+    }
+
     void update_ylim (void)
     {
       update_axis_limits ("ylim");
 
       calc_ticks_and_lims (m_ylim, m_ytick, m_yminortickvalues,
                            m_ylimmode.is ("auto"), m_ytickmode.is ("auto"),
-                           m_yscale.is ("log"));
+                           m_yscale.is ("log"), m_ylimitmethod.is ("padded"),
+                           m_ylimitmethod.is ("tight"));
       if (m_yticklabelmode.is ("auto"))
         calc_ticklabels (m_ytick, m_yticklabel, m_yscale.is ("log"),
                          yaxislocation_is ("origin"),
@@ -4264,13 +4307,19 @@
       update_axes_layout ();
     }
 
+    void update_ylimitmethod ()
+    {
+      update_ylim ();
+    }
+
     void update_zlim (void)
     {
       update_axis_limits ("zlim");
 
       calc_ticks_and_lims (m_zlim, m_ztick, m_zminortickvalues,
                            m_zlimmode.is ("auto"), m_ztickmode.is ("auto"),
-                           m_zscale.is ("log"));
+                           m_zscale.is ("log"), m_zlimitmethod.is ("padded"),
+                           m_zlimitmethod.is ("tight"));
       if (m_zticklabelmode.is ("auto"))
         calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"), false,
                          2, m_zlim);
@@ -4282,6 +4331,11 @@
       update_axes_layout ();
     }
 
+    void update_zlimitmethod ()
+    {
+      update_zlim ();
+    }
+
     void trigger_normals_calc (void);
 
   };
@@ -4588,11 +4642,8 @@
                                 : lim(2));
           lim(3) = (lim(3) >= 0 ? -octave::numeric_limits<double>::Inf ()
                                 : lim(3));
-          set_zliminclude ("on");
           set_zlim (lim);
         }
-      else
-        set_zliminclude ("off");
     }
 
     OCTINTERP_API void request_autopos (void);
@@ -5753,11 +5804,16 @@
 
     BEGIN_PROPERTIES (uimenu)
       string_property accelerator , ""
-      callback_property callback , Matrix ()
+      // Deprecated in R2017b (replaced by "MenuSelectedFcn")
+      callback_property callback hgs , Matrix ()
       bool_property checked , "off"
       bool_property enable , "on"
       color_property foregroundcolor , color_values (0, 0, 0)
-      string_property label gs , ""
+      // Deprecated in R2017b (replaced by "Text")
+      string_property label hgs , ""
+      callback_property menuselectedfcn , Matrix ()
+      // Deprecated in R2017b, but replacement of re-ordering "children"
+      // property of parent does not work yet in Octave.
       double_property position , 0
       bool_property separator , "off"
       string_property text , ""
@@ -5767,7 +5823,7 @@
       any_property __object__ h , Matrix ()
     END_PROPERTIES
 
-    // Redirect calls from "Label" to "Text".
+    // Make "Label" an alias for "Text".
     std::string get_label (void) const
     {
       return get_text ();
@@ -5778,6 +5834,17 @@
       set_text (val);
     }
 
+    // Make "Callback" an alias for "MenuSelectedFcn".
+    octave_value get_callback (void) const
+    {
+      return get_menuselectedfcn ();
+    }
+
+    void set_callback (const octave_value& val)
+    {
+      set_menuselectedfcn (val);
+    }
+
   protected:
     void init (void)
     {
@@ -6526,10 +6593,10 @@
 
 OCTINTERP_API octave_value
 get_property_from_handle (double handle, const std::string& property,
-                          const std::string& func);
+                          const std::string& fcn);
 OCTINTERP_API bool
 set_property_in_handle (double handle, const std::string& property,
-                        const octave_value& arg, const std::string& func);
+                        const octave_value& arg, const std::string& fcn);
 
 // ---------------------------------------------------------------------
 
--- a/libinterp/corefcn/gzfstream.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/gzfstream.h	Tue Nov 15 13:15:28 2022 -0800
@@ -469,7 +469,7 @@
 private:
   // Underlying manipulator function
   gzofstream&
-  (*func)(gzofstream&, T1, T2);
+  (*fcn)(gzofstream&, T1, T2);
 
   // Arguments for manipulator function
   T1 val1;
@@ -490,14 +490,14 @@
 gzomanip2<T1, T2>::gzomanip2 (gzofstream &(*f)(gzofstream&, T1, T2),
                               T1 v1,
                               T2 v2)
-  : func(f), val1(v1), val2(v2)
+  : fcn(f), val1(v1), val2(v2)
 { }
 
 // Insertor applies underlying manipulator function to stream
 template <typename T1, typename T2>
 inline gzofstream&
 operator<<(gzofstream& s, const gzomanip2<T1, T2>& m)
-{ return (*m.func)(s, m.val1, m.val2); }
+{ return (*m.fcn)(s, m.val1, m.val2); }
 
 // Insert this onto stream to simplify setting of compression level
 inline gzomanip2<int, int>
--- a/libinterp/corefcn/hash.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/hash.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -53,9 +53,9 @@
 
 DEFUN (hash, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} hash (@var{hfun}, @var{str})
+@deftypefn {} {@var{hashval} =} hash ("@var{hashfcn}", @var{str})
 Calculate the hash value of the string @var{str} using the hash function
-@var{hfun}.
+@var{hashfcn}.
 
 The available hash functions are given in the table below.
 
@@ -206,18 +206,19 @@
 %!assert <*31689> (hash ("md2", "abc\0"), "5a636d615002a7874ac1c9e9a43361f7")
 %!assert <*31689> (hash ("md4", "abc\0"), "0ee5201897ecb206c4eaba1d2da5224d")
 %!assert <*31689> (hash ("md5", "abc\0"), "147a664a2ca9410911e61986d3f0d52a")
-%!assert <*31689> (hash ("sha1", "abc\0"), "686483805ac47ca14e03514f7481a7973b401762")
+%!assert <*31689> (hash ("sha1", "abc\0"),
+%!                 "686483805ac47ca14e03514f7481a7973b401762")
 %!assert <*31689> (hash ("sha224", "abc\0"),
-%!        "fbc8e47920e108bb1d0b631d18b36ae9b1549d28362aa15ebe960cfb");
+%!                 "fbc8e47920e108bb1d0b631d18b36ae9b1549d28362aa15ebe960cfb");
 %!assert <*31689> (hash ("sha256", "abc\0"),
-%!        "dc1114cd074914bd872cc1f9a23ec910ea2203bc79779ab2e17da25782a624fc");
+%!       "dc1114cd074914bd872cc1f9a23ec910ea2203bc79779ab2e17da25782a624fc");
 %!assert <*31689> (hash ("sha384", "abc\0"),
-%!        ["eba81f2dfba4ec60d3f786c89d91b08e6c0b63d55986874378e385", ...
-%!         "e6fac587cce7a520ca9437290fe626cbf75c855e17"]);
+%!       ["eba81f2dfba4ec60d3f786c89d91b08e6c0b63d55986874378e385", ...
+%!        "e6fac587cce7a520ca9437290fe626cbf75c855e17"]);
 %!assert <*31689> (hash ("sha512", "abc\0"),
-%!        ["7ce05eda233e545a2d5c626862a5ddaafb09b9d8ec3bec08aa458b", ...
-%!         "7c9e7d939d84a57d5a20d8a9002983aabae2457b19c50ba326bf5b", ...
-%!         "081f75b41342f42c3383"]);
+%!       ["7ce05eda233e545a2d5c626862a5ddaafb09b9d8ec3bec08aa458b", ...
+%!        "7c9e7d939d84a57d5a20d8a9002983aabae2457b19c50ba326bf5b", ...
+%!        "081f75b41342f42c3383"]);
 
 ## Test equivalence to deprecated md5sum offering file hashing
 %!test
--- a/libinterp/corefcn/help.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/help.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -637,7 +637,8 @@
             std::string name;
             int i = 0;
             int c;
-            while (file && (c = file.get ()) != std::istream::traits_type::eof ())
+            while (file
+                   && (c = file.get ()) != std::istream::traits_type::eof ())
               {
                 if (c == '\n' || c == '\r')
                   {
@@ -726,7 +727,7 @@
 
   string_vector make_name_list (void)
   {
-    help_system& help_sys = __get_help_system__ ("make_name_list");
+    help_system& help_sys = __get_help_system__ ();
 
     return help_sys.make_name_list ();
   }
@@ -785,8 +786,8 @@
 
 DEFUN (__operators__, , ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __operators__ ()
-Undocumented internal function.
+@deftypefn {} {@var{cstr} =} __operators__ ()
+Return a cell array of strings of all possible Octave operators.
 @end deftypefn */)
 {
   return ovl (Cell (operator_names));
@@ -803,7 +804,7 @@
 DEFMETHOD (__builtins__, interp, , ,
            doc: /* -*- texinfo -*-
 @deftypefn {} {} __builtins__ ()
-Undocumented internal function.
+Return a cell array of all builtin (compiled) functions available to Octave.
 @end deftypefn */)
 {
   symbol_table& symtab = interp.get_symbol_table ();
@@ -815,7 +816,7 @@
 
 DEFMETHOD (localfunctions, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} localfunctions ()
+@deftypefn {} {@var{subfcn_list} =} localfunctions ()
 Return a list of all local functions, i.e., subfunctions, within the current
 file.
 
@@ -871,7 +872,7 @@
 
 DEFMETHOD (__which__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __which__ (@var{name}, @dots{})
+@deftypefn {} {@var{var_struct} =} __which__ (@var{name}, @dots{})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -954,7 +955,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} built_in_docstrings_file ()
 @deftypefnx {} {@var{old_val} =} built_in_docstrings_file (@var{new_val})
-@deftypefnx {} {} built_in_docstrings_file (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} built_in_docstrings_file (@var{new_val}, "local")
 Query or set the internal variable that specifies the name of the
 file containing docstrings for built-in Octave functions.
 
@@ -979,7 +980,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} doc_cache_file ()
 @deftypefnx {} {@var{old_val} =} doc_cache_file (@var{new_val})
-@deftypefnx {} {} doc_cache_file (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} doc_cache_file (@var{new_val}, "local")
 Query or set the internal variable that specifies the name of the
 Octave documentation cache file.
 
@@ -1008,7 +1009,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} info_file ()
 @deftypefnx {} {@var{old_val} =} info_file (@var{new_val})
-@deftypefnx {} {} info_file (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} info_file (@var{new_val}, "local")
 Query or set the internal variable that specifies the name of the
 Octave info file.
 
@@ -1034,7 +1035,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} info_program ()
 @deftypefnx {} {@var{old_val} =} info_program (@var{new_val})
-@deftypefnx {} {} info_program (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} info_program (@var{new_val}, "local")
 Query or set the internal variable that specifies the name of the
 info program to run.
 
@@ -1057,7 +1058,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} makeinfo_program ()
 @deftypefnx {} {@var{old_val} =} makeinfo_program (@var{new_val})
-@deftypefnx {} {} makeinfo_program (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} makeinfo_program (@var{new_val}, "local")
 Query or set the internal variable that specifies the name of the
 program that Octave runs to format help text containing
 Texinfo markup commands.
@@ -1079,7 +1080,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} suppress_verbose_help_message ()
 @deftypefnx {} {@var{old_val} =} suppress_verbose_help_message (@var{new_val})
-@deftypefnx {} {} suppress_verbose_help_message (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} suppress_verbose_help_message (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave
 will add additional help information to the end of the output from
 the @code{help} command and usage messages for built-in commands.
@@ -1098,7 +1099,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} texi_macros_file ()
 @deftypefnx {} {@var{old_val} =} texi_macros_file (@var{new_val})
-@deftypefnx {} {} texi_macros_file (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} texi_macros_file (@var{new_val}, "local")
 Query or set the internal variable that specifies the name of the
 file containing Texinfo macros that are prepended to documentation strings
 before they are passed to makeinfo.
--- a/libinterp/corefcn/hex2num.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/hex2num.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -361,8 +361,10 @@
 }
 
 /*
-%!assert (num2hex (-2:2), ["c000000000000000";"bff0000000000000";"0000000000000000";"3ff0000000000000";"4000000000000000"])
-%!assert (num2hex (single (-2:2)), ["c0000000";"bf800000";"00000000";"3f800000";"40000000"])
+%!assert (num2hex (-2:2),
+%!        ["c000000000000000";"bff0000000000000";"0000000000000000";"3ff0000000000000";"4000000000000000"])
+%!assert (num2hex (single (-2:2)),
+%!        ["c0000000";"bf800000";"00000000";"3f800000";"40000000"])
 %!assert (num2hex (intmax ("uint8")), "ff")
 %!assert (num2hex (intmax ("uint16")), "ffff")
 %!assert (num2hex (intmax ("uint32")), "ffffffff")
--- a/libinterp/corefcn/input.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/input.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -44,6 +44,7 @@
 #include "file-ops.h"
 #include "iconv-wrappers.h"
 #include "localcharset-wrapper.h"
+#include "oct-env.h"
 #include "oct-string.h"
 #include "quit.h"
 #include "str-vec.h"
@@ -89,11 +90,6 @@
 // the next user prompt.
 bool Vdrawnow_requested = false;
 
-// TRUE if we are recording line numbers in a source file.
-// Always true except when debugging and taking input directly from
-// the terminal.
-bool Vtrack_line_num = true;
-
 OCTAVE_NAMESPACE_BEGIN
 
   static std::string
@@ -183,8 +179,7 @@
         if (pos != std::string::npos)
           base_name = base_name.substr (0, pos);
 
-        interpreter& interp
-          = __get_interpreter__ ("generate_struct_completions");
+        interpreter& interp = __get_interpreter__ ();
 
         if (interp.is_variable (base_name))
           {
@@ -377,8 +372,7 @@
                   }
                 else
                   {
-                    input_system& input_sys
-                      = __get_input_system__ ("generate_completion");
+                    input_system& input_sys = __get_input_system__ ();
 
                     command_editor::set_completion_append_character
                       (input_sys.completion_append_char ());
@@ -396,8 +390,7 @@
   {
     octave_quit ();
 
-    input_system& input_sys
-      = __get_input_system__ ("internal_input_event_hook_fcn");
+    input_system& input_sys = __get_input_system__ ();
 
     input_sys.run_input_event_hooks ();
 
@@ -581,8 +574,10 @@
   std::string input_system::dir_encoding (const std::string& dir)
   {
     std::string enc = m_mfile_encoding;
+    // use canonicalized path as key
+    const std::string key = sys::canonicalize_file_name (dir);
 
-    auto enc_it = m_dir_encoding.find (load_path_dir (dir));
+    auto enc_it = m_dir_encoding.find (key);
     if (enc_it != m_dir_encoding.end ())
       enc = enc_it->second;
 
@@ -966,7 +961,8 @@
     : m_rep (new file_reader (interp, file))
   { }
 
-  input_reader::input_reader (interpreter& interp, FILE *file, const std::string& enc)
+  input_reader::input_reader (interpreter& interp, FILE *file,
+                              const std::string& enc)
     : m_rep (new file_reader (interp, file, enc))
   { }
 
@@ -1252,13 +1248,24 @@
 
 DEFUN (completion_matches, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} completion_matches (@var{hint})
-Generate possible completions given @var{hint}.
+@deftypefn {} {@var{completion_list} =} completion_matches ("@var{hint}")
+Generate possible word completions for Octave given the character sequence
+@var{hint}.
+
+This function is provided for the benefit of programs like Emacs which might be
+controlling Octave and handling user input.  For example:
 
-This function is provided for the benefit of programs like Emacs which
-might be controlling Octave and handling user input.  The current
-command number is not incremented when this function is called.  This is
-a feature, not a bug.
+@example
+@group
+completion_matches ("sine")
+@result{}
+sinetone
+sinewave
+@end group
+@end example
+
+Programming Note: The current command number in Octave is not incremented when
+this function is called.  This is a feature, not a bug.
 @end deftypefn */)
 {
   if (args.length () != 1)
@@ -1336,7 +1343,8 @@
 
 DEFUN (readline_read_init_file, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} readline_read_init_file (@var{file})
+@deftypefn  {} {} readline_read_init_file ()
+@deftypefnx {} {} readline_read_init_file (@var{file})
 Read the readline library initialization file @var{file}.
 
 If @var{file} is omitted, read the default initialization file
@@ -1453,7 +1461,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} PS1 ()
 @deftypefnx {} {@var{old_val} =} PS1 (@var{new_val})
-@deftypefnx {} {} PS1 (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} PS1 (@var{new_val}, "local")
 Query or set the primary prompt string.
 
 When executing interactively, Octave displays the primary prompt when it is
@@ -1497,7 +1505,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} PS2 ()
 @deftypefnx {} {@var{old_val} =} PS2 (@var{new_val})
-@deftypefnx {} {} PS2 (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} PS2 (@var{new_val}, "local")
 Query or set the secondary prompt string.
 
 The secondary prompt is printed when Octave is expecting additional input to
@@ -1521,7 +1529,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} completion_append_char ()
 @deftypefnx {} {@var{old_val} =} completion_append_char (@var{new_val})
-@deftypefnx {} {} completion_append_char (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} completion_append_char (@var{new_val}, "local")
 Query or set the internal character variable that is appended to
 successful command-line completion attempts.
 
@@ -1559,7 +1567,7 @@
 
 DEFMETHOD (__gud_mode__, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __gud_mode__ ()
+@deftypefn {} {@var{state} =} __gud_mode__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -1570,8 +1578,12 @@
 
 DEFMETHOD (__mfile_encoding__, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn {} {@var{current_encoding} =} __mfile_encoding__ (@var{new_encoding})
-Set and query the codepage that is used for reading .m files.
+@deftypefn  {} {@var{current_encoding} =} __mfile_encoding__ ()
+@deftypefnx {} {} __mfile_encoding__ (@var{new_encoding})
+@deftypefnx {} {@var{old_encoding} =} __mfile_encoding__ (@var{new_encoding})
+Query or set the codepage that is used for reading m-files.
+
+The input and output are strings naming a particular codepage, e.g., "utf-8".
 @end deftypefn */)
 {
   input_system& input_sys = interp.get_input_system ();
@@ -1582,22 +1594,22 @@
 DEFMETHOD (dir_encoding, interp, args, nargout,
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{current_encoding} =} dir_encoding (@var{dir})
-@deftypefnx {} {@var{prev_encoding} =} dir_encoding (@var{dir}, @var{encoding})
-@deftypefnx {} {} dir_encoding (@dots{})
-Set and query the @var{encoding} that is used for reading m-files in @var{dir}.
+@deftypefnx {} {} dir_encoding (@var{dir}, @var{new_encoding})
+@deftypefnx {} {} dir_encoding (@var{dir}, "delete")
+@deftypefnx {} {@var{old_encoding} =} dir_encoding (@var{dir}, @var{new_encoding})
+Query or set the @var{encoding} that is used for reading m-files in @var{dir}.
 
-That encoding overrides the (globally set) m-file encoding.
+The per-directory encoding overrides the (globally set) m-file encoding.
 
-The string @var{DIR} must match the form how the directory would appear in the
-load path.
+The string @var{DIR} must match how the directory would appear in the load
+path.
 
-The @var{encoding} must be a valid encoding identifier or @qcode{"delete"}.  In
-the latter case, the (globally set) m-file encoding will be used for the given
-@var{dir}.
+The @var{new_encoding} input must be a valid encoding identifier or
+@qcode{"delete"}.  In the latter case, any per-directory encoding is removed
+and the (globally set) m-file encoding will be used for the given @var{dir}.
 
-The currently or previously used encoding is returned in @var{current_encoding}
-or @var{prev_encoding}, respectively.  The output argument must be explicitly
-requested.
+The currently or previously used encoding is returned only if an output
+argument is requested.
 
 The directory encoding is automatically read from the file @file{.oct-config}
 when a new path is added to the load path (for example with @code{addpath}).
@@ -1650,7 +1662,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} auto_repeat_debug_command ()
 @deftypefnx {} {@var{old_val} =} auto_repeat_debug_command (@var{new_val})
-@deftypefnx {} {} auto_repeat_debug_command (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} auto_repeat_debug_command (@var{new_val}, "local")
 Query or set the internal variable that controls whether debugging
 commands are automatically repeated when the input line is empty (typing
 just @key{RET}).
--- a/libinterp/corefcn/input.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/input.h	Tue Nov 15 13:15:28 2022 -0800
@@ -48,11 +48,6 @@
 // the next user prompt.
 extern OCTINTERP_API bool Vdrawnow_requested;
 
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-OCTAVE_DEPRECATED (6, "'Vtrack_line_num' is an obsolete internal variable; any uses should be removed")
-extern OCTINTERP_API bool Vtrack_line_num;
-#endif
-
 extern OCTINTERP_API octave::sys::time Vlast_prompt_time;
 
 class octave_value;
--- a/libinterp/corefcn/interpreter-private.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/interpreter-private.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -27,6 +27,7 @@
 #  include "config.h"
 #endif
 
+#include <iostream>
 #include <list>
 #include <string>
 
@@ -50,151 +51,151 @@
 
 namespace octave
 {
-  interpreter& __get_interpreter__ (const std::string& who)
+  interpreter& __get_interpreter__ (void)
   {
     interpreter *interp = interpreter::the_interpreter ();
 
     if (! interp)
       {
+        std::cerr << "fatal error: octave interpreter context missing" << std::endl;
         abort ();
-        error ("%s: interpreter context missing", who.c_str ());
       }
 
     return *interp;
   }
 
-  dynamic_loader& __get_dynamic_loader__ (const std::string& who)
+  dynamic_loader& __get_dynamic_loader__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_dynamic_loader ();
   }
 
-  error_system& __get_error_system__ (const std::string& who)
+  error_system& __get_error_system__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_error_system ();
   }
 
-  gh_manager& __get_gh_manager__ (const std::string& who)
+  gh_manager& __get_gh_manager__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_gh_manager ();
   }
 
-  help_system& __get_help_system__ (const std::string& who)
+  help_system& __get_help_system__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_help_system ();
   }
 
-  input_system& __get_input_system__ (const std::string& who)
+  input_system& __get_input_system__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_input_system ();
   }
 
-  output_system& __get_output_system__ (const std::string& who)
+  output_system& __get_output_system__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_output_system ();
   }
 
-  load_path& __get_load_path__ (const std::string& who)
+  load_path& __get_load_path__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_load_path ();
   }
 
-  load_save_system& __get_load_save_system__ (const std::string& who)
+  load_save_system& __get_load_save_system__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_load_save_system ();
   }
 
-  event_manager& __get_event_manager__ (const std::string& who)
+  event_manager& __get_event_manager__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_event_manager ();
   }
 
-  type_info& __get_type_info__ (const std::string& who)
+  type_info& __get_type_info__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_type_info ();
   }
 
-  symbol_table& __get_symbol_table__ (const std::string& who)
+  symbol_table& __get_symbol_table__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_symbol_table ();
   }
 
-  symbol_scope __get_current_scope__ (const std::string& who)
+  symbol_scope __get_current_scope__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_current_scope ();
   }
 
-  symbol_scope __require_current_scope__ (const std::string& who)
+  symbol_scope __require_current_scope__ (void)
   {
-    symbol_scope scope = __get_current_scope__ (who);
+    symbol_scope scope = __get_current_scope__ ();
 
     if (! scope)
-      error ("%s: symbol table scope missing", who.c_str ());
+      error ("__require_current_scope__: symbol table scope missing");
 
     return scope;
   }
 
-  tree_evaluator& __get_evaluator__ (const std::string& who)
+  tree_evaluator& __get_evaluator__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_evaluator ();
   }
 
-  bp_table& __get_bp_table__ (const std::string& who)
+  bp_table& __get_bp_table__ (void)
   {
-    tree_evaluator& tw = __get_evaluator__ (who);
+    tree_evaluator& tw = __get_evaluator__ ();
 
     return tw.get_bp_table ();
   }
 
-  child_list& __get_child_list__ (const std::string& who)
+  child_list& __get_child_list__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_child_list ();
   }
 
-  cdef_manager& __get_cdef_manager__ (const std::string& who)
+  cdef_manager& __get_cdef_manager__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_cdef_manager ();
   }
 
-  display_info& __get_display_info__ (const std::string& who)
+  display_info& __get_display_info__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_display_info ();
   }
 
-  gtk_manager& __get_gtk_manager__ (const std::string& who)
+  gtk_manager& __get_gtk_manager__ (void)
   {
-    interpreter& interp = __get_interpreter__ (who);
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.get_gtk_manager ();
   }
--- a/libinterp/corefcn/interpreter-private.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/interpreter-private.h	Tue Nov 15 13:15:28 2022 -0800
@@ -53,45 +53,45 @@
   class tree_evaluator;
   class type_info;
 
-  extern OCTINTERP_API interpreter& __get_interpreter__ (const std::string& who);
+  extern OCTINTERP_API interpreter& __get_interpreter__ (void);
 
-  extern OCTINTERP_API dynamic_loader& __get_dynamic_loader__ (const std::string& who);
+  extern OCTINTERP_API dynamic_loader& __get_dynamic_loader__ (void);
 
-  extern OCTINTERP_API error_system& __get_error_system__ (const std::string& who);
+  extern OCTINTERP_API error_system& __get_error_system__ (void);
 
-  extern OCTINTERP_API gh_manager& __get_gh_manager__ (const std::string& who);
+  extern OCTINTERP_API gh_manager& __get_gh_manager__ (void);
 
-  extern OCTINTERP_API help_system& __get_help_system__ (const std::string& who);
+  extern OCTINTERP_API help_system& __get_help_system__ (void);
 
-  extern OCTINTERP_API input_system& __get_input_system__ (const std::string& who);
+  extern OCTINTERP_API input_system& __get_input_system__ (void);
 
-  extern OCTINTERP_API load_path& __get_load_path__ (const std::string& who);
+  extern OCTINTERP_API load_path& __get_load_path__ (void);
 
-  extern OCTINTERP_API load_save_system& __get_load_save_system__ (const std::string& who);
+  extern OCTINTERP_API load_save_system& __get_load_save_system__ (void);
 
-  extern OCTINTERP_API event_manager& __get_event_manager__ (const std::string& who);
+  extern OCTINTERP_API event_manager& __get_event_manager__ (void);
 
-  extern OCTINTERP_API output_system& __get_output_system__ (const std::string& who);
+  extern OCTINTERP_API output_system& __get_output_system__ (void);
 
-  extern OCTINTERP_API type_info& __get_type_info__ (const std::string& who);
+  extern OCTINTERP_API type_info& __get_type_info__ (void);
 
-  extern OCTINTERP_API symbol_table& __get_symbol_table__ (const std::string& who);
+  extern OCTINTERP_API symbol_table& __get_symbol_table__ (void);
 
-  extern OCTINTERP_API symbol_scope __get_current_scope__ (const std::string& who);
+  extern OCTINTERP_API symbol_scope __get_current_scope__ (void);
 
-  extern OCTINTERP_API symbol_scope __require_current_scope__ (const std::string& who);
+  extern OCTINTERP_API symbol_scope __require_current_scope__ (void);
 
-  extern OCTINTERP_API tree_evaluator& __get_evaluator__ (const std::string& who);
+  extern OCTINTERP_API tree_evaluator& __get_evaluator__ (void);
 
-  extern OCTINTERP_API bp_table& __get_bp_table__ (const std::string& who);
+  extern OCTINTERP_API bp_table& __get_bp_table__ (void);
 
-  extern OCTINTERP_API child_list& __get_child_list__ (const std::string& who);
+  extern OCTINTERP_API child_list& __get_child_list__ (void);
 
-  extern OCTINTERP_API cdef_manager& __get_cdef_manager__ (const std::string& who);
+  extern OCTINTERP_API cdef_manager& __get_cdef_manager__ (void);
 
-  extern OCTINTERP_API display_info& __get_display_info__ (const std::string& who);
+  extern OCTINTERP_API display_info& __get_display_info__ (void);
 
-  extern OCTINTERP_API gtk_manager& __get_gtk_manager__ (const std::string& who);
+  extern OCTINTERP_API gtk_manager& __get_gtk_manager__ (void);
 
   // Functions that could be methods in the interpreter class but maybe
   // shouldn't be exposed as part of the public interface.
--- a/libinterp/corefcn/interpreter.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/interpreter.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -56,7 +56,6 @@
 #include "display.h"
 #include "error.h"
 #include "event-manager.h"
-#include "file-io.h"
 #include "graphics.h"
 #include "help.h"
 #include "input.h"
@@ -237,7 +236,9 @@
 DEFMETHOD (atexit, interp, args, nargout,
            doc: /* -*- texinfo -*-
 @deftypefn  {} {} atexit (@var{fcn})
-@deftypefnx {} {} atexit (@var{fcn}, @var{flag})
+@deftypefnx {} {} atexit (@var{fcn}, true)
+@deftypefnx {} {} atexit (@var{fcn}, false)
+@deftypefnx {} {@var{status} =} atexit (@var{fcn}, false)
 Register a function to be called when Octave exits.
 
 For example,
@@ -268,8 +269,12 @@
 will remove the function from the list and Octave will not call
 @code{last_words} when it exits.
 
-Note that @code{atexit} only removes the first occurrence of a function
-from the list, so if a function was placed in the list multiple times with
+The optional output @var{status} is only available when unregistering a
+function.  The value is true if the unregistering was successful and false
+otherwise.
+
+Programming Note: @code{atexit} only removes the first occurrence of a function
+from the list; if a function was placed in the list multiple times with
 @code{atexit}, it must also be removed from the list multiple times.
 @seealso{quit}
 @end deftypefn */)
@@ -302,8 +307,8 @@
 
 DEFMETHOD (__traditional__, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __traditional__ ()
-Undocumented internal function.
+@deftypefn {} {@var{tf} =} __traditional__ ()
+Return true if Octave was invoked with the @env{--traditional} option.
 @end deftypefn */)
 {
   return ovl (interp.traditional ());
@@ -344,7 +349,7 @@
                                bool verbose = false,
                                bool require_file = true)
   {
-    interpreter& interp = __get_interpreter__ ("safe_source_file");
+    interpreter& interp = __get_interpreter__ ();
 
     try
       {
@@ -2028,24 +2033,6 @@
     return found;
   }
 
-  // Remove when corresponding public deprecated function is removed.
-  void interpreter::add_atexit_function_deprecated (const std::string& fname)
-  {
-    interpreter& interp
-      = __get_interpreter__ ("interpreter::add_atexit_function");
-
-    interp.add_atexit_fcn (fname);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  bool interpreter::remove_atexit_function_deprecated (const std::string& fname)
-  {
-    interpreter& interp
-      = __get_interpreter__ ("interpreter::remove_atexit_function");
-
-    return interp.remove_atexit_fcn (fname);
-  }
-
   // What internal options get configured by --traditional.
 
   void interpreter::maximum_braindamage (void)
--- a/libinterp/corefcn/interpreter.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/interpreter.h	Tue Nov 15 13:15:28 2022 -0800
@@ -536,30 +536,6 @@
 
     bool remove_atexit_fcn (const std::string& fname);
 
-  private:
-
-    // Remove when corresponding public deprecated function is removed.
-    static void add_atexit_function_deprecated (const std::string& fname);
-
-    // Remove when corresponding public deprecated function is removed.
-    static bool remove_atexit_function_deprecated (const std::string& fname);
-
-  public:
-
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-    OCTAVE_DEPRECATED (6, "use interpreter::add_atexit_fcn member function instead")
-    static void add_atexit_function (const std::string& fname)
-    {
-      add_atexit_function_deprecated (fname);
-    }
-
-    OCTAVE_DEPRECATED (6, "use interpreter::remove_atexit_fcn member function instead")
-    static bool remove_atexit_function (const std::string& fname)
-    {
-      return remove_atexit_function_deprecated (fname);
-    }
-    #endif
-
     static interpreter * the_interpreter (void) { return m_instance; }
 
   private:
--- a/libinterp/corefcn/inv.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/inv.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -70,14 +70,17 @@
 
   octave_value arg = args(0);
 
+  if (! arg.isnumeric ())
+    err_wrong_type_arg ("inv", arg);
+
   if (arg.isempty ())
     return ovl (Matrix ());
 
   if (arg.rows () != arg.columns ())
-    err_square_matrix_required ("inverse", "A");
+    err_square_matrix_required ("inv", "A");
 
   octave_value result;
-  octave_idx_type info;
+  octave_idx_type info = 0;
   double rcond = 0.0;
   float frcond = 0.0;
   bool isfloat = arg.is_single_type ();
@@ -191,6 +194,8 @@
             }
         }
       else
+        // Shouldn't get here since we checked for suitable arg earlier.
+        // Maybe for some user-defined classes?
         err_wrong_type_arg ("inv", arg);
     }
 
@@ -233,6 +238,12 @@
 %! assert (xinv, single ([-2, 1; 1.5, -0.5]), 5*eps ("single"));
 %! assert (isa (rcond, "single"));
 
+## Basic test for integer inputs
+%!assert (inv (int32 (2)), 0.5)
+%!assert (inv (uint32 (2)), 0.5)
+%!assert (inv (int64 (2)), 0.5)
+%!assert (inv (uint64 (2)), 0.5)
+
 ## Normal scalar cases
 %!assert (inv (2), 0.5)
 %!test
@@ -367,11 +378,15 @@
 %! assert (A, sparse ([Inf, Inf; 0, 0]));
 
 %!testif HAVE_UMFPACK <*56232>
-%! fail ("A = inv (sparse ([1, 0, 0; 0, 0, 0; 0, 0, 1]))", "warning", "matrix singular");
+%! fail ("A = inv (sparse ([1, 0, 0; 0, 0, 0; 0, 0, 1]))",
+%!       "warning", "matrix singular");
 %! assert (A, sparse ([Inf, 0, 0; 0, 0, 0; 0, 0, Inf]));
 
-%!error inv ()
-%!error inv ([1, 2; 3, 4], 2)
+%!error <Invalid call> inv ()
+%!error <Invalid call> inv ([1, 2; 3, 4], 2)
+%!error <wrong type argument> inv ("Hello World")
+%!error <wrong type argument> inv ({1})
+%!error <wrong type argument> inv (true)
 %!error <must be a square matrix> inv ([1, 2; 3, 4; 5, 6])
 %!error <inverse of the null matrix not defined> inv (sparse (2, 2, 0))
 %!error <inverse of the null matrix not defined> inv (diag ([0, 0]))
--- a/libinterp/corefcn/kron.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/kron.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -55,8 +55,8 @@
 static MArray<T>
 kron (const MArray<R>& a, const MArray<T>& b)
 {
-  assert (a.ndims () == 2);
-  assert (b.ndims () == 2);
+  error_unless (a.ndims () == 2);
+  error_unless (b.ndims () == 2);
 
   octave_idx_type nra = a.rows ();
   octave_idx_type nrb = b.rows ();
@@ -86,7 +86,7 @@
 static MArray<T>
 kron (const MDiagArray2<R>& a, const MArray<T>& b)
 {
-  assert (b.ndims () == 2);
+  error_unless (b.ndims () == 2);
 
   octave_idx_type nra = a.rows ();
   octave_idx_type nrb = b.rows ();
@@ -245,14 +245,14 @@
 
 DEFUN (kron, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} kron (@var{A}, @var{B})
-@deftypefnx {} {} kron (@var{A1}, @var{A2}, @dots{})
+@deftypefn  {} {@var{C} =} kron (@var{A}, @var{B})
+@deftypefnx {} {@var{C} =} kron (@var{A1}, @var{A2}, @dots{})
 Form the Kronecker product of two or more matrices.
 
 This is defined block by block as
 
 @example
-x = [ a(i,j)*b ]
+c = [ a(i,j)*b ]
 @end example
 
 For example:
--- a/libinterp/corefcn/latex-text-renderer.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/latex-text-renderer.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -128,7 +128,7 @@
       text_renderer::string str ("", fnt, 0.0, 0.0);
       str.set_color (m_color);
 
-      gh_manager& gh_mgr = octave::__get_gh_manager__ ("text_to_strlist");
+      gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
       gh_manager::latex_data ldata = gh_mgr.get_latex_data (key (txt, halign));
 
@@ -323,8 +323,7 @@
                          "latex_renderer:: failed to read png data. %s",
                          ee.message ().c_str ());
 
-        interpreter& interp
-          = __get_interpreter__ ("latex_renderer::read_image");
+        interpreter& interp = __get_interpreter__ ();
 
         interp.recover_from_exception ();
 
@@ -372,7 +371,7 @@
   latex_renderer::render (const std::string& txt, int halign)
   {
     // Render if it was not already done
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("latex_renderer::render");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     gh_manager::latex_data ldata = gh_mgr.get_latex_data (key (txt, halign));
 
--- a/libinterp/corefcn/load-path.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/load-path.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -158,7 +158,7 @@
     // Look in private directory corresponding to current function (if
     // any).
 
-    symbol_scope scope = __get_current_scope__ ("find_private_file");
+    symbol_scope scope = __get_current_scope__ ();
 
     octave_user_code *curr_code = scope ? scope.user_code () : nullptr;
 
@@ -210,12 +210,12 @@
   static void
   rehash_internal (void)
   {
-    load_path& lp = __get_load_path__ ("rehash_internal");
+    load_path& lp = __get_load_path__ ();
 
     lp.update ();
 
     // Signal the GUI allowing updating the load path dialog
-    event_manager& evmgr = __get_event_manager__ ("rehash_internal");
+    event_manager& evmgr = __get_event_manager__ ();
     evmgr.update_path_dialog ();
 
     // FIXME: maybe we should rename this variable since it is being
@@ -1035,7 +1035,8 @@
       source_file (file, "base");
   }
 
-  // FIXME: maybe we should also maintain a map to speed up this method of access.
+  // FIXME: maybe we should also maintain a map to speed up this method of
+  //        access.
 
   load_path::const_dir_info_list_iterator
   load_path::find_dir_info (const std::string& dir_arg) const
@@ -1203,20 +1204,22 @@
   void
   load_path::read_dir_config (const std::string& dir) const
   {
+    // use canonicalized path as key
+    const std::string key = sys::canonicalize_file_name (dir);
+
     // read file with directory configuration
-    std::string conf_file = dir + sys::file_ops::dir_sep_str ()
-                            + ".oct-config";
+    const std::string
+    conf_file = key + sys::file_ops::dir_sep_str () + ".oct-config";
 
     FILE* cfile = sys::fopen (conf_file, "rb");
 
     if (! cfile)
       {
         // reset directory encoding
-        input_system& input_sys
-          = __get_input_system__ ("load_path::read_dir_config");
+        input_system& input_sys = __get_input_system__ ();
 
         std::string enc_val = "delete";
-        input_sys.set_dir_encoding (dir, enc_val);
+        input_sys.set_dir_encoding (key, enc_val);
         return;
       }
 
@@ -1256,16 +1259,14 @@
               continue;
 
             // set encoding for this directory in input system
-            input_system& input_sys
-              = __get_input_system__ ("load_path::read_dir_config");
-            input_sys.set_dir_encoding (dir, enc_val);
+            input_system& input_sys = __get_input_system__ ();
+            input_sys.set_dir_encoding (key, enc_val);
             return;
           }
       }
 
     // reset directory encoding
-    input_system& input_sys
-      = __get_input_system__ ("load_path::read_dir_config");
+    input_system& input_sys = __get_input_system__ ();
 
     std::string enc_val = "delete";
     input_sys.set_dir_encoding (dir, enc_val);
@@ -1447,8 +1448,7 @@
             // Skip updating if we don't know where we are, but don't
             // treat it as an error.
 
-            interpreter& interp
-              = __get_interpreter__ ("load_path::dir_info::update");
+            interpreter& interp = __get_interpreter__ ();
 
             interp.recover_from_exception ();
           }
@@ -1516,8 +1516,7 @@
             // Skip updating if we don't know where we are but don't treat
             // it as an error.
 
-            interpreter& interp
-              = __get_interpreter__ ("load_path::dir_info::initialize");
+            interpreter& interp = __get_interpreter__ ();
 
             interp.recover_from_exception ();
           }
@@ -1799,7 +1798,8 @@
         if (p != fcn_file_map.end ())
           {
             std::string fname
-              = sys::file_ops::concat (sys::file_ops::concat (dir, "private"), fcn);
+              = sys::file_ops::concat (sys::file_ops::concat (dir, "private"),
+                                       fcn);
 
             if (check_file_type (fname, type, p->second, fcn,
                                  "load_path::find_private_fcn"))
@@ -1965,12 +1965,12 @@
               {
                 if (file_info_list.empty ())
                   {
-                    symbol_table& symtab
-                      = __get_symbol_table__ ("load_path::package_info::add_to_fcn_map");
+                    symbol_table& symtab = __get_symbol_table__ ();
 
                     if (symtab.is_built_in_function_name (base))
                       {
-                        std::string fcn_path = sys::file_ops::concat (dir_name, fname);
+                        std::string fcn_path = sys::file_ops::concat (dir_name,
+                                                                      fname);
 
                         warning_with_id ("Octave:shadowed-function",
                                          "function %s shadows a built-in function",
@@ -1992,7 +1992,8 @@
                         && s_sys_path.find (old.dir_name) != std::string::npos
                         && in_path_list (s_sys_path, old.dir_name))
                       {
-                        std::string fcn_path = sys::file_ops::concat (dir_name, fname);
+                        std::string fcn_path = sys::file_ops::concat (dir_name,
+                                                                      fname);
 
                         warning_with_id ("Octave:shadowed-function",
                                          "function %s shadows a core library function",
@@ -2092,7 +2093,8 @@
 
   void
   load_path::package_info::move_fcn_map (const std::string& dir_name,
-                                         const string_vector& fcn_files, bool at_end)
+                                         const string_vector& fcn_files,
+                                         bool at_end)
   {
     octave_idx_type len = fcn_files.numel ();
 
@@ -2446,7 +2448,8 @@
                 sys::file_stat fs (nm);
 
                 if (fs && fs.is_dir ())
-                  retval += directory_path::path_sep_str () + genpath (nm, skip);
+                  retval += (directory_path::path_sep_str ()
+                             + genpath (nm, skip));
               }
           }
       }
@@ -2456,8 +2459,8 @@
 
 DEFUN (genpath, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} genpath (@var{dir})
-@deftypefnx {} {} genpath (@var{dir}, @var{skip}, @dots{})
+@deftypefn  {} {@var{pathstr} =} genpath (@var{dir})
+@deftypefnx {} {@var{pathstr} =} genpath (@var{dir}, @var{skipdir1}, @dots{})
 Return a path constructed from @var{dir} and all its subdirectories.
 
 The path does not include package directories (beginning with @samp{+}),
@@ -2510,8 +2513,9 @@
 
 DEFMETHOD (command_line_path, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} command_line_path ()
-Return the command line path variable.
+@deftypefn {} {@var{pathstr} =} command_line_path ()
+Return the path argument given to Octave at the command line when the
+interpreter was started (@env{--path @var{arg}}).
 
 @seealso{path, addpath, rmpath, genpath, pathdef, savepath, pathsep}
 @end deftypefn */)
@@ -2526,9 +2530,10 @@
 
 DEFMETHOD (restoredefaultpath, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} restoredefaultpath ()
+@deftypefn {} {@var{pathstr} =} restoredefaultpath ()
 Restore Octave's path to its initial state at startup.
 
+The re-initialized path is returned as an output.
 @seealso{path, addpath, rmpath, genpath, pathdef, savepath, pathsep}
 @end deftypefn */)
 {
@@ -2549,7 +2554,7 @@
 
 DEFMETHOD (__pathorig__, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {@var{val} =} __pathorig__ ()
+@deftypefn {} {@var{str} =} __pathorig__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -2618,6 +2623,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {} addpath (@var{dir1}, @dots{})
 @deftypefnx {} {} addpath (@var{dir1}, @dots{}, @var{option})
+@deftypefnx {} {@var{oldpath} =} addpath (@dots{})
 Add named directories to the function search path.
 
 If @var{option} is @qcode{"-begin"} or 0 (the default), prepend the directory
@@ -2755,7 +2761,8 @@
 
 DEFMETHOD (rmpath, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} rmpath (@var{dir1}, @dots{})
+@deftypefn  {} {} rmpath (@var{dir1}, @dots{})
+@deftypefnx {} {@var{oldpath} =} rmpath (@var{dir1}, @dots{})
 Remove @var{dir1}, @dots{} from the current function search path.
 
 In addition to accepting individual directory arguments, lists of
@@ -2815,7 +2822,7 @@
 DEFMETHOD (__dump_load_path__, interp, , ,
            doc: /* -*- texinfo -*-
 @deftypefn {} {} __dump_load_path__ ()
-Undocumented internal function.
+Pretty print Octave path directories and the files within each directory.
 @end deftypefn */)
 {
   load_path& lp = interp.get_load_path ();
--- a/libinterp/corefcn/load-save.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/load-save.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -855,7 +855,8 @@
                                       OCTAVE_VERSION ", %Y-%m-%d %T UTC";
           std::string comment_string = now.strftime (matlab_format);
 
-          std::size_t len = std::min (comment_string.length (), static_cast<std::size_t> (124));
+          std::size_t len = std::min (comment_string.length (),
+                                      static_cast<std::size_t> (124));
           memset (headertext, ' ', 124);
           memcpy (headertext, comment_string.data (), len);
 
@@ -1915,7 +1916,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} crash_dumps_octave_core ()
 @deftypefnx {} {@var{old_val} =} crash_dumps_octave_core (@var{new_val})
-@deftypefnx {} {} crash_dumps_octave_core (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} crash_dumps_octave_core (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave tries
 to save all current variables to the file @file{octave-workspace} if it
 crashes or receives a hangup, terminate or similar signal.
@@ -1936,7 +1937,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} save_default_options ()
 @deftypefnx {} {@var{old_val} =} save_default_options (@var{new_val})
-@deftypefnx {} {} save_default_options (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} save_default_options (@var{new_val}, "local")
 Query or set the internal variable that specifies the default options
 for the @code{save} command, and defines the default format.
 
@@ -1958,7 +1959,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} octave_core_file_limit ()
 @deftypefnx {} {@var{old_val} =} octave_core_file_limit (@var{new_val})
-@deftypefnx {} {} octave_core_file_limit (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} octave_core_file_limit (@var{new_val}, "local")
 Query or set the internal variable that specifies the maximum amount of memory
 that Octave will save when writing a crash dump file.
 
@@ -1987,7 +1988,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} octave_core_file_name ()
 @deftypefnx {} {@var{old_val} =} octave_core_file_name (@var{new_val})
-@deftypefnx {} {} octave_core_file_name (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} octave_core_file_name (@var{new_val}, "local")
 Query or set the internal variable that specifies the name of the file
 used for saving data from the top-level workspace if Octave aborts.
 
@@ -2009,7 +2010,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} octave_core_file_options ()
 @deftypefnx {} {@var{old_val} =} octave_core_file_options (@var{new_val})
-@deftypefnx {} {} octave_core_file_options (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} octave_core_file_options (@var{new_val}, "local")
 Query or set the internal variable that specifies the options used for
 saving the workspace data if Octave aborts.
 
@@ -2032,7 +2033,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} save_header_format_string ()
 @deftypefnx {} {@var{old_val} =} save_header_format_string (@var{new_val})
-@deftypefnx {} {} save_header_format_string (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} save_header_format_string (@var{new_val}, "local")
 Query or set the internal variable that specifies the format string used for
 the comment line written at the beginning of text-format data files saved by
 Octave.
@@ -2065,8 +2066,7 @@
 void
 dump_octave_core (void)
 {
-  octave::load_save_system& load_save_sys
-    = octave::__get_load_save_system__ ("dump_octave_core");
+  octave::load_save_system& load_save_sys = octave::__get_load_save_system__ ();
 
   load_save_sys.dump_octave_core ();
 }
--- a/libinterp/corefcn/ls-hdf5.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/ls-hdf5.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -307,17 +307,17 @@
   // HDF5 doesn't print out all sorts of error messages if we
   // call H5Aopen for a non-existing attribute
 
-  H5E_auto_t err_func;
-  void *err_func_data;
+  H5E_auto_t err_fcn;
+  void *err_fcn_data;
 
   // turn off error reporting temporarily, but save the error
   // reporting function:
 
 #if defined (HAVE_HDF5_18)
-  H5Eget_auto (octave_H5E_DEFAULT, &err_func, &err_func_data);
+  H5Eget_auto (octave_H5E_DEFAULT, &err_fcn, &err_fcn_data);
   H5Eset_auto (octave_H5E_DEFAULT, nullptr, nullptr);
 #else
-  H5Eget_auto (&err_func, &err_func_data);
+  H5Eget_auto (&err_fcn, &err_fcn_data);
   H5Eset_auto (nullptr, nullptr);
 #endif
 
@@ -332,9 +332,9 @@
 
   // restore error reporting:
 #if defined (HAVE_HDF5_18)
-  H5Eset_auto (octave_H5E_DEFAULT, err_func, err_func_data);
+  H5Eset_auto (octave_H5E_DEFAULT, err_fcn, err_fcn_data);
 #else
-  H5Eset_auto (err_func, err_func_data);
+  H5Eset_auto (err_fcn, err_fcn_data);
 #endif
   return retval;
 
@@ -355,17 +355,17 @@
   // HDF5 doesn't print out all sorts of error messages if we
   // call H5Aopen for a non-existing attribute
 
-  H5E_auto_t err_func;
-  void *err_func_data;
+  H5E_auto_t err_fcn;
+  void *err_fcn_data;
 
   // turn off error reporting temporarily, but save the error
   // reporting function:
 
 #if defined (HAVE_HDF5_18)
-  H5Eget_auto (octave_H5E_DEFAULT, &err_func, &err_func_data);
+  H5Eget_auto (octave_H5E_DEFAULT, &err_fcn, &err_fcn_data);
   H5Eset_auto (octave_H5E_DEFAULT, nullptr, nullptr);
 #else
-  H5Eget_auto (&err_func, &err_func_data);
+  H5Eget_auto (&err_fcn, &err_fcn_data);
   H5Eset_auto (nullptr, nullptr);
 #endif
 
@@ -384,9 +384,9 @@
 
   // restore error reporting:
 #if defined (HAVE_HDF5_18)
-  H5Eset_auto (octave_H5E_DEFAULT, err_func, err_func_data);
+  H5Eset_auto (octave_H5E_DEFAULT, err_fcn, err_fcn_data);
 #else
-  H5Eset_auto (err_func, err_func_data);
+  H5Eset_auto (err_fcn, err_fcn_data);
 #endif
   return retval;
 
@@ -622,8 +622,7 @@
 
   args(0) = std::string (iftext_tmp);
 
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("load_inline_fcn");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   octave_value_list tmp = interp.feval ("inline", args, 1);
 
@@ -672,8 +671,7 @@
 
   std::string vname = name;
 
-  octave::type_info& type_info
-    = octave::__get_type_info__ ("hdf5_read_next_data_internal");
+  octave::type_info& type_info = octave::__get_type_info__ ();
 
   // Allow identifiers as all digits so we can load lists saved by
   // earlier versions of Octave.
@@ -1272,7 +1270,8 @@
   if (space_hid < 0) return space_hid;
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
--- a/libinterp/corefcn/ls-hdf5.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/ls-hdf5.h	Tue Nov 15 13:15:28 2022 -0800
@@ -53,7 +53,8 @@
 
   ~hdf5_fstreambase () { close (); }
 
-  OCTINTERP_API hdf5_fstreambase (const char *name, int mode, int /* prot */ = 0);
+  OCTINTERP_API hdf5_fstreambase (const char *name, int mode,
+                                  int /* prot */ = 0);
 
   OCTINTERP_API void close (void);
 
--- a/libinterp/corefcn/ls-mat-ascii.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/ls-mat-ascii.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -356,8 +356,7 @@
     }
   catch (const octave::execution_exception&)
     {
-      octave::interpreter& interp
-        = octave::__get_interpreter__ ("save_mat_ascii_data");
+      octave::interpreter& interp = octave::__get_interpreter__ ();
 
       interp.recover_from_exception ();
 
--- a/libinterp/corefcn/ls-mat5.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/ls-mat5.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -512,8 +512,7 @@
   if (read_mat5_tag (is, swap, type, element_length, is_small_data_element))
     return retval;                      // EOF
 
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("read_mat5_binary_element");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   if (type == miCOMPRESSED)
     {
@@ -913,7 +912,8 @@
 
                         if (ov_fcn.is_defined ())
                           // XXX FCN_HANDLE: SIMPLE/SCOPED
-                          tc = octave_value (new octave_fcn_handle (ov_fcn, fname));
+                          tc = octave_value (new octave_fcn_handle (ov_fcn,
+                                                                    fname));
                       }
                     else
                       {
@@ -940,7 +940,8 @@
 
                         if (ov_fcn.is_defined ())
                           // XXX FCN_HANDLE: SIMPLE/SCOPED
-                          tc = octave_value (new octave_fcn_handle (ov_fcn, fname));
+                          tc = octave_value (new octave_fcn_handle (ov_fcn,
+                                                                    fname));
                         else
                           {
                             warning_with_id ("Octave:load:file-not-found",
@@ -1041,7 +1042,8 @@
               error ("load: failed to load anonymous function handle");
 
             // XXX FCN_HANDLE: ANONYMOUS
-            tc = octave_value (new octave_fcn_handle (fh->fcn_val (), local_vars));
+            tc = octave_value (new octave_fcn_handle (fh->fcn_val (),
+                                                      local_vars));
           }
         else
           error ("load: invalid function handle type");
@@ -1565,7 +1567,8 @@
   if (swap)
     swap_bytes<8> (&subsys_offset, 1);
 
-  if (subsys_offset != 0x2020202020202020ULL && subsys_offset != 0ULL)
+  if (subsys_offset != UINT64_C (0x2020202020202020)
+      && subsys_offset != UINT64_C (0))
     {
       // Read the subsystem data block
       is.seekg (subsys_offset, std::ios::beg);
@@ -2703,7 +2706,8 @@
     {
       if (tc.is_inline_function () || tc.isobject ())
         {
-          std::string classname = (tc.isobject () ? tc.class_name () : "inline");
+          std::string classname = (tc.isobject () ? tc.class_name ()
+                                                  : "inline");
           std::size_t namelen = classname.length ();
 
           if (namelen > max_namelen)
@@ -2720,8 +2724,7 @@
 
       octave_map m;
 
-      octave::load_path& lp
-        = octave::__get_load_path__ ("save_mat5_binary_element");
+      octave::load_path& lp = octave::__get_load_path__ ();
 
       if (tc.isobject ()
           && lp.find_method (tc.class_name (), "saveobj") != "")
--- a/libinterp/corefcn/ls-oct-binary.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/ls-oct-binary.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -113,8 +113,7 @@
         {
           args(0) = std::string (ctmp2);
 
-          octave::interpreter& interp
-            = octave::__get_interpreter__ ("load_inline_fcn");
+          octave::interpreter& interp = octave::__get_interpreter__ ();
 
           octave_value_list tmp_inl = interp.feval ("inline", args, 1);
 
@@ -247,8 +246,7 @@
   if (! is.read (reinterpret_cast<char *> (&tmp), 1))
     error ("load: trouble reading binary file '%s'", filename.c_str ());
 
-  octave::type_info& type_info
-    = octave::__get_type_info__ ("read_binary_data");
+  octave::type_info& type_info = octave::__get_type_info__ ();
 
   // All cases except 255 kept for backwards compatibility
   switch (tmp)
--- a/libinterp/corefcn/ls-oct-text.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/ls-oct-text.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -270,8 +270,7 @@
         {
           args(0) = std::string (buf);
 
-          octave::interpreter& interp
-            = octave::__get_interpreter__ ("load_inline_fcn");
+          octave::interpreter& interp = octave::__get_interpreter__ ();
 
           octave_value_list tmp = interp.feval ("inline", args, 1);
 
@@ -336,8 +335,7 @@
     }
   else
     {
-      octave::type_info& type_info
-        = octave::__get_type_info__ ("read_text_data");
+      octave::type_info& type_info = octave::__get_type_info__ ();
 
       tc = type_info.lookup_type (typ);
     }
@@ -463,7 +461,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} save_precision ()
 @deftypefnx {} {@var{old_val} =} save_precision (@var{new_val})
-@deftypefnx {} {} save_precision (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} save_precision (@var{new_val}, "local")
 Query or set the internal variable that specifies the number of digits to
 keep when saving data in text format.
 
--- a/libinterp/corefcn/lsode.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/lsode.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -379,12 +379,12 @@
 
   double tzero = out_times (0);
 
-  ODEFunc func (lsode_user_function);
+  ODEFunc fcn (lsode_user_function);
 
   if (lsode_jac.is_defined ())
-    func.set_jacobian_function (lsode_user_jacobian);
+    fcn.set_jacobian_function (lsode_user_jacobian);
 
-  LSODE ode (state, tzero, func);
+  LSODE ode (state, tzero, fcn);
 
   ode.set_options (lsode_opts);
 
--- a/libinterp/corefcn/lu.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/lu.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -781,14 +781,16 @@
 %! [L,U] = luupdate (L,U,P*single (u), single (v));
 %! assert (norm (vec (tril (L)-L), Inf) == 0);
 %! assert (norm (vec (triu (U)-U), Inf) == 0);
-%! assert (norm (vec (P'*L*U - single (A) - single (u)*single (v).'), Inf) < norm (single (A))*1e1*eps ("single"));
+%! assert (norm (vec (P'*L*U - single (A) - single (u)*single (v).'), Inf)
+%!         < norm (single (A))*1e1*eps ("single"));
 %!
 %!testif HAVE_QRUPDATE_LUU
 %! [L,U,P] = lu (single (Ac));
 %! [L,U] = luupdate (L,U,P*single (uc),single (vc));
 %! assert (norm (vec (tril (L)-L), Inf) == 0);
 %! assert (norm (vec (triu (U)-U), Inf) == 0);
-%! assert (norm (vec (P'*L*U - single (Ac) - single (uc)*single (vc).'), Inf) < norm (single (Ac))*1e1*eps ("single"));
+%! assert (norm (vec (P'*L*U - single (Ac) - single (uc)*single (vc).'), Inf)
+%!         < norm (single (Ac))*1e1*eps ("single"));
 
 %!testif HAVE_QRUPDATE_LUU
 %! [L,U,P] = lu (A);
@@ -823,14 +825,16 @@
 %! [L,U,P] = luupdate (L,U,P,single (u),single (v));
 %! assert (norm (vec (tril (L)-L), Inf) == 0);
 %! assert (norm (vec (triu (U)-U), Inf) == 0);
-%! assert (norm (vec (P'*L*U - single (A) - single (u)*single (v).'), Inf) < norm (single (A))*1e1*eps ("single"));
+%! assert (norm (vec (P'*L*U - single (A) - single (u)*single (v).'), Inf)
+%!         < norm (single (A))*1e1*eps ("single"));
 %!
 %!testif HAVE_QRUPDATE_LUU
 %! [L,U,P] = lu (single (Ac));
 %! [L,U,P] = luupdate (L,U,P,single (uc),single (vc));
 %! assert (norm (vec (tril (L)-L), Inf) == 0);
 %! assert (norm (vec (triu (U)-U), Inf) == 0);
-%! assert (norm (vec (P'*L*U - single (Ac) - single (uc)*single (vc).'), Inf) < norm (single (Ac))*1e1*eps ("single"));
+%! assert (norm (vec (P'*L*U - single (Ac) - single (uc)*single (vc).'), Inf)
+%!         < norm (single (Ac))*1e1*eps ("single"));
 */
 
 OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/mappers.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/mappers.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -41,8 +41,8 @@
 
 DEFUN (abs, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} abs (@var{z})
-Compute the magnitude of @var{z}.
+@deftypefn {} {@var{z} =} abs (@var{x})
+Compute the magnitude of @var{x}.
 
 The magnitude is defined as
 @tex
@@ -88,7 +88,7 @@
 
 DEFUN (acos, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} acos (@var{x})
+@deftypefn {} {@var{y} =} acos (@var{x})
 Compute the inverse cosine in radians for each element of @var{x}.
 @seealso{cos, acosd}
 @end deftypefn */)
@@ -148,7 +148,7 @@
 
 DEFUN (acosh, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} acosh (@var{x})
+@deftypefn {} {@var{y} =} acosh (@var{x})
 Compute the inverse hyperbolic cosine for each element of @var{x}.
 @seealso{cosh}
 @end deftypefn */)
@@ -220,7 +220,7 @@
 
 DEFUN (angle, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} angle (@var{z})
+@deftypefn {} {@var{theta} =} angle (@var{z})
 @xref{XREFarg,,@code{arg}}.
 @seealso{arg}
 @end deftypefn */)
@@ -233,8 +233,8 @@
 
 DEFUN (arg, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} arg (@var{z})
-@deftypefnx {} {} angle (@var{z})
+@deftypefn  {} {@var{theta} =} arg (@var{z})
+@deftypefnx {} {@var{theta} =} angle (@var{z})
 Compute the argument, i.e., angle of @var{z}.
 
 This is defined as,
@@ -280,7 +280,8 @@
 %!   assert (arg (single (-1)), single (pi));
 %! endif
 %!assert (arg (single (-i)), single (-pi/2))
-%!assert (arg (single ([1, i; -1, -i])), single ([0, pi/2; pi, -pi/2]), 2e1*eps ("single"))
+%!assert (arg (single ([1, i; -1, -i])),
+%!        single ([0, pi/2; pi, -pi/2]), 2e1*eps ("single"))
 
 %!error arg ()
 %!error arg (1, 2)
@@ -288,7 +289,7 @@
 
 DEFUN (asin, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} asin (@var{x})
+@deftypefn {} {@var{y} =} asin (@var{x})
 Compute the inverse sine in radians for each element of @var{x}.
 @seealso{sin, asind}
 @end deftypefn */)
@@ -353,7 +354,7 @@
 
 DEFUN (asinh, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} asinh (@var{x})
+@deftypefn {} {@var{y} =} asinh (@var{x})
 Compute the inverse hyperbolic sine for each element of @var{x}.
 @seealso{sinh}
 @end deftypefn */)
@@ -395,7 +396,7 @@
 
 DEFUN (atan, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} atan (@var{x})
+@deftypefn {} {@var{y} =} atan (@var{x})
 Compute the inverse tangent in radians for each element of @var{x}.
 @seealso{tan, atand}
 @end deftypefn */)
@@ -434,7 +435,7 @@
 
 DEFUN (atanh, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} atanh (@var{x})
+@deftypefn {} {@var{y} =} atanh (@var{x})
 Compute the inverse hyperbolic tangent for each element of @var{x}.
 @seealso{tanh}
 @end deftypefn */)
@@ -469,7 +470,7 @@
 
 DEFUN (cbrt, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} cbrt (@var{x})
+@deftypefn {} {@var{y} =} cbrt (@var{x})
 Compute the real-valued cube root of each element of @var{x}.
 
 Unlike @code{@var{x}^(1/3)}, the result will be negative if @var{x} is
@@ -501,7 +502,7 @@
 
 DEFUN (ceil, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ceil (@var{x})
+@deftypefn {} {@var{y} =} ceil (@var{x})
 Return the smallest integer not less than @var{x}.
 
 This is equivalent to rounding towards positive infinity.
@@ -535,7 +536,8 @@
 %!assert (ceil (single ([2, 1.1, -1.1, -1])), single ([2, 2, -1, -1]))
 
 ## complex single precision
-%!assert (ceil (single ([2+2i, 1.1+1.1i, -1.1-1.1i, -1-i])), single ([2+2i, 2+2i, -1-i, -1-i]))
+%!assert (ceil (single ([2+2i, 1.1+1.1i, -1.1-1.1i, -1-i])),
+%!        single ([2+2i, 2+2i, -1-i, -1-i]))
 
 %!error ceil ()
 %!error ceil (1, 2)
@@ -543,7 +545,7 @@
 
 DEFUN (conj, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} conj (@var{z})
+@deftypefn {} {@var{zc} =} conj (@var{z})
 Return the complex conjugate of @var{z}.
 
 The complex conjugate is defined as
@@ -581,7 +583,7 @@
 
 DEFUN (cos, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} cos (@var{x})
+@deftypefn {} {@var{y} =} cos (@var{x})
 Compute the cosine for each element of @var{x} in radians.
 @seealso{acos, cosd, cosh}
 @end deftypefn */)
@@ -615,7 +617,7 @@
 
 DEFUN (cosh, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} cosh (@var{x})
+@deftypefn {} {@var{y} =} cosh (@var{x})
 Compute the hyperbolic cosine for each element of @var{x}.
 @seealso{acosh, sinh, tanh}
 @end deftypefn */)
@@ -643,7 +645,7 @@
 
 DEFUN (erf, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} erf (@var{z})
+@deftypefn {} {@var{v} =} erf (@var{z})
 Compute the error function.
 
 The error function is defined as
@@ -712,7 +714,7 @@
 
 DEFUN (erfinv, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} erfinv (@var{x})
+@deftypefn {} {@var{y} =} erfinv (@var{x})
 Compute the inverse error function.
 
 The inverse error function is defined such that
@@ -732,13 +734,18 @@
 /*
 ## middle region
 %!assert (erf (erfinv ([-0.9 -0.3 0 0.4 0.8])), [-0.9 -0.3 0 0.4 0.8], eps)
-%!assert (erf (erfinv (single ([-0.9 -0.3 0 0.4 0.8]))), single ([-0.9 -0.3 0 0.4 0.8]), eps ("single"))
+%!assert (erf (erfinv (single ([-0.9 -0.3 0 0.4 0.8]))),
+%!        single ([-0.9 -0.3 0 0.4 0.8]), eps ("single"))
 ## tail region
-%!assert (erf (erfinv ([-0.999 -0.99 0.9999 0.99999])), [-0.999 -0.99 0.9999 0.99999], eps)
-%!assert (erf (erfinv (single ([-0.999 -0.99 0.9999 0.99999]))), single ([-0.999 -0.99 0.9999 0.99999]), eps ("single"))
+%!assert (erf (erfinv ([-0.999 -0.99 0.9999 0.99999])),
+%!        [-0.999 -0.99 0.9999 0.99999], eps)
+%!assert (erf (erfinv (single ([-0.999 -0.99 0.9999 0.99999]))),
+%!        single ([-0.999 -0.99 0.9999 0.99999]), eps ("single"))
 ## backward - loss of accuracy
-%!assert (erfinv (erf ([-3 -1 -0.4 0.7 1.3 2.8])), [-3 -1 -0.4 0.7 1.3 2.8], -1e-12)
-%!assert (erfinv (erf (single ([-3 -1 -0.4 0.7 1.3 2.8]))), single ([-3 -1 -0.4 0.7 1.3 2.8]), -1e-4)
+%!assert (erfinv (erf ([-3 -1 -0.4 0.7 1.3 2.8])),
+%!        [-3 -1 -0.4 0.7 1.3 2.8], -1e-12)
+%!assert (erfinv (erf (single ([-3 -1 -0.4 0.7 1.3 2.8]))),
+%!        single ([-3 -1 -0.4 0.7 1.3 2.8]), -1e-4)
 ## exceptional
 %!assert (erfinv ([-1, 1, 1.1, -2.1]), [-Inf, Inf, NaN, NaN])
 %!error erfinv (1+2i)
@@ -749,7 +756,7 @@
 
 DEFUN (erfcinv, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} erfcinv (@var{x})
+@deftypefn {} {@var{y} =} erfcinv (@var{x})
 Compute the inverse complementary error function.
 
 The inverse complementary error function is defined such that
@@ -769,13 +776,18 @@
 /*
 ## middle region
 %!assert (erfc (erfcinv ([1.9 1.3 1 0.6 0.2])), [1.9 1.3 1 0.6 0.2], eps)
-%!assert (erfc (erfcinv (single ([1.9 1.3 1 0.6 0.2]))), single ([1.9 1.3 1 0.6 0.2]), eps ("single"))
+%!assert (erfc (erfcinv (single ([1.9 1.3 1 0.6 0.2]))),
+%!        single ([1.9 1.3 1 0.6 0.2]), eps ("single"))
 ## tail region
-%!assert (erfc (erfcinv ([0.001 0.01 1.9999 1.99999])), [0.001 0.01 1.9999 1.99999], eps)
-%!assert (erfc (erfcinv (single ([0.001 0.01 1.9999 1.99999]))), single ([0.001 0.01 1.9999 1.99999]), eps ("single"))
+%!assert (erfc (erfcinv ([0.001 0.01 1.9999 1.99999])),
+%!        [0.001 0.01 1.9999 1.99999], eps)
+%!assert (erfc (erfcinv (single ([0.001 0.01 1.9999 1.99999]))),
+%!        single ([0.001 0.01 1.9999 1.99999]), eps ("single"))
 ## backward - loss of accuracy
-%!assert (erfcinv (erfc ([-3 -1 -0.4 0.7 1.3 2.8])), [-3 -1 -0.4 0.7 1.3 2.8], -1e-12)
-%!assert (erfcinv (erfc (single ([-3 -1 -0.4 0.7 1.3 2.8]))), single ([-3 -1 -0.4 0.7 1.3 2.8]), -1e-4)
+%!assert (erfcinv (erfc ([-3 -1 -0.4 0.7 1.3 2.8])),
+%!        [-3 -1 -0.4 0.7 1.3 2.8], -1e-12)
+%!assert (erfcinv (erfc (single ([-3 -1 -0.4 0.7 1.3 2.8]))),
+%!        single ([-3 -1 -0.4 0.7 1.3 2.8]), -1e-4)
 ## exceptional
 %!assert (erfcinv ([2, 0, -0.1, 2.1]), [-Inf, Inf, NaN, NaN])
 %!error erfcinv (1+2i)
@@ -786,7 +798,7 @@
 
 DEFUN (erfc, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} erfc (@var{z})
+@deftypefn {} {@var{v} =} erfc (@var{z})
 Compute the complementary error function.
 
 The complementary error function is defined as
@@ -816,7 +828,7 @@
 
 DEFUN (erfcx, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} erfcx (@var{z})
+@deftypefn {} {@var{v} =} erfcx (@var{z})
 Compute the scaled complementary error function.
 
 The scaled complementary error function is defined as
@@ -858,7 +870,7 @@
 
 DEFUN (erfi, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} erfi (@var{z})
+@deftypefn {} {@var{v} =} erfi (@var{z})
 Compute the imaginary error function.
 
 The imaginary error function is defined as
@@ -895,7 +907,7 @@
 
 DEFUN (dawson, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} dawson (@var{z})
+@deftypefn {} {@var{v} =} dawson (@var{z})
 Compute the Dawson (scaled imaginary error) function.
 
 The Dawson function is defined as
@@ -934,7 +946,7 @@
 
 DEFUN (exp, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} exp (@var{x})
+@deftypefn {} {@var{y} =} exp (@var{x})
 Compute
 @tex
 $e^{x}$
@@ -957,8 +969,10 @@
 /*
 %!assert (exp ([0, 1, -1, -1000]), [1, e, 1/e, 0], sqrt (eps))
 %!assert (exp (1+i), e * (cos (1) + sin (1) * i), sqrt (eps))
-%!assert (exp (single ([0, 1, -1, -1000])), single ([1, e, 1/e, 0]), sqrt (eps ("single")))
-%!assert (exp (single (1+i)), single (e * (cos (1) + sin (1) * i)), sqrt (eps ("single")))
+%!assert (exp (single ([0, 1, -1, -1000])),
+%!        single ([1, e, 1/e, 0]), sqrt (eps ("single")))
+%!assert (exp (single (1+i)),
+%!        single (e * (cos (1) + sin (1) * i)), sqrt (eps ("single")))
 
 %!assert (exp ([Inf, -Inf, NaN]), [Inf 0 NaN])
 %!assert (exp (single ([Inf, -Inf, NaN])), single ([Inf 0 NaN]))
@@ -969,7 +983,7 @@
 
 DEFUN (expm1, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} expm1 (@var{x})
+@deftypefn {} {@var{y} =} expm1 (@var{x})
 Compute
 @tex
 $ e^{x} - 1 $
@@ -999,7 +1013,7 @@
 
 DEFUN (isfinite, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isfinite (@var{x})
+@deftypefn {} {@var{tf} =} isfinite (@var{x})
 Return a logical array which is true where the elements of @var{x} are
 finite values and false where they are not.
 
@@ -1036,7 +1050,7 @@
 
 DEFUN (fix, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} fix (@var{x})
+@deftypefn {} {@var{y} =} fix (@var{x})
 Truncate fractional portion of @var{x} and return the integer portion.
 
 This is equivalent to rounding towards zero.  If @var{x} is complex, return
@@ -1061,7 +1075,8 @@
 %!assert (fix ([1.1, 1, -1.1, -1]), [1, 1, -1, -1])
 %!assert (fix ([1.1+1.1i, 1+i, -1.1-1.1i, -1-i]), [1+i, 1+i, -1-i, -1-i])
 %!assert (fix (single ([1.1, 1, -1.1, -1])), single ([1, 1, -1, -1]))
-%!assert (fix (single ([1.1+1.1i, 1+i, -1.1-1.1i, -1-i])), single ([1+i, 1+i, -1-i, -1-i]))
+%!assert (fix (single ([1.1+1.1i, 1+i, -1.1-1.1i, -1-i])),
+%!        single ([1+i, 1+i, -1-i, -1-i]))
 
 %!error fix ()
 %!error fix (1, 2)
@@ -1069,7 +1084,7 @@
 
 DEFUN (floor, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} floor (@var{x})
+@deftypefn {} {@var{y} =} floor (@var{x})
 Return the largest integer not greater than @var{x}.
 
 This is equivalent to rounding towards negative infinity.  If @var{x} is
@@ -1094,7 +1109,8 @@
 %!assert (floor ([2, 1.1, -1.1, -1]), [2, 1, -2, -1])
 %!assert (floor ([2+2i, 1.1+1.1i, -1.1-1.1i, -1-i]), [2+2i, 1+i, -2-2i, -1-i])
 %!assert (floor (single ([2, 1.1, -1.1, -1])), single ([2, 1, -2, -1]))
-%!assert (floor (single ([2+2i, 1.1+1.1i, -1.1-1.1i, -1-i])), single ([2+2i, 1+i, -2-2i, -1-i]))
+%!assert (floor (single ([2+2i, 1.1+1.1i, -1.1-1.1i, -1-i])),
+%!        single ([2+2i, 1+i, -2-2i, -1-i]))
 
 %!error floor ()
 %!error floor (1, 2)
@@ -1102,7 +1118,7 @@
 
 DEFUN (gamma, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} gamma (@var{z})
+@deftypefn {} {@var{v} =} gamma (@var{z})
 Compute the Gamma function.
 
 The Gamma function is defined as
@@ -1171,7 +1187,7 @@
 
 DEFUN (imag, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} imag (@var{z})
+@deftypefn {} {@var{y} =} imag (@var{z})
 Return the imaginary part of @var{z} as a real number.
 @seealso{real, conj}
 @end deftypefn */)
@@ -1199,7 +1215,7 @@
 
 DEFUNX ("isalnum", Fisalnum, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isalnum (@var{s})
+@deftypefn {} {@var{tf} =} isalnum (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 letters or digits and false where they are not.
 
@@ -1229,7 +1245,7 @@
 
 DEFUNX ("isalpha", Fisalpha, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isalpha (@var{s})
+@deftypefn {} {@var{tf} =} isalpha (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 letters and false where they are not.
 
@@ -1258,7 +1274,7 @@
 
 DEFUNX ("isascii", Fisascii, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isascii (@var{s})
+@deftypefn {} {@var{tf} =} isascii (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 ASCII characters (in the range 0 to 127 decimal) and false where they are
 not.
@@ -1282,7 +1298,7 @@
 
 DEFUNX ("iscntrl", Fiscntrl, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} iscntrl (@var{s})
+@deftypefn {} {@var{tf} =} iscntrl (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 control characters and false where they are not.
 @seealso{ispunct, isspace, isalpha, isdigit}
@@ -1308,7 +1324,7 @@
 
 DEFUNX ("isdigit", Fisdigit, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isdigit (@var{s})
+@deftypefn {} {@var{tf} =} isdigit (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 decimal digits (0-9) and false where they are not.
 @seealso{isxdigit, isalpha, isletter, ispunct, isspace, iscntrl}
@@ -1334,7 +1350,7 @@
 
 DEFUN (isinf, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isinf (@var{x})
+@deftypefn {} {@var{tf} =} isinf (@var{x})
 Return a logical array which is true where the elements of @var{x} are
 infinite and false where they are not.
 
@@ -1360,13 +1376,15 @@
 %!assert (! isinf (NaN))
 %!assert (! isinf (NA))
 %!assert (isinf (rand (1,10)), false (1,10))
-%!assert (isinf ([NaN -Inf -1 0 1 Inf NA]), [false, true, false, false, false, true, false])
+%!assert (isinf ([NaN -Inf -1 0 1 Inf NA]),
+%!        [false, true, false, false, false, true, false])
 
 %!assert (isinf (single (Inf)))
 %!assert (! isinf (single (NaN)))
 %!assert (! isinf (single (NA)))
 %!assert (isinf (single (rand (1,10))), false (1,10))
-%!assert (isinf (single ([NaN -Inf -1 0 1 Inf NA])), [false, true, false, false, false, true, false])
+%!assert (isinf (single ([NaN -Inf -1 0 1 Inf NA])),
+%!        [false, true, false, false, false, true, false])
 %!assert (! isinf ('a'))
 
 %!error isinf ()
@@ -1375,7 +1393,7 @@
 
 DEFUNX ("isgraph", Fisgraph, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isgraph (@var{s})
+@deftypefn {} {@var{tf} =} isgraph (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 printable characters (but not the space character) and false where they are
 not.
@@ -1402,7 +1420,7 @@
 
 DEFUNX ("islower", Fislower, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} islower (@var{s})
+@deftypefn {} {@var{tf} =} islower (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 lowercase letters and false where they are not.
 @seealso{isupper, isalpha, isletter, isalnum}
@@ -1428,7 +1446,7 @@
 
 DEFUN (isna, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isna (@var{x})
+@deftypefn {} {@var{tf} =} isna (@var{x})
 Return a logical array which is true where the elements of @var{x} are
 NA (missing) values and false where they are not.
 
@@ -1454,13 +1472,15 @@
 %!assert (! isna (NaN))
 %!assert (isna (NA))
 %!assert (isna (rand (1,10)), false (1,10))
-%!assert (isna ([NaN -Inf -1 0 1 Inf NA]), [false, false, false, false, false, false, true])
+%!assert (isna ([NaN -Inf -1 0 1 Inf NA]),
+%!        [false, false, false, false, false, false, true])
 
 %!assert (! isna (single (Inf)))
 %!assert (! isna (single (NaN)))
 %!assert (isna (single (NA)))
 %!assert (isna (single (rand (1,10))), false (1,10))
-%!assert (isna (single ([NaN -Inf -1 0 1 Inf NA])), [false, false, false, false, false, false, true])
+%!assert (isna (single ([NaN -Inf -1 0 1 Inf NA])),
+%!        [false, false, false, false, false, false, true])
 
 %!error isna ()
 %!error isna (1, 2)
@@ -1468,7 +1488,7 @@
 
 DEFUN (isnan, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isnan (@var{x})
+@deftypefn {} {@var{tf} =} isnan (@var{x})
 Return a logical array which is true where the elements of @var{x} are
 NaN values and false where they are not.
 
@@ -1494,13 +1514,15 @@
 %!assert (isnan (NaN))
 %!assert (isnan (NA))
 %!assert (isnan (rand (1,10)), false (1,10))
-%!assert (isnan ([NaN -Inf -1 0 1 Inf NA]), [true, false, false, false, false, false, true])
+%!assert (isnan ([NaN -Inf -1 0 1 Inf NA]),
+%!        [true, false, false, false, false, false, true])
 
 %!assert (! isnan (single (Inf)))
 %!assert (isnan (single (NaN)))
 %!assert (isnan (single (NA)))
 %!assert (isnan (single (rand (1,10))), false (1,10))
-%!assert (isnan (single ([NaN -Inf -1 0 1 Inf NA])), [true, false, false, false, false, false, true])
+%!assert (isnan (single ([NaN -Inf -1 0 1 Inf NA])),
+%!        [true, false, false, false, false, false, true])
 %!assert (! isnan ('a'))
 
 %!error isnan ()
@@ -1509,7 +1531,7 @@
 
 DEFUNX ("isprint", Fisprint, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isprint (@var{s})
+@deftypefn {} {@var{tf} =} isprint (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 printable characters (including the space character) and false where they
 are not.
@@ -1536,7 +1558,7 @@
 
 DEFUNX ("ispunct", Fispunct, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} ispunct (@var{s})
+@deftypefn {} {@var{tf} =} ispunct (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 punctuation characters and false where they are not.
 @seealso{isalpha, isdigit, isspace, iscntrl}
@@ -1565,7 +1587,7 @@
 
 DEFUNX ("isspace", Fisspace, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isspace (@var{s})
+@deftypefn {} {@var{tf} =} isspace (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 whitespace characters (space, formfeed, newline, carriage return, tab, and
 vertical tab) and false where they are not.
@@ -1592,7 +1614,7 @@
 
 DEFUNX ("isupper", Fisupper, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isupper (@var{s})
+@deftypefn {} {@var{tf} =} isupper (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 uppercase letters and false where they are not.
 @seealso{islower, isalpha, isletter, isalnum}
@@ -1618,7 +1640,7 @@
 
 DEFUNX ("isxdigit", Fisxdigit, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} isxdigit (@var{s})
+@deftypefn {} {@var{tf} =} isxdigit (@var{s})
 Return a logical array which is true where the elements of @var{s} are
 hexadecimal digits (0-9 and @nospell{a-fA-F}).
 @seealso{isdigit}
@@ -1646,9 +1668,12 @@
 
 DEFUN (lgamma, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} gammaln (@var{x})
-@deftypefnx {} {} lgamma (@var{x})
+@deftypefn  {} {@var{y} =} gammaln (@var{x})
+@deftypefnx {} {@var{y} =} lgamma (@var{x})
 Return the natural logarithm of the gamma function of @var{x}.
+
+Programming Note: @code{lgamma} is an alias for @code{gammaln} and either name
+can be used in Octave.
 @seealso{gamma, gammainc}
 @end deftypefn */)
 {
@@ -1689,7 +1714,7 @@
 
 DEFUN (log, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} log (@var{x})
+@deftypefn {} {@var{y} =} log (@var{x})
 Compute the natural logarithm,
 @tex
 $\ln{(x)},$
@@ -1714,7 +1739,8 @@
 %!assert (log ([-0.5, -1.5, -2.5]), log ([0.5, 1.5, 2.5]) + pi*1i, sqrt (eps))
 
 %!assert (log (single ([1, e, e^2])), single ([0, 1, 2]), sqrt (eps ("single")))
-%!assert (log (single ([-0.5, -1.5, -2.5])), single (log ([0.5, 1.5, 2.5]) + pi*1i), 4*eps ("single"))
+%!assert (log (single ([-0.5, -1.5, -2.5])),
+%!        single (log ([0.5, 1.5, 2.5]) + pi*1i), 4*eps ("single"))
 
 %!error log ()
 %!error log (1, 2)
@@ -1722,7 +1748,7 @@
 
 DEFUN (log10, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} log10 (@var{x})
+@deftypefn {} {@var{y} =} log10 (@var{x})
 Compute the base-10 logarithm of each element of @var{x}.
 @seealso{log, log2, logspace, exp}
 @end deftypefn */)
@@ -1735,7 +1761,8 @@
 
 /*
 %!assert (log10 ([0.01, 0.1, 1, 10, 100]), [-2, -1, 0, 1, 2], sqrt (eps))
-%!assert (log10 (single ([0.01, 0.1, 1, 10, 100])), single ([-2, -1, 0, 1, 2]), sqrt (eps ("single")))
+%!assert (log10 (single ([0.01, 0.1, 1, 10, 100])),
+%!        single ([-2, -1, 0, 1, 2]), sqrt (eps ("single")))
 
 %!error log10 ()
 %!error log10 (1, 2)
@@ -1743,7 +1770,7 @@
 
 DEFUN (log1p, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} log1p (@var{x})
+@deftypefn {} {@var{y} =} log1p (@var{x})
 Compute
 @tex
 $\ln{(1 + x)}$
@@ -1778,7 +1805,7 @@
 
 DEFUN (real, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} real (@var{z})
+@deftypefn {} {@var{x} =} real (@var{z})
 Return the real part of @var{z}.
 @seealso{imag, conj}
 @end deftypefn */)
@@ -1806,7 +1833,7 @@
 
 DEFUN (round, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} round (@var{x})
+@deftypefn {} {@var{y} =} round (@var{x})
 Return the integer nearest to @var{x}.
 
 If @var{x} is complex, return
@@ -1851,7 +1878,7 @@
 
 DEFUN (roundb, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} roundb (@var{x})
+@deftypefn {} {@var{y} =} roundb (@var{x})
 Return the integer nearest to @var{x}.  If there are two nearest
 integers, return the even one (banker's rounding).
 
@@ -1891,7 +1918,7 @@
 
 DEFUN (sign, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} sign (@var{x})
+@deftypefn {} {@var{y} =} sign (@var{x})
 Compute the @dfn{signum} function.
 
 This is defined as
@@ -1943,7 +1970,7 @@
 
 DEFUNX ("signbit", Fsignbit, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} signbit (@var{x})
+@deftypefn {} {@var{y} =} signbit (@var{x})
 Return logical true if the value of @var{x} has its sign bit set and false
 otherwise.
 
@@ -1982,7 +2009,7 @@
 
 DEFUN (sin, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} sin (@var{x})
+@deftypefn {} {@var{y} =} sin (@var{x})
 Compute the sine for each element of @var{x} in radians.
 @seealso{asin, sind, sinh}
 @end deftypefn */)
@@ -2014,7 +2041,7 @@
 
 DEFUN (sinh, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} sinh (@var{x})
+@deftypefn {} {@var{y} =} sinh (@var{x})
 Compute the hyperbolic sine for each element of @var{x}.
 @seealso{asinh, cosh, tanh}
 @end deftypefn */)
@@ -2042,7 +2069,7 @@
 
 DEFUN (sqrt, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} sqrt (@var{x})
+@deftypefn {} {@var{y} =} sqrt (@var{x})
 Compute the square root of each element of @var{x}.
 
 If @var{x} is negative, a complex result is returned.
@@ -2061,12 +2088,16 @@
 %!assert (sqrt (4), 2)
 %!assert (sqrt (-1), i)
 %!assert (sqrt (1+i), exp (0.5 * log (1+i)), sqrt (eps))
-%!assert (sqrt ([4, -4; i, 1-i]), [2, 2i; exp(0.5 * log (i)), exp(0.5 * log (1-i))], sqrt (eps))
+%!assert (sqrt ([4, -4; i, 1-i]),
+%!        [2, 2i; exp(0.5 * log (i)), exp(0.5 * log (1-i))], sqrt (eps))
 
 %!assert (sqrt (single (4)), single (2))
 %!assert (sqrt (single (-1)), single (i))
-%!assert (sqrt (single (1+i)), single (exp (0.5 * log (1+i))), sqrt (eps ("single")))
-%!assert (sqrt (single ([4, -4; i, 1-i])), single ([2, 2i; exp(0.5 * log (i)), exp(0.5 * log (1-i))]), sqrt (eps ("single")))
+%!assert (sqrt (single (1+i)),
+%!        single (exp (0.5 * log (1+i))), sqrt (eps ("single")))
+%!assert (sqrt (single ([4, -4; i, 1-i])),
+%!        single ([2, 2i; exp(0.5 * log (i)), exp(0.5 * log (1-i))]),
+%!        sqrt (eps ("single")))
 
 %!error sqrt ()
 %!error sqrt (1, 2)
@@ -2074,7 +2105,7 @@
 
 DEFUN (tan, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} tan (@var{z})
+@deftypefn {} {@var{y} =} tan (@var{z})
 Compute the tangent for each element of @var{x} in radians.
 @seealso{atan, tand, tanh}
 @end deftypefn */)
@@ -2106,7 +2137,7 @@
 
 DEFUN (tanh, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} tanh (@var{x})
+@deftypefn {} {@var{y} =} tanh (@var{x})
 Compute hyperbolic tangent for each element of @var{x}.
 @seealso{atanh, sinh, cosh}
 @end deftypefn */)
@@ -2134,8 +2165,8 @@
 
 DEFUNX ("tolower", Ftolower, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn  {} {} tolower (@var{s})
-@deftypefnx {} {} lower (@var{s})
+@deftypefn  {} {@var{y} =} tolower (@var{s})
+@deftypefnx {} {@var{y} =} lower (@var{s})
 Return a copy of the string or cell string @var{s}, with each uppercase
 character replaced by the corresponding lowercase one; non-alphabetic
 characters are left unchanged.
@@ -2148,6 +2179,10 @@
       @result{} "mixed case 123"
 @end group
 @end example
+
+Programming Note: @code{lower} is an alias for @code{tolower} and either name
+can be used in Octave.
+
 @seealso{toupper}
 @end deftypefn */)
 {
@@ -2162,10 +2197,12 @@
 /*
 %!assert (tolower ("OCTAVE"), "octave")
 %!assert (tolower ("123OCTave! _&"), "123octave! _&")
-%!assert (tolower ({"ABC", "DEF", {"GHI", {"JKL"}}}), {"abc", "def", {"ghi", {"jkl"}}})
+%!assert (tolower ({"ABC", "DEF", {"GHI", {"JKL"}}}),
+%!        {"abc", "def", {"ghi", {"jkl"}}})
 %!assert (tolower (["ABC"; "DEF"]), ["abc"; "def"])
 %!assert (tolower ({["ABC"; "DEF"]}), {["abc";"def"]})
-%!assert (tolower (["ABCÄÖÜSS"; "abcäöüß"]), ["abcäöüss"; "abcäöüß"])
+%!assert (tolower (["ABCÄÖÜSS"; "abcäöüß"]),
+%!        ["abcäöüss"; "abcäöüß"])
 %!assert (tolower (repmat ("ÄÖÜ", 2, 1, 3)), repmat ("äöü", 2, 1, 3))
 %!assert (tolower (68), 68)
 %!assert (tolower ({[68, 68; 68, 68]}), {[68, 68; 68, 68]})
@@ -2200,8 +2237,8 @@
 
 DEFUNX ("toupper", Ftoupper, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn  {} {} toupper (@var{s})
-@deftypefnx {} {} upper (@var{s})
+@deftypefn  {} {@var{y} =} toupper (@var{s})
+@deftypefnx {} {@var{y} =} upper (@var{s})
 Return a copy of the string or cell string @var{s}, with each lowercase
 character replaced by the corresponding uppercase one; non-alphabetic
 characters are left unchanged.
@@ -2214,6 +2251,10 @@
       @result{} "MIXED CASE 123"
 @end group
 @end example
+
+Programming Note: @code{upper} is an alias for @code{toupper} and either name
+can be used in Octave.
+
 @seealso{tolower}
 @end deftypefn */)
 {
@@ -2228,10 +2269,12 @@
 /*
 %!assert (toupper ("octave"), "OCTAVE")
 %!assert (toupper ("123OCTave! _&"), "123OCTAVE! _&")
-%!assert (toupper ({"abc", "def", {"ghi", {"jkl"}}}), {"ABC", "DEF", {"GHI", {"JKL"}}})
+%!assert (toupper ({"abc", "def", {"ghi", {"jkl"}}}),
+%!        {"ABC", "DEF", {"GHI", {"JKL"}}})
 %!assert (toupper (["abc"; "def"]), ["ABC"; "DEF"])
 %!assert (toupper ({["abc"; "def"]}), {["ABC";"DEF"]})
-%!assert (toupper (["ABCÄÖÜSS"; "abcäöüß"]), ["ABCÄÖÜSS"; "ABCÄÖÜSS"])
+%!assert (toupper (["ABCÄÖÜSS"; "abcäöüß"]),
+%!        ["ABCÄÖÜSS"; "ABCÄÖÜSS"])
 %!assert (toupper (repmat ("äöü", 2, 1, 3)), repmat ("ÄÖÜ", 2, 1, 3))
 %!assert (toupper (100), 100)
 %!assert (toupper ({[100, 100; 100, 100]}), {[100, 100; 100, 100]})
--- a/libinterp/corefcn/matrix_type.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/matrix_type.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -458,10 +458,13 @@
 
 %!assert (matrix_type (speye (10,10)), "Diagonal")
 %!assert (matrix_type (speye (10,10)([2:10,1],:)), "Permuted Diagonal")
-%!assert (matrix_type ([[speye(10,10);sparse(1,10)],[1;sparse(9,1);1]]), "Upper")
-%!assert (matrix_type ([[speye(10,10);sparse(1,10)],[1;sparse(9,1);1]](:,[2,1,3:11])), "Permuted Upper")
+%!assert (matrix_type ([[speye(10,10);sparse(1,10)],[1;sparse(9,1);1]]),
+%!        "Upper")
+%!assert (matrix_type ([[speye(10,10);sparse(1,10)],[1;sparse(9,1);1]](:,[2,1,3:11])),
+%!        "Permuted Upper")
 %!assert (matrix_type ([speye(10,10),sparse(10,1);1,sparse(1,9),1]), "Lower")
-%!assert (matrix_type ([speye(10,10),sparse(10,1);1,sparse(1,9),1]([2,1,3:11],:)), "Permuted Lower")
+%!assert (matrix_type ([speye(10,10),sparse(10,1);1,sparse(1,9),1]([2,1,3:11],:)),
+%!        "Permuted Lower")
 
 %!test
 %! bnd = spparms ("bandden");
@@ -486,30 +489,40 @@
 %!assert (matrix_type (speye (10,11)([2:10,1],:)), "Permuted Diagonal")
 %!assert (matrix_type (speye (11,10)), "Diagonal")
 %!assert (matrix_type (speye (11,10)([2:11,1],:)), "Permuted Diagonal")
-%#!assert (matrix_type ([[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]]), "Upper")
-%#!assert (matrix_type ([[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]](:,[2,1,3:12])), "Permuted Upper")
+%!#assert (matrix_type ([[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]]), "Upper")
+%!#assert (matrix_type ([[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]](:,[2,1,3:12])), "Permuted Upper")
 %!assert (matrix_type ([speye(11,9),[1;sparse(8,1);1;0]]), "Upper")
-%!assert (matrix_type ([speye(11,9),[1;sparse(8,1);1;0]](:,[2,1,3:10])), "Permuted Upper")
-%#!assert (matrix_type ([speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]), "Lower")
-%#!assert (matrix_type ([speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]([2,1,3:12],:)), "Permuted Lower")
+%!assert (matrix_type ([speye(11,9),[1;sparse(8,1);1;0]](:,[2,1,3:10])),
+%!        "Permuted Upper")
+
+%!#assert (matrix_type ([speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]),
+%!         "Lower")
+%!#assert (matrix_type ([speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]([2,1,3:12],:)),
+%!         "Permuted Lower")
 %!assert (matrix_type ([speye(9,11);[1,sparse(1,8),1,0]]), "Lower")
-%!assert (matrix_type ([speye(9,11);[1,sparse(1,8),1,0]]([2,1,3:10],:)), "Permuted Lower")
+%!assert (matrix_type ([speye(9,11);[1,sparse(1,8),1,0]]([2,1,3:10],:)),
+%!        "Permuted Lower")
 %!assert (matrix_type (spdiags (randn (10,4),[-2:1],10,9)), "Rectangular")
 
 %!assert (matrix_type (1i*speye (10,10)), "Diagonal")
 %!assert (matrix_type (1i*speye (10,10)([2:10,1],:)), "Permuted Diagonal")
-%!assert (matrix_type ([[speye(10,10);sparse(1,10)],[1i;sparse(9,1);1]]), "Upper")
-%!assert (matrix_type ([[speye(10,10);sparse(1,10)],[1i;sparse(9,1);1]](:,[2,1,3:11])), "Permuted Upper")
+%!assert (matrix_type ([[speye(10,10);sparse(1,10)],[1i;sparse(9,1);1]]),
+%!        "Upper")
+%!assert (matrix_type ([[speye(10,10);sparse(1,10)],[1i;sparse(9,1);1]](:,[2,1,3:11])),
+%!        "Permuted Upper")
 %!assert (matrix_type ([speye(10,10),sparse(10,1);1i,sparse(1,9),1]), "Lower")
-%!assert (matrix_type ([speye(10,10),sparse(10,1);1i,sparse(1,9),1]([2,1,3:11],:)), "Permuted Lower")
+%!assert (matrix_type ([speye(10,10),sparse(10,1);1i,sparse(1,9),1]([2,1,3:11],:)),
+%!        "Permuted Lower")
 
 %!test
 %! bnd = spparms ("bandden");
 %! spparms ("bandden", 0.5);
-%! assert (matrix_type (spdiags (1i*randn (10,3),[-1,0,1],10,10)), "Tridiagonal");
+%! assert (matrix_type (spdiags (1i*randn (10,3),[-1,0,1],10,10)),
+%!         "Tridiagonal");
 %! a = 1i*(rand (9,1)-0.5);
 %! a = [[a;0],ones(10,1),[0;-a]];
-%! assert (matrix_type (spdiags (a,[-1,0,1],10,10)), "Tridiagonal Positive Definite");
+%! assert (matrix_type (spdiags (a,[-1,0,1],10,10)),
+%!         "Tridiagonal Positive Definite");
 %! spparms ("bandden", bnd);
 %!test
 %! bnd = spparms ("bandden");
@@ -528,14 +541,16 @@
 %!assert (matrix_type (1i*speye (10,11)([2:10,1],:)), "Permuted Diagonal")
 %!assert (matrix_type (1i*speye (11,10)), "Diagonal")
 %!assert (matrix_type (1i*speye (11,10)([2:11,1],:)), "Permuted Diagonal")
-%#!assert (matrix_type ([[speye(10,10);sparse(1,10)],[[1i,1i];sparse(9,2);[1i,1i]]]), "Upper")
-%#!assert (matrix_type ([[speye(10,10);sparse(1,10)],[[1i,1i];sparse(9,2);[1i,1i]]](:,[2,1,3:12])), "Permuted Upper")
+%!#assert (matrix_type ([[speye(10,10);sparse(1,10)],[[1i,1i];sparse(9,2);[1i,1i]]]), "Upper")
+%!#assert (matrix_type ([[speye(10,10);sparse(1,10)],[[1i,1i];sparse(9,2);[1i,1i]]](:,[2,1,3:12])), "Permuted Upper")
 %!assert (matrix_type ([speye(11,9),[1i;sparse(8,1);1i;0]]), "Upper")
-%!assert (matrix_type ([speye(11,9),[1i;sparse(8,1);1i;0]](:,[2,1,3:10])), "Permuted Upper")
-%#!assert (matrix_type ([speye(10,10),sparse(10,1);[1i;1i],sparse(2,9),[1i;1i]]), "Lower")
-%#!assert (matrix_type ([speye(10,10),sparse(10,1);[1i;1i],sparse(2,9),[1i;1i]]([2,1,3:12],:)), "Permuted Lower")
+%!assert (matrix_type ([speye(11,9),[1i;sparse(8,1);1i;0]](:,[2,1,3:10])),
+%!        "Permuted Upper")
+%!#assert (matrix_type ([speye(10,10),sparse(10,1);[1i;1i],sparse(2,9),[1i;1i]]), "Lower")
+%!#assert (matrix_type ([speye(10,10),sparse(10,1);[1i;1i],sparse(2,9),[1i;1i]]([2,1,3:12],:)), "Permuted Lower")
 %!assert (matrix_type ([speye(9,11);[1i,sparse(1,8),1i,0]]), "Lower")
-%!assert (matrix_type ([speye(9,11);[1i,sparse(1,8),1i,0]]([2,1,3:10],:)), "Permuted Lower")
+%!assert (matrix_type ([speye(9,11);[1i,sparse(1,8),1i,0]]([2,1,3:10],:)),
+%!        "Permuted Lower")
 %!assert (matrix_type (1i*spdiags(randn(10,4),[-2:1],10,9)), "Rectangular")
 
 %!test
--- a/libinterp/corefcn/max.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/max.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -248,7 +248,7 @@
 
   octave_value_list retval (nargout > 1 ? 2 : 1);
 
-  const char *func = (ismin ? "min" : "max");
+  const char *fcn = (ismin ? "min" : "max");
 
   if (nargin == 3 || nargin == 1)
     {
@@ -259,10 +259,10 @@
           dim = args(2).int_value (true) - 1;
 
           if (dim < 0)
-            error ("%s: DIM must be a valid dimension", func);
+            error ("%s: DIM must be a valid dimension", fcn);
 
           if (! args(1).isempty ())
-            warning ("%s: second argument is ignored", func);
+            warning ("%s: second argument is ignored", fcn);
         }
 
       switch (arg.builtin_type ())
@@ -290,7 +290,8 @@
                     retval(0) = range.max ();
                     if (nargout > 1)
                       retval(1) = static_cast<double>
-                                  (range.increment () >= 0 ? range.numel () : 1);
+                                  (range.increment () >= 0 ? range.numel ()
+                                                           : 1);
                   }
               }
             else if (arg.issparse ())
@@ -347,7 +348,7 @@
           break;
 
         default:
-          err_wrong_type_arg (func, arg);
+          err_wrong_type_arg (fcn, arg);
         }
     }
   else
@@ -424,7 +425,7 @@
         //   break;
 
         default:
-          error ("%s: cannot compute %s (%s, %s)", func, func,
+          error ("%s: cannot compute %s (%s, %s)", fcn, fcn,
                  argx.type_name ().c_str (), argy.type_name ().c_str ());
         }
 
@@ -439,10 +440,10 @@
 
 DEFUN (min, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} min (@var{x})
-@deftypefnx {} {} min (@var{x}, [], @var{dim})
-@deftypefnx {} {[@var{w}, @var{iw}] =} min (@var{x})
-@deftypefnx {} {} min (@var{x}, @var{y})
+@deftypefn  {} {@var{m} =} min (@var{x})
+@deftypefnx {} {@var{m} =} min (@var{x}, [], @var{dim})
+@deftypefnx {} {[@var{m}, @var{im}] =} min (@var{x})
+@deftypefnx {} {@var{m} =} min (@var{x}, @var{y})
 Find minimum values in the array @var{x}.
 
 For a vector argument, return the minimum value.  For a matrix argument,
@@ -661,10 +662,10 @@
 
 DEFUN (max, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} max (@var{x})
-@deftypefnx {} {} max (@var{x}, [], @var{dim})
-@deftypefnx {} {[@var{w}, @var{iw}] =} max (@var{x})
-@deftypefnx {} {} max (@var{x}, @var{y})
+@deftypefn  {} {@var{m} =} max (@var{x})
+@deftypefnx {} {@var{m} =} max (@var{x}, [], @var{dim})
+@deftypefnx {} {[@var{m}, @var{im}] =} max (@var{x})
+@deftypefnx {} {@var{m} =} max (@var{x}, @var{y})
 Find maximum values in the array @var{x}.
 
 For a vector argument, return the maximum value.  For a matrix argument,
@@ -924,7 +925,7 @@
   if (nargin < 1 || nargin > 2)
     print_usage ();
 
-  const char *func = (ismin ? "cummin" : "cummax");
+  const char *fcn = (ismin ? "cummin" : "cummax");
 
   octave_value arg = args(0);
   int dim = -1;
@@ -933,7 +934,7 @@
       dim = args(1).int_value (true) - 1;
 
       if (dim < 0)
-        error ("%s: DIM must be a valid dimension", func);
+        error ("%s: DIM must be a valid dimension", fcn);
     }
 
   octave_value_list retval;
@@ -984,7 +985,7 @@
       break;
 
     default:
-      err_wrong_type_arg (func, arg);
+      err_wrong_type_arg (fcn, arg);
     }
 
   return retval;
@@ -992,9 +993,9 @@
 
 DEFUN (cummin, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} cummin (@var{x})
-@deftypefnx {} {} cummin (@var{x}, @var{dim})
-@deftypefnx {} {[@var{w}, @var{iw}] =} cummin (@var{x})
+@deftypefn  {} {@var{M} =} cummin (@var{x})
+@deftypefnx {} {@var{M} =} cummin (@var{x}, @var{dim})
+@deftypefnx {} {[@var{M}, @var{IM}] =} cummin (@var{x})
 Return the cumulative minimum values along dimension @var{dim}.
 
 If @var{dim} is unspecified it defaults to column-wise operation.  For
@@ -1012,10 +1013,10 @@
 
 @example
 @group
-[w, iw] = cummin ([5 4 6 2 3 1])
+[M, IM] = cummin ([5 4 6 2 3 1])
 @result{}
-w =  5  4  4  2  2  1
-iw = 1  2  2  4  4  6
+M =  5  4  4  2  2  1
+IM = 1  2  2  4  4  6
 @end group
 @end example
 
@@ -1047,9 +1048,9 @@
 
 DEFUN (cummax, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} cummax (@var{x})
-@deftypefnx {} {} cummax (@var{x}, @var{dim})
-@deftypefnx {} {[@var{w}, @var{iw}] =} cummax (@dots{})
+@deftypefn  {} {@var{M} =} cummax (@var{x})
+@deftypefnx {} {@var{M} =} cummax (@var{x}, @var{dim})
+@deftypefnx {} {[@var{M}, @var{IM}] =} cummax (@dots{})
 Return the cumulative maximum values along dimension @var{dim}.
 
 If @var{dim} is unspecified it defaults to column-wise operation.  For
@@ -1069,8 +1070,8 @@
 @group
 [w, iw] = cummax ([1 3 2 6 4 5])
 @result{}
-w =  1  3  3  6  6  6
-iw = 1  2  2  4  4  4
+M =  1  3  3  6  6  6
+IM = 1  2  2  4  4  4
 @end group
 @end example
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libinterp/corefcn/mex-private.h	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,39 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if ! defined (octave_mex_private_h)
+#define octave_mex_private_h 1
+
+#include "octave-config.h"
+
+OCTAVE_NAMESPACE_BEGIN
+
+extern OCTINTERP_API octave_value_list
+call_mex (octave_mex_function& mex_fcn, const octave_value_list& args,
+          int nargout_arg);
+
+OCTAVE_NAMESPACE_END
+
+#endif
--- a/libinterp/corefcn/mex.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/mex.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -46,8 +46,6 @@
 #include <set>
 #include <string>
 
-// Needed to instantiate Array objects with custom allocator.
-#include "Array.cc"
 #include "f77-fcn.h"
 #include "lo-ieee.h"
 #include "oct-locbuf.h"
@@ -450,7 +448,9 @@
 
 static inline void * maybe_mark_foreign (void *ptr);
 
+#if defined (OCTAVE_HAVE_STD_PMR_POLYMORPHIC_ALLOCATOR)
 static inline void maybe_disown_ptr (void *ptr);
+#endif
 
 #define VOID_MUTATION_METHOD(FCN_NAME, ARG_LIST)        \
   void FCN_NAME ARG_LIST { request_mutation (); }
@@ -489,7 +489,7 @@
     mxArray *retval = m_val.as_mxArray (m_interleaved);
 
     // RETVAL is assumed to be an mxArray_matlab object.  Should we
-    // assert that condition here?
+    // error_unless that condition here?
 
     if (retval)
       {
@@ -799,9 +799,11 @@
 
   GET_DATA_METHOD (mxUint64, get_uint64s, mxUINT64_CLASS, mxREAL);
 
-  GET_DATA_METHOD (mxComplexDouble, get_complex_doubles, mxDOUBLE_CLASS, mxCOMPLEX);
-
-  GET_DATA_METHOD (mxComplexSingle, get_complex_singles, mxDOUBLE_CLASS, mxCOMPLEX);
+  GET_DATA_METHOD (mxComplexDouble, get_complex_doubles,
+                   mxDOUBLE_CLASS, mxCOMPLEX);
+
+  GET_DATA_METHOD (mxComplexSingle, get_complex_singles,
+                   mxDOUBLE_CLASS, mxCOMPLEX);
 
 #if 0
   /* We don't have these yet. */
@@ -1558,8 +1560,8 @@
 protected:
 
   mxArray_matlab (bool interleaved, mxClassID id = mxUNKNOWN_CLASS)
-    : mxArray_base (interleaved), m_class_name (nullptr), m_id (id), m_ndims (0),
-      m_dims (nullptr)
+    : mxArray_base (interleaved), m_class_name (nullptr), m_id (id),
+      m_ndims (0), m_dims (nullptr)
   { }
 
   mxArray_matlab (bool interleaved, mxClassID id, mwSize ndims,
@@ -1609,7 +1611,8 @@
   }
 
   mxArray_matlab (bool interleaved, mxClassID id, mwSize m, mwSize n)
-    : mxArray_base (interleaved), m_class_name (nullptr), m_id (id), m_ndims (2),
+    : mxArray_base (interleaved), m_class_name (nullptr), m_id (id),
+      m_ndims (2),
       m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize))))
   {
     m_dims[0] = m;
@@ -3445,8 +3448,7 @@
   {
     if (! m_fname)
       {
-        octave::tree_evaluator& tw
-          = octave::__get_evaluator__ ("mex::function_name");
+        octave::tree_evaluator& tw = octave::__get_evaluator__ ();
 
         octave_function *fcn = tw.current_function ();
 
@@ -3755,6 +3757,8 @@
   return ptr;
 }
 
+#if defined (OCTAVE_HAVE_STD_PMR_POLYMORPHIC_ALLOCATOR)
+
 static inline void
 maybe_disown_ptr (void *ptr)
 {
@@ -3766,6 +3770,8 @@
     }
 }
 
+#endif
+
 static inline mxArray *
 maybe_unmark_array (mxArray *ptr)
 {
@@ -4774,6 +4780,8 @@
 typedef F77_RET_T (*fmex_fptr) (F77_INT& nlhs, mxArray **plhs,
                                 F77_INT& nrhs, mxArray **prhs);
 
+OCTAVE_NAMESPACE_BEGIN
+
 octave_value_list
 call_mex (octave_mex_function& mex_fcn, const octave_value_list& args,
           int nargout_arg)
@@ -4845,6 +4853,8 @@
   return retval;
 }
 
+OCTAVE_NAMESPACE_END
+
 // C interface to mex functions:
 
 const char *
@@ -4888,7 +4898,7 @@
 {
   octave_value_list args = mx_to_ov_args (nargin, argin);
 
-  octave::interpreter& interp = octave::__get_interpreter__ ("mexCallMATLAB");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   bool execution_error = false;
 
@@ -4985,7 +4995,7 @@
 {
   int retval = 0;
 
-  octave::interpreter& interp = octave::__get_interpreter__ ("mexEvalString");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   int parse_status;
   bool execution_error = false;
@@ -5014,7 +5024,7 @@
 {
   mxArray *mx = nullptr;
 
-  octave::interpreter& interp = octave::__get_interpreter__ ("mexEvalString");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   int parse_status;
   bool execution_error = false;
@@ -5152,7 +5162,7 @@
 
   octave_value val;
 
-  octave::interpreter& interp = octave::__get_interpreter__ ("mexGetVariable");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   if (! strcmp (space, "global"))
     val = interp.global_varval (name);
@@ -5217,7 +5227,7 @@
   if (! name || name[0] == '\0')
     return 1;
 
-  octave::interpreter& interp = octave::__get_interpreter__ ("mexPutVariable");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   if (! strcmp (space, "global"))
     {
@@ -5347,7 +5357,7 @@
     {
       const char *fname = mexFunctionName ();
 
-      octave::interpreter& interp = octave::__get_interpreter__ ("mexIsLocked");
+      octave::interpreter& interp = octave::__get_interpreter__ ();
 
       retval = interp.mislocked (fname);
     }
@@ -5369,7 +5379,7 @@
       else
         mex_lock_count[fname]++;
 
-      octave::interpreter& interp = octave::__get_interpreter__ ("mexLock");
+      octave::interpreter& interp = octave::__get_interpreter__ ();
 
       interp.mlock ();
     }
@@ -5411,8 +5421,7 @@
 
           if (count == 0)
             {
-              octave::interpreter& interp
-                = octave::__get_interpreter__ ("mexUnLock");
+              octave::interpreter& interp = octave::__get_interpreter__ ();
 
               interp.munlock (fname);
 
--- a/libinterp/corefcn/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -103,6 +103,7 @@
 
 NOINSTALL_COREFCN_INC = \
   %reldir%/interpreter-private.h \
+  %reldir%/mex-private.h \
   %reldir%/oct-hdf5.h \
   %reldir%/oct-opengl.h
 
@@ -231,6 +232,7 @@
   %reldir%/ordschur.cc \
   %reldir%/pager.cc \
   %reldir%/pinv.cc \
+  %reldir%/pow2.cc \
   %reldir%/pr-flt-fmt.cc \
   %reldir%/pr-output.cc \
   %reldir%/procstream.cc \
--- a/libinterp/corefcn/mxarray.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/mxarray.h	Tue Nov 15 13:15:28 2022 -0800
@@ -652,7 +652,8 @@
   void set_field_by_number (mwIndex index, int key_num, mxArray *val)
   { DO_VOID_MUTABLE_METHOD (set_field_by_number (index, key_num, val)); }
 
-  int get_number_of_fields (void) const { return m_rep->get_number_of_fields (); }
+  int get_number_of_fields (void) const
+  { return m_rep->get_number_of_fields (); }
 
   const char * get_field_name_by_number (int key_num) const
   { DO_MUTABLE_METHOD (const char*, get_field_name_by_number (key_num)); }
@@ -668,7 +669,8 @@
   mwIndex calc_single_subscript (mwSize nsubs, mwIndex *subs) const
   { return m_rep->calc_single_subscript (nsubs, subs); }
 
-  std::size_t get_element_size (void) const { return m_rep->get_element_size (); }
+  std::size_t get_element_size (void) const
+  { return m_rep->get_element_size (); }
 
   bool mutation_needed (void) const { return m_rep->mutation_needed (); }
 
--- a/libinterp/corefcn/nproc.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/nproc.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -36,8 +36,8 @@
 
 DEFUN (nproc, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} nproc ()
-@deftypefnx {} {} nproc (@var{query})
+@deftypefn  {} {@var{n} =} nproc ()
+@deftypefnx {} {@var{n} =} nproc (@var{query})
 Return the current number of available (logical) processors.
 
 This returns the number of logical processors.  For processors with
--- a/libinterp/corefcn/oct-errno.in.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/oct-errno.in.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -321,7 +321,8 @@
 int
 octave_errno::do_lookup (const std::string& name)
 {
-  return (m_errno_tbl.find (name) != m_errno_tbl.end ()) ? m_errno_tbl[name] : -1;
+  return (m_errno_tbl.find (name) != m_errno_tbl.end ()) ? m_errno_tbl[name]
+                                                         : -1;
 }
 
 octave_scalar_map
--- a/libinterp/corefcn/oct-hist.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/oct-hist.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -142,8 +142,7 @@
           {
             if (command_history::add (tmp))
               {
-                event_manager& evmgr
-                  = __get_event_manager__ ("edit_history_add_hist");
+                event_manager& evmgr = __get_event_manager__ ();
 
                 evmgr.append_history (tmp);
               }
@@ -614,7 +613,6 @@
 @end deftypefn */)
 {
   // FIXME: should this be limited to the top-level context?
-
   if (args.length () > 2)
     print_usage ();
 
@@ -629,8 +627,8 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {} history
 @deftypefnx {} {} history @var{opt1} @dots{}
-@deftypefnx {} {@var{h} =} history ()
-@deftypefnx {} {@var{h} =} history (@var{opt1}, @dots{})
+@deftypefnx {} {@var{H} =} history ()
+@deftypefnx {} {@var{H} =} history (@var{opt1}, @dots{})
 If invoked with no arguments, @code{history} displays a list of commands
 that you have executed.
 
@@ -821,8 +819,8 @@
 
 The default value is @file{@w{@env{$DATA}}/octave/history}, where
 @w{@env{$DATA}} is the platform-specific location for (roaming) user data files
-(e.g., @w{@env{$XDG_DATA_HOME}} or, if that is not set, @file{~/.local/share} on
-Unix-like operating systems or @w{@env{%APPDATA%}} on Windows).  The default
+(e.g., @w{@env{$XDG_DATA_HOME}} or, if that is not set, @file{~/.local/share}
+on Unix-like operating systems or @w{@env{%APPDATA%}} on Windows).  The default
 value may be overridden by the environment variable @w{@env{OCTAVE_HISTFILE}}.
 
 Programming Notes:
@@ -867,7 +865,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} history_timestamp_format_string ()
 @deftypefnx {} {@var{old_val} =} history_timestamp_format_string (@var{new_val})
-@deftypefnx {} {} history_timestamp_format_string (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} history_timestamp_format_string (@var{new_val}, "local")
 Query or set the internal variable that specifies the format string
 for the comment line that is written to the history file when Octave
 exits.
@@ -902,7 +900,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} history_save ()
 @deftypefnx {} {@var{old_val} =} history_save (@var{new_val})
-@deftypefnx {} {} history_save (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} history_save (@var{new_val}, "local")
 Query or set the internal variable that controls whether commands entered
 on the command line are saved in the history file.
 
--- a/libinterp/corefcn/oct-map.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/oct-map.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -498,8 +498,6 @@
 octave_map
 octave_map::transpose (void) const
 {
-  assert (ndims () == 2);
-
   octave_map retval (m_keys);
 
   retval.m_dimensions = dim_vector (m_dimensions (1), m_dimensions (0));
@@ -614,7 +612,7 @@
   for (octave_idx_type j = 0; j < nf; j++)
     {
       retval.m_vals.push_back (Cell (rd));
-      assert (retval.m_vals[j].numel () == n);
+      error_unless (retval.m_vals[j].numel () == n);
       for (octave_idx_type i = 0; i < n; i++)
         retval.m_vals[j].xelem (i) = map_list[i].m_vals[j];
     }
@@ -984,7 +982,8 @@
 octave_map
 octave_map::page (octave_idx_type k) const
 {
-  static Array<octave::idx_vector> ia (dim_vector (3, 1), octave::idx_vector::colon);
+  static Array<octave::idx_vector> ia (dim_vector (3, 1),
+                                       octave::idx_vector::colon);
 
   ia(2) = k;
   return index (ia);
@@ -1032,7 +1031,7 @@
           error (ee, "incompatible fields in struct assignment");
         }
 
-      assert (rhs1.m_keys.is_same (m_keys));
+      error_unless (rhs1.m_keys.is_same (m_keys));
       assign (i, rhs1);
     }
 }
@@ -1080,7 +1079,7 @@
           error (ee, "incompatible fields in struct assignment");
         }
 
-      assert (rhs1.m_keys.is_same (m_keys));
+      error_unless (rhs1.m_keys.is_same (m_keys));
       assign (i, j, rhs1);
     }
 }
@@ -1128,7 +1127,7 @@
           error (ee, "incompatible fields in struct assignment");
         }
 
-      assert (rhs1.m_keys.is_same (m_keys));
+      error_unless (rhs1.m_keys.is_same (m_keys));
       assign (ia, rhs1);
     }
 }
--- a/libinterp/corefcn/oct-opengl.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/oct-opengl.h	Tue Nov 15 13:15:28 2022 -0800
@@ -70,9 +70,9 @@
     // class that does nothing.  This makes the implementation of
     // other things that rely on this class slightly simpler.
 
-    virtual void glAlphaFunc (GLenum func, GLclampf ref)
+    virtual void glAlphaFunc (GLenum fcn, GLclampf ref)
     {
-      ::glAlphaFunc (func, ref);
+      ::glAlphaFunc (fcn, ref);
     }
 
     virtual void glBegin (GLenum mode)
@@ -160,9 +160,9 @@
       ::glDeleteTextures (n, textures);
     }
 
-    virtual void glDepthFunc (GLenum func)
+    virtual void glDepthFunc (GLenum fcn)
     {
-      ::glDepthFunc (func);
+      ::glDepthFunc (fcn);
     }
 
     virtual void glDisable (GLenum cap)
--- a/libinterp/corefcn/oct-stream.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/oct-stream.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -34,6 +34,7 @@
 #include <algorithm>
 #include <deque>
 #include <fstream>
+#include <limits>
 #include <iomanip>
 #include <iostream>
 #include <sstream>
@@ -42,7 +43,6 @@
 #include "Array.h"
 #include "Cell.h"
 #include "byte-swap.h"
-#include "lo-cutils.h"
 #include "lo-ieee.h"
 #include "lo-mappers.h"
 #include "lo-utils.h"
@@ -50,6 +50,7 @@
 #include "octave-preserve-stream-state.h"
 #include "quit.h"
 #include "str-vec.h"
+#include "strcase-wrappers.h"
 
 #include "error.h"
 #include "errwarn.h"
@@ -99,7 +100,7 @@
       }
     catch (const execution_exception&)
       {
-        interpreter& interp = __get_interpreter__ ("convert_to_valid_int");
+        interpreter& interp = __get_interpreter__ ();
 
         interp.recover_from_exception ();
 
@@ -351,9 +352,9 @@
     void add_elt_to_list (int width, bool discard, char type, char modifier,
                           const std::string& char_class = "");
 
-    void process_conversion (const std::string& s, std::size_t& i, std::size_t n,
-                             int& width, bool& discard, char& type,
-                             char& modifier);
+    void process_conversion (const std::string& s, std::size_t& i,
+                             std::size_t n, int& width, bool& discard,
+                             char& type, char& modifier);
 
     int finish_conversion (const std::string& s, std::size_t& i, std::size_t n,
                            int width, bool discard, char& type,
@@ -1248,7 +1249,7 @@
 
     // Load new data into buffer, and set eob, last, idx.
     // Return EOF at end of file, 0 otherwise.
-    int refresh_buf (void);
+    int refresh_buf (bool initialize = false);
 
     // Get a character, relying on caller to call field_done if
     // a delimiter has been reached.
@@ -1293,7 +1294,7 @@
 
     bool eof (void)
     {
-      return (m_eob == m_buf && m_i_stream.eof ())
+      return (m_eob == m_buf + m_overlap && m_i_stream.eof ())
               || (m_flags & std::ios_base::eofbit);
     }
 
@@ -1319,6 +1320,17 @@
 
     bool no_progress (void) { return m_progress_marker == m_idx; }
 
+    // Number of characters remaining until end of stream if it is already
+    // buffered. int_max otherwise.
+
+    std::ptrdiff_t remaining (void)
+    {
+      if (m_eob < m_buf + m_bufsize)
+        return m_eob - m_idx;
+      else
+        return std::numeric_limits<std::ptrdiff_t>::max ();
+    }
+
   private:
 
     // Number of characters to read from the file at once.
@@ -1340,6 +1352,9 @@
     // Position after last character in buffer.
     char *m_eob;
 
+    // Overlap with old content when refreshing buffer.
+    std::ptrdiff_t m_overlap;
+
     // True if there is delimiter in the buffer after idx.
     bool m_delimited;
 
@@ -1374,7 +1389,7 @@
     m_eob = m_buf + m_bufsize;
     m_idx = m_eob;                // refresh_buf shouldn't try to copy old data
     m_progress_marker = m_idx;
-    refresh_buf ();               // load the first batch of data
+    refresh_buf (true);           // load the first batch of data
   }
 
   // Used to create a stream from a strstream from data read from a dstr.
@@ -1390,7 +1405,7 @@
       {
         m_i_stream.clear ();
         m_i_stream.seekg (m_buf_in_file);
-        m_i_stream.read (m_buf, m_idx - m_buf);
+        m_i_stream.read (m_buf, m_idx - m_buf - m_overlap);
       }
 
     delete [] m_buf;
@@ -1448,7 +1463,7 @@
   // processed.
 
   int
-  delimited_stream::refresh_buf (void)
+  delimited_stream::refresh_buf (bool initialize)
   {
     if (eof ())
       return std::istream::traits_type::eof ();
@@ -1459,36 +1474,54 @@
       m_idx = m_eob;
 
     std::size_t old_remaining = m_eob - m_idx;
+    std::size_t old_overlap = 0;
+
+    if (initialize || (m_idx - m_buf <= 0))
+      m_overlap = 0;
+    else
+      {
+        old_overlap = m_overlap;
+        // Retain the last 25 bytes in the buffer.  That should be more than enough
+        // to putback an entire double precision floating point number in decimal
+        // including 3 digit exponent and signs.  Do we ever need to putback more
+        // than that?
+        m_overlap = 25;
+        // Assure we don't "underflow" with the overlap
+        m_overlap = std::min (m_overlap, m_idx - m_buf - 1);
+      }
 
     octave_quit ();                       // allow ctrl-C
 
-    if (old_remaining > 0)
-      {
-        m_buf_in_file += (m_idx - m_buf);
-        memmove (m_buf, m_idx, old_remaining);
+    if (old_remaining + m_overlap > 0)
+      {
+        m_buf_in_file += (m_idx - old_overlap - m_buf);
+        std::memmove (m_buf, m_idx - m_overlap, m_overlap + old_remaining);
       }
     else
       m_buf_in_file = m_i_stream.tellg ();  // record for destructor
 
-    m_progress_marker -= m_idx - m_buf;  // where original idx would have been
-    m_idx = m_buf;
+    // where original idx would have been
+    m_progress_marker -= m_idx - m_overlap - m_buf;
+    m_idx = m_buf + m_overlap;
 
     int gcount;   // chars read
     if (! m_i_stream.eof ())
       {
-        m_i_stream.read (m_buf + old_remaining, m_bufsize - old_remaining);
+        m_i_stream.read (m_buf + m_overlap + old_remaining,
+                         m_bufsize - m_overlap - old_remaining);
         gcount = m_i_stream.gcount ();
       }
     else
       gcount = 0;
 
-    m_eob = m_buf + old_remaining + gcount;
+    m_eob = m_buf + m_overlap + old_remaining + gcount;
     m_last = m_eob;
     if (gcount == 0)
       {
         m_delimited = false;
 
-        if (m_eob != m_buf)   // no more data in file, but still some to go
+        if (m_eob != m_buf + m_overlap)
+          // no more data in file, but still some to go
           retval = 0;
         else
           // file and buffer are both done.
@@ -1498,13 +1531,14 @@
       {
         m_delimited = true;
 
-        for (m_last = m_eob - m_longest; m_last - m_buf >= 0; m_last--)
+        for (m_last = m_eob - m_longest; m_last - m_buf - m_overlap >= 0;
+             m_last--)
           {
             if (m_delims.find (*m_last) != std::string::npos)
               break;
           }
 
-        if (m_last < m_buf)
+        if (m_last < m_buf + m_overlap)
           m_delimited = false;
 
         retval = 0;
@@ -1528,7 +1562,7 @@
   {
     char *retval;
 
-    if (m_eob - m_idx > size)
+    if (m_eob - m_idx >= size)
       {
         retval = m_idx;
         m_idx += size;
@@ -1755,7 +1789,8 @@
 
     int read_first_row (delimited_stream& is, textscan& ts);
 
-    std::list<octave_value> out_buf (void) const { return (m_output_container); }
+    std::list<octave_value> out_buf (void) const
+    { return (m_output_container); }
 
   private:
 
@@ -2616,8 +2651,8 @@
       }
     // Finally, create the stream.
     delimited_stream is (isp,
-                         (m_delim_table.empty () ? m_whitespace + "\r\n"
-                                               : m_delims),
+                         (m_delims.empty () ? m_whitespace + "\r\n"
+                                            : m_delims),
                          max_lookahead, buf_size);
 
     // Grow retval dynamically.  "size" is half the initial size
@@ -2792,12 +2827,12 @@
     double retval = 0;
     bool valid = false;         // syntactically correct double?
 
-    int ch = is.peek ();
+    int ch = is.peek_undelim ();
 
     if (ch == '+')
       {
         is.get ();
-        ch = is.peek ();
+        ch = is.peek_undelim ();
         if (width_left)
           width_left--;
       }
@@ -2805,7 +2840,7 @@
       {
         sign = -1;
         is.get ();
-        ch = is.peek ();
+        ch = is.peek_undelim ();
         if (width_left)
           width_left--;
       }
@@ -2853,6 +2888,11 @@
 
         if (i > 0)
           valid = true;           // valid if at least one digit after '.'
+        else if (! valid)         // if there was nothing before and after '.'
+          {
+            is.putback (ch);
+            ch = '.';
+          }
 
         // skip remainder after '.', to field width, to look for exponent
         if (i == precision)
@@ -2866,7 +2906,7 @@
     bool used_exp = false;
     if (valid && width_left > 1 && m_exp_chars.find (ch) != std::string::npos)
       {
-        int ch1 = is.peek ();
+        int ch1 = is.peek_undelim ();
         if (ch1 == '-' || ch1 == '+' || (ch1 >= '0' && ch1 <= '9'))
           {
             // if 1.0e+$ or some such, this will set failbit, as we want
@@ -2885,7 +2925,7 @@
                 is.get ();
               }
             valid = false;
-            while (width_left-- && is && (ch = is.get ()) >= '0' && ch <= '9')
+            while (width_left-- && is && (ch = is.get_undelim ()) >= '0' && ch <= '9')
               {
                 exp = exp*10 + ch - '0';
                 valid = true;
@@ -2908,9 +2948,9 @@
       is.putback (ch);
 
     // Check for +/- inf and NaN
-    if (! valid && width_left >= 3)
-      {
-        int i = lookahead (is, m_inf_nan, 3, false);  // false -> case insensitive
+    if (! valid && width_left >= 3 && is.remaining () >= 3)
+      {
+        int i = lookahead (is, m_inf_nan, 3, false);  // false->case insensitive
         if (i == 0)
           {
             retval = numeric_limits<double>::Inf ();
@@ -2944,23 +2984,23 @@
     bool as_empty = false;  // did we fail but match a "treat_as_empty" string?
     bool inf = false;
 
-    int ch = is.peek ();
+    int ch = is.peek_undelim ();
     if (ch == '+' || ch == '-')   // check for [+-][ij] with no coefficients
       {
         ch = is.get ();
-        int ch2 = is.peek ();
+        int ch2 = is.peek_undelim ();
         if (ch2 == 'i' || ch2 == 'j')
           {
             double value = 1;
             is.get ();
             // Check not -inf
-            if (is.peek () == 'n')
+            if (is.peek_undelim () == 'n')
               {
                 char *pos = is.tellg ();
                 std::ios::iostate state = is.rdstate ();
 
                 is.get ();
-                ch2 = is.get ();
+                ch2 = is.get_undelim ();
                 if (ch2 == 'f')
                   {
                     inf = true;
@@ -2971,6 +3011,8 @@
                 else
                   {
                     is.clear (state);
+                    // FIXME: Buffer might have refreshed.
+                    //        pos might no longer be valid.
                     is.seekg (pos);   // reset to position before look-ahead
                   }
               }
@@ -2986,6 +3028,7 @@
         char *pos = is.tellg ();
         std::ios::iostate state = is.rdstate ();
         //re = read_value<double> (is);
+        // FIXME: read_double might refresh the buffer.  So seekg might be off.
         re = read_double (is, fmt);
 
         // check for "treat as empty" string
@@ -3037,7 +3080,8 @@
           {
             state = is.rdstate ();   // before tellg, since that fails at EOF
 
-            ch = is.peek ();   // ch == EOF if read failed; no need to chk fail
+            ch = is.peek_undelim ();
+            // ch == EOF if read failed; no need to chk fail
             if (ch == 'i' || ch == 'j')           // pure imaginary
               {
                 is.get ();
@@ -3051,11 +3095,13 @@
                 state = is.rdstate ();
 
                 //im = read_value<double> (is);
+                // FIXME: read_double might refresh the buffer.
+                //        So seekg might be off after this.
                 im = read_double (is, fmt);
                 if (is.fail ())
                   im = 1;
 
-                if (is.peek () == 'i' || is.peek () == 'j')
+                if (is.peek_undelim () == 'i' || is.peek_undelim () == 'j')
                   is.get ();
                 else
                   {
@@ -3166,7 +3212,7 @@
               val.append (std::max (val.length (),
                                     static_cast<std::size_t> (16)), '\0');
 
-            int ch = is.get ();
+            int ch = is.get_undelim ();
             if (is_delim (ch) || ch == std::istream::traits_type::eof ())
               {
                 is.putback (ch);
@@ -3224,7 +3270,7 @@
   {
     skip_whitespace (is);
 
-    if (is.peek () != '"')
+    if (is.peek_undelim () != '"')
       scan_string (is, fmt, val);
     else
       {
@@ -3505,7 +3551,7 @@
               {
                 if (m_delim_list.isempty ())
                   {
-                    if (! is_delim (is.peek ()))
+                    if (! is_delim (is.peek_undelim ()))
                       this_conversion_failed = true;
                   }
                 else  // Cell array of multi-character delimiters
@@ -3929,7 +3975,7 @@
           {
             is.get ();
             if (c1 == m_eol1 && is.peek_undelim () == m_eol2)
-              is.get_undelim ();          // if \r\n, skip the \n too.
+              is.get ();          // if \r\n, skip the \n too.
 
             if (multiple_delims_as_one)
               {
@@ -4042,7 +4088,7 @@
   base_stream::clearerr (void)
   {
     std::istream *is = input_stream ();
-    std::ostream *os = output_stream ();
+    std::ostream *os = preferred_output_stream ();
 
     if (is)
       is->clear ();
@@ -4058,7 +4104,7 @@
   base_stream::do_gets (octave_idx_type max_len, bool& err,
                         bool strip_newline, const std::string& who)
   {
-    interpreter& interp = __get_interpreter__ ("base_stream::do_gets");
+    interpreter& interp = __get_interpreter__ ();
 
     if (interp.interactive () && file_number () == 0)
       ::error ("%s: unable to read from stdin while running interactively",
@@ -4175,7 +4221,7 @@
   off_t
   base_stream::skipl (off_t num, bool& err, const std::string& who)
   {
-    interpreter& interp = __get_interpreter__ ("base_stream::skipl");
+    interpreter& interp = __get_interpreter__ ();
 
     if (interp.interactive () && file_number () == 0)
       ::error ("%s: unable to read from stdin while running interactively",
@@ -4670,7 +4716,7 @@
                          octave_idx_type& conversion_count,
                          const std::string& who)
   {
-    interpreter& interp = __get_interpreter__ ("base_stream::do_scanf");
+    interpreter& interp = __get_interpreter__ ();
 
     if (interp.interactive () && file_number () == 0)
       ::error ("%s: unable to read from stdin while running interactively",
@@ -5297,7 +5343,7 @@
 
         // FIXME: is this the right thing to do?
 
-        interpreter& interp = __get_interpreter__ ("base_stream::do_oscanf");
+        interpreter& interp = __get_interpreter__ ();
 
         if (interp.interactive () && ! application::forced_interactive ()
             && name () == "stdin")
@@ -5392,7 +5438,7 @@
                             const std::string& who,
                             octave_idx_type& read_count)
   {
-    interpreter& interp = __get_interpreter__ ("base_stream::do_textscan");
+    interpreter& interp = __get_interpreter__ ();
 
     if (interp.interactive () && file_number () == 0)
       ::error ("%s: unable to read from stdin while running interactively",
@@ -5422,7 +5468,7 @@
   {
     int retval = -1;
 
-    std::ostream *os = output_stream ();
+    std::ostream *os = preferred_output_stream ();
 
     if (! os)
       invalid_operation ("fflush", "writing");
@@ -5632,24 +5678,23 @@
 
   template <typename T>
   static int
-  do_printf_conv (std::ostream& os, const std::string& encoding,
-                  const char *fmt, int nsa, int sa_1, int sa_2, T arg,
-                  const std::string& who)
+  do_printf_conv (std::ostream& os, const char *fmt, int nsa, int sa_1,
+                  int sa_2, T arg, const std::string& who)
   {
     int retval = 0;
 
     switch (nsa)
       {
       case 2:
-        retval = format (os, encoding, fmt, sa_1, sa_2, arg);
+        retval = format (os, fmt, sa_1, sa_2, arg);
         break;
 
       case 1:
-        retval = format (os, encoding, fmt, sa_1, arg);
+        retval = format (os, fmt, sa_1, arg);
         break;
 
       case 0:
-        retval = format (os, encoding, fmt, arg);
+        retval = format (os, fmt, arg);
         break;
 
       default:
@@ -5663,7 +5708,7 @@
   static std::size_t
   do_printf_string (std::ostream& os, const printf_format_elt *elt,
                     int nsa, int sa_1, int sa_2, const std::string& arg,
-                    const std::string& encoding, const std::string& who)
+                    const std::string& who)
   {
     if (nsa > 2)
       ::error ("%s: internal error handling format", who.c_str ());
@@ -5677,12 +5722,6 @@
     std::size_t prec = (nsa > 1 ? sa_2 : (elt->prec == -1 ? len : elt->prec));
 
     std::string print_str = prec < arg.length () ? arg.substr (0, prec) : arg;
-    if (encoding.compare ("utf-8"))
-      {
-        std::size_t src_len = print_str.length ();
-        print_str = string::u8_to_encoding (who, print_str, encoding);
-        len -= src_len - print_str.length ();
-      }
 
     std::size_t fw = (nsa > 0 ? sa_1 : (elt->fw == -1 ? len : elt->fw));
 
@@ -5809,8 +5848,8 @@
               tval = (lo_ieee_is_NA (dval) ? "NA" : "NaN");
           }
 
-        retval += do_printf_conv (os, encoding (), tfmt.c_str (), nsa, sa_1,
-                                  sa_2, tval, who);
+        retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2, tval,
+                                  who);
       }
     else
       {
@@ -5829,8 +5868,8 @@
                 // Insert "long" modifier.
                 tfmt.replace (tfmt.rfind (type), 1, llmod + type);
 
-                retval += do_printf_conv (os, encoding (), tfmt.c_str (), nsa,
-                                          sa_1, sa_2, tval.value (), who);
+                retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2,
+                                          tval.value (), who);
               }
             else
               {
@@ -5838,8 +5877,8 @@
 
                 double dval = val.double_value (true);
 
-                retval += do_printf_conv (os, encoding (), tfmt.c_str (), nsa,
-                                          sa_1, sa_2, dval, who);
+                retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2,
+                                          dval, who);
               }
             break;
 
@@ -5851,8 +5890,8 @@
                 // Insert "long" modifier.
                 tfmt.replace (tfmt.rfind (type), 1, llmod + type);
 
-                retval += do_printf_conv (os, encoding (), tfmt.c_str (), nsa,
-                                          sa_1, sa_2, tval.value (), who);
+                retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2,
+                                          tval.value (), who);
               }
             else
               {
@@ -5860,8 +5899,8 @@
 
                 double dval = val.double_value (true);
 
-                retval += do_printf_conv (os, encoding (), tfmt.c_str (), nsa,
-                                          sa_1, sa_2, dval, who);
+                retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2,
+                                          dval, who);
               }
             break;
 
@@ -5870,8 +5909,8 @@
             {
               double dval = val.double_value (true);
 
-              retval += do_printf_conv (os, encoding (), tfmt.c_str (), nsa,
-                                        sa_1, sa_2, dval, who);
+              retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2,
+                                        dval, who);
             }
             break;
 
@@ -5903,7 +5942,7 @@
 
     octave_idx_type m_nconv = fmt_list.num_conversions ();
 
-    std::ostream *osp = output_stream ();
+    std::ostream *osp = preferred_output_stream ();
 
     if (! osp)
       invalid_operation (who, "writing");
@@ -5956,18 +5995,12 @@
 
             if (elt->type == '%')
               {
-                if (encoding ().compare ("utf-8"))
-                  os << string::u8_to_encoding (who, "%", encoding ());
-                else
-                  os << '%';
+                os << '%';
                 retval++;
               }
             else if (elt->args == 0 && ! elt->text.empty ())
               {
-                if (encoding ().compare ("utf-8"))
-                  os << string::u8_to_encoding (who, elt->text, encoding ());
-                else
-                  os << elt->text;
+                os << elt->text;
                 retval += (elt->text.length ());
               }
             else if (elt->type == 's' || elt->type == 'c')
@@ -5981,8 +6014,7 @@
                         std::string sval = val.string_value ();
 
                         retval += do_printf_string (os, elt, nsa, sa_1,
-                                                    sa_2, sval, encoding (),
-                                                    who);
+                                                    sa_2, sval, who);
                       }
                     else
                       retval += do_numeric_printf_conv (os, elt, nsa, sa_1,
@@ -6039,7 +6071,7 @@
   {
     int retval = -1;
 
-    std::ostream *osp = output_stream ();
+    std::ostream *osp = preferred_output_stream ();
 
     if (! osp)
       invalid_operation (who, "writing");
@@ -6365,7 +6397,10 @@
   stream::close (void)
   {
     if (stream_ok ())
+    {
+      m_rep->flush ();
       m_rep->close ();
+    }
   }
 
   template <typename SRC_T, typename DST_T>
@@ -6595,9 +6630,6 @@
     // consistent with the order of the elements in the data_type enum in the
     // oct_data_conv class.
 
-    // Expose this in a future version?
-    std::size_t char_count = 0;
-
     std::ptrdiff_t tmp_count = 0;
 
     try
@@ -6660,7 +6692,7 @@
     std::ptrdiff_t input_buf_size
       = static_cast<std::ptrdiff_t> (input_buf_elts) * input_elt_size;
 
-    assert (input_buf_size >= 0);
+    error_if (input_buf_size < 0);
 
     // Must also work and return correct type object for 0 elements to read.
     std::istream *isp = input_stream ();
@@ -6701,7 +6733,6 @@
 
             std::size_t gcount = is.gcount ();
 
-            char_count += gcount;
             cur_pos += gcount;
 
             octave_idx_type nel = gcount / input_elt_size;
--- a/libinterp/corefcn/oct-stream.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/oct-stream.h	Tue Nov 15 13:15:28 2022 -0800
@@ -35,6 +35,8 @@
 #include <memory>
 #include <string>
 
+#include "oct-string.h"
+
 // These only appear as reference arguments or return values.
 
 class Cell;
@@ -73,7 +75,8 @@
                  mach_info::float_format ff = mach_info::native_float_format (),
                  const std::string& encoding = "utf-8")
       : m_mode (arg_md), m_flt_fmt (ff), m_encoding (encoding),
-        m_fail (false), m_open_state (true), m_errmsg ()
+        m_conv_ostream (nullptr), m_fail (false), m_open_state (true),
+        m_errmsg ()
     { }
 
     // No copying!
@@ -115,6 +118,31 @@
 
     virtual std::ostream * output_stream (void) { return nullptr; }
 
+    // Return either the original output stream or one wrapped with the
+    // encoding facet.
+
+    std::ostream * preferred_output_stream (void)
+    {
+      if (! m_encoding.compare ("utf-8"))
+        return output_stream ();
+
+      if (m_conv_ostream)
+        return m_conv_ostream;
+
+      // wrap the output stream with encoding conversion facet
+      std::ostream *os = output_stream ();
+      if (os && *os)
+      {
+        convfacet_u8 *facet = new convfacet_u8 (m_encoding);
+        std::wbuffer_convert<convfacet_u8, char> *converter
+          = new std::wbuffer_convert<convfacet_u8, char> (os->rdbuf (),
+                                                          facet);
+        m_conv_ostream = new std::ostream (converter);
+      }
+
+      return (m_conv_ostream ? m_conv_ostream : output_stream ());
+    }
+
     // Return TRUE if this stream is open.
 
     bool is_open (void) const { return m_open_state; }
@@ -183,6 +211,19 @@
     // Code page
     std::string m_encoding;
 
+    // encoding conversion facet
+    typedef string::deletable_facet<string::codecvt_u8> convfacet_u8;
+
+    // FIXME: Identified by compiler as unused private field.
+    // Commented out 10/29/2022.
+    // If there are no repercussions, delete entirely.
+    // std::wbuffer_convert<convfacet_u8, char> *m_converter;
+
+    // wrappers for encoding conversion
+    // std::istream *m_conv_istream;
+
+    std::ostream *m_conv_ostream;
+
     // TRUE if an error has occurred.
     bool m_fail;
 
@@ -415,7 +456,7 @@
 
     std::ostream * output_stream (void)
     {
-      return m_rep ? m_rep->output_stream () : nullptr;
+      return (m_rep ? m_rep->preferred_output_stream () : nullptr);
     }
 
     void clearerr (void) { if (m_rep) m_rep->clearerr (); }
@@ -476,7 +517,8 @@
     lookup (const octave_value& fid, const std::string& who = "") const;
 
     OCTINTERP_API int remove (int fid, const std::string& who = "");
-    OCTINTERP_API int remove (const octave_value& fid, const std::string& who = "");
+    OCTINTERP_API int remove (const octave_value& fid,
+                              const std::string& who = "");
 
     OCTINTERP_API void clear (bool flush = true);
 
--- a/libinterp/corefcn/pager.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/pager.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -127,7 +127,7 @@
   int
   pager_buf::sync (void)
   {
-    output_system& output_sys = __get_output_system__ ("pager_buf::sync");
+    output_system& output_sys = __get_output_system__ ();
 
     char *buf = pbase ();
 
@@ -164,7 +164,7 @@
   int
   diary_buf::sync (void)
   {
-    output_system& output_sys = __get_output_system__ ("__stdout__");
+    output_system& output_sys = __get_output_system__ ();
 
     std::ofstream& external_diary_file = output_sys.external_diary_file ();
 
@@ -259,7 +259,7 @@
 
   void flush_stdout (void)
   {
-    output_system& output_sys = __get_output_system__ ("flush_stdout");
+    output_system& output_sys = __get_output_system__ ();
 
     output_sys.flush_stdout ();
   }
@@ -491,14 +491,14 @@
 
   std::ostream& __stdout__ (void)
   {
-    output_system& output_sys = __get_output_system__ ("__stdout__");
+    output_system& output_sys = __get_output_system__ ();
 
     return output_sys.__stdout__ ();
   }
 
   std::ostream& __diary__ (void)
   {
-    output_system& output_sys = __get_output_system__ ("__diary__");
+    output_system& output_sys = __get_output_system__ ();
 
     return output_sys.__diary__ ();
   }
@@ -623,13 +623,14 @@
 
 DEFUN (terminal_size, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} terminal_size ()
-Query or set the size of the terminal window.  If called with no
-arguments, return a two-element row vector containing the current size
-of the terminal window in characters (rows and columns).  If called with
-a two-element vector of integer values, set the terminal size and return
-the previous setting.  Setting the size manually should not be needed
-when using readline for command-line editing.
+@deftypefn  {} {[@var{rows}, @var{cols}] =} terminal_size ()
+@deftypefnx {} {} terminal_size ([@var{rows}, @var{cols}])
+Query or set the size of the terminal window.  If called with no arguments,
+return a two-element row vector containing the current size of the terminal
+window in characters (rows and columns).  If called with a two-element vector
+of integer values, set the terminal size and return the previous setting.
+Setting the size manually should not be needed when using readline for
+command-line editing.
 @seealso{list_in_columns}
 @end deftypefn */)
 {
@@ -666,7 +667,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} page_output_immediately ()
 @deftypefnx {} {@var{old_val} =} page_output_immediately (@var{new_val})
-@deftypefnx {} {} page_output_immediately (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} page_output_immediately (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave sends
 output to the pager as soon as it is available.
 
@@ -690,7 +691,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} page_screen_output ()
 @deftypefnx {} {@var{old_val} =} page_screen_output (@var{new_val})
-@deftypefnx {} {} page_screen_output (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} page_screen_output (@var{new_val}, "local")
 Query or set the internal variable that controls whether output intended
 for the terminal window that is longer than one page is sent through a
 pager.
@@ -714,7 +715,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} PAGER ()
 @deftypefnx {} {@var{old_val} =} PAGER (@var{new_val})
-@deftypefnx {} {} PAGER (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} PAGER (@var{new_val}, "local")
 Query or set the internal variable that specifies the program to use
 to display terminal output on your system.
 
@@ -737,7 +738,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} PAGER_FLAGS ()
 @deftypefnx {} {@var{old_val} =} PAGER_FLAGS (@var{new_val})
-@deftypefnx {} {} PAGER_FLAGS (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} PAGER_FLAGS (@var{new_val}, "local")
 Query or set the internal variable that specifies the options to pass
 to the pager.
 
--- a/libinterp/corefcn/pinv.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/pinv.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -42,9 +42,9 @@
 
 DEFUN (pinv, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} pinv (@var{x})
-@deftypefnx {} {} pinv (@var{x}, @var{tol})
-Return the @nospell{Moore-Penrose} pseudoinverse of @var{x}.
+@deftypefn  {} {@var{B} =} pinv (@var{A})
+@deftypefnx {} {@var{B} =} pinv (@var{A}, @var{tol})
+Return the @nospell{Moore-Penrose} pseudoinverse of @var{A}.
 
 Singular values less than @var{tol} are ignored.
 
@@ -64,6 +64,9 @@
 
   octave_value arg = args(0);
 
+  if (! arg.isnumeric ())
+    err_wrong_type_arg ("pinv", arg);
+
   if (arg.isempty ())
     return ovl (Matrix ());
 
@@ -197,6 +200,12 @@
 %! y = pinv (x, 2);
 %! assert (diag (y), [1/3 1/2 0 0 0]');
 
+## Basic test for integer inputs
+%!assert (pinv (int32 (2)), 0.5)
+%!assert (pinv (uint32 (2)), 0.5)
+%!assert (pinv (int64 (2)), 0.5)
+%!assert (pinv (uint64 (2)), 0.5)
+
 ## Test special case of 0 scalars and vectors
 %!assert (pinv (0), 0)
 %!assert (pinv ([0, 0, 0]), [0; 0; 0])
@@ -206,6 +215,12 @@
 %!assert (pinv (complex ([0,0,0], [0,0,0])), [0; 0; 0])
 %!assert (pinv (complex (single (0),0)), single (0))
 %!assert (pinv (complex (single ([0,0,0]), [0,0,0])), single ([0; 0; 0]))
+
+## Test input validation
+%!error <wrong type argument> pinv ("Hello World")
+%!error <wrong type argument> pinv ({1})
+%!error <wrong type argument> pinv (true)
+
 */
 
 OCTAVE_NAMESPACE_END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libinterp/corefcn/pow2.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,325 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+
+#include <cmath>
+
+#include "lo-array-errwarn.h"
+
+#include "defun.h"
+#include "error.h"
+#include "errwarn.h"
+
+// FIXME: According to cppreference.com the implementation of `ldexp (f, e)`
+// might be less efficient that the corresponding `f * exp2 (e)`.  Consider
+// replacing our implementation with the latter.
+
+template <typename T>
+void
+map_2_xldexp (Array<T>& y, const Array<T>& f, const Array<T>& e)
+{
+  if (f.numel () == e.numel () || e.numel () == 1)
+    y = Array<T> (f.dims ());
+  else if (f.numel () == 1)
+    y = Array<T> (e.dims ());
+  else
+    octave::err_nonconformant ("pow2", f.dims (), e.dims ());
+
+  octave_idx_type f_inc = (f.numel () == 1) ? 0 : 1;
+  octave_idx_type e_inc = (e.numel () == 1) ? 0 : 1;
+
+  for (octave_idx_type i = 0; i < y.numel (); i++)
+    y.xelem (i) = std::ldexp (f.xelem (i * f_inc),
+                              static_cast<int> (e.xelem (i * e_inc)));
+}
+
+void
+map_2_xldexp_sparse (SparseMatrix& y, const SparseMatrix& f,
+                                      const SparseMatrix& e)
+{
+  if (e.numel () == 1)
+    {
+      int ee = static_cast<int> (e.data (0));
+      for (octave_idx_type i = 0; i < y.nnz (); i++)
+        y.data (i) = std::ldexp (f.data (i), ee);
+    }
+  else if (f.numel () == e.numel ())
+    {
+      octave_idx_type col = 1;
+      for (octave_idx_type i = 0; i < y.nnz (); i++)
+        {
+          // Determine current column.
+          while (i >= f.cidx (col))
+            col++;
+          int ee = static_cast<int> (e.xelem (f.ridx (i), col - 1));
+          y.data (i) = std::ldexp (f.data (i), ee);
+        }
+    }
+  else
+    octave::err_nonconformant ("pow2", f.dims (), e.dims ());
+}
+
+OCTAVE_NAMESPACE_BEGIN
+
+DEFUN (pow2, args, ,
+       doc: /* -*- texinfo -*-
+@deftypefn  {} {@var{y} =} pow2 (@var{x})
+@deftypefnx {} {@var{y} =} pow2 (@var{f}, @var{e})
+With one input argument, compute
+@tex
+$y = 2^x$
+@end tex
+@ifnottex
+y = 2 .^ x
+@end ifnottex
+for each element of @var{x}.
+
+With two input arguments, return
+@tex
+$y = f \cdot 2^e$,
+@end tex
+@ifnottex
+y = f .* (2 .^ e).
+@end ifnottex
+where for complex inputs only the real part of both inputs is regarded
+and from @var{e} only the real integer part.  This calling form corresponds
+to C/C++ standard function @code{ldexp()}.
+@seealso{log2, nextpow2, power}
+@end deftypefn */)
+{
+  if (args.length () < 1 || args.length () > 2)
+    print_usage ();
+
+  if (! args(0).isfloat ())
+    err_wrong_type_arg ("pow2", args(0));
+
+  // Call exp2(f) where possible for numerical more accurate results.
+  if (args.length () == 1)
+    {
+      if (args(0).iscomplex ())
+        {
+          // The C++ standard does not define exp2 for complex arguments.
+          // Therefore call `2.^x`.
+          octave_value retval = octave::binary_op (octave_value::op_el_pow,
+                                                   2, args(0));
+
+          // Preserve sparse datatype, but even for sparse input fill-up
+          // is unavoidable `2^0 == 1` thus cast only.
+          if (args(0).issparse ())
+            retval = octave_value (retval.sparse_complex_matrix_value ());
+
+          return ovl (retval);
+        }
+      else if (args(0).is_single_type ())
+        {
+          FloatNDArray x = args(0).float_array_value ();
+          FloatNDArray y (x.dims ());
+          for (octave_idx_type i = 0; i < y.numel (); i++)
+            y.xelem (i) = std::exp2 (x.xelem (i));
+          return ovl (y);
+        }
+      else
+        {
+          NDArray x = args(0).array_value ();
+          NDArray y (x.dims ());
+          for (octave_idx_type i = 0; i < y.numel (); i++)
+            y.xelem (i) = std::exp2 (x.xelem (i));
+
+          // Preserve sparse datatype, but even for sparse input fill-up
+          // is unavoidable `2^0 == 1` thus cast only.
+          if (args(0).issparse ())
+            return ovl (SparseMatrix (y));
+          else
+            return ovl (y);
+        }
+    }
+
+  // For Matlab compatibility, the two argument call `y = pow2 (f, e)`
+  // corresponds to std::ldexp() (see bug #61968).  The resulting y is
+  // computed quickly by adding the integer part of e to the floating-point
+  // exponent of f.
+
+  if (! args(1).isfloat ())
+    err_wrong_type_arg ("pow2", args(1));
+
+  if (args(0).iscomplex () || args(1).iscomplex ())
+    warning_with_id ("Octave:pow2:imaginary-ignored",
+                     "pow2: imaginary part is ignored");
+
+  // Note: Matlab R2021a errors on `pow2 (sparse (f), single (e))`,
+  //       but sparsity in f determines output and can significantly
+  //       reduce computation, e.g. `N=1e5; pow2(speye(N),sparse(N,N))`.
+  if (args(0).issparse ())
+    {
+      SparseMatrix f = args(0).sparse_matrix_value ();
+
+      // Special case: return a sparse zero matrix in size of e.
+      if ((f.numel () == 1) && (f.nnz () == 0))
+        return ovl (SparseMatrix (args(1).rows (), args(1).columns ()));
+
+      // Only do sparse computation, if it pays off.  For scalar f fill-up
+      // is unavoidable even for sparse e because `f * 2^0 == f`.  Use dense
+      // code below in this case.
+      if (f.numel () > 1)
+        {
+          SparseMatrix e = args(1).sparse_matrix_value ();
+          SparseMatrix y = SparseMatrix (f);
+          map_2_xldexp_sparse (y, f, e);
+          return ovl (y);
+        }
+    }
+
+  if (args(0).is_single_type () || args(1).is_single_type ())
+    {
+      FloatNDArray f = args(0).float_array_value ();
+      FloatNDArray e = args(1).float_array_value ();
+      FloatNDArray y;
+      map_2_xldexp (y, f, e);
+      return ovl (y);
+    }
+  else
+    {
+      NDArray f = args(0).array_value ();
+      NDArray e = args(1).array_value ();
+      NDArray y;
+      map_2_xldexp (y, f, e);
+
+      // Preserve sparse datatype.
+      // Cases for efficient use of sparsity were treated above already.
+      if (args(0).issparse ())
+        return ovl (SparseMatrix (y));
+      else
+        return ovl (y);
+    }
+}
+
+/*
+## Call `y = pow2 (x)`
+
+%!test
+%! fcns = {@double, @single, @complex};
+%! x = [3, 0, -3];
+%! v = [8, 1, .125];
+%! for i = 1:numel (fcns)
+%!   fcn = fcns{i};
+%!   assert (pow2 (fcn (x)), fcn (v), sqrt (eps));
+%! endfor
+
+%!test
+%! fcns = {@double, @single, @complex, @sparse};
+%! x = [3, 1, -3];
+%! v = [8, 2, .125];
+%! for i = 1:numel (fcns)
+%!   fcn = fcns{i};
+%!   assert (pow2 (fcn (x)), fcn (v), sqrt (eps));
+%! endfor
+
+%!test
+%! fcns = {@double, @single, @complex, @sparse};
+%! x = [1, 1+1i, 1i];
+%! for i = 1:numel (fcns)
+%!   fcn = fcns{i};
+%!   assert (pow2 (fcn (x)), fcn (2) .^ fcn (x), sqrt (eps));
+%! endfor
+
+## Call `y = pow2 (f, e)`
+
+%!test
+%! fcns = {@double, @single, @complex, @sparse};
+%! f = [2 2];
+%! e = [2 2];
+%! z = [8 8];
+%! warning ("off", "Octave:pow2:imaginary-ignored", "local");
+%! for i = 1:numel (fcns)
+%!   fcn = fcns{i};
+%!   assert (pow2 (fcn (f), fcn (e)), real (fcn (z)));
+%! endfor
+
+## Only integer part is taken into account.
+%!test
+%! f = 2;
+%! e = [2, 2.1, 2.2, 2.4, 2.5, 2.8];
+%! z = 8 .* ones (1, length (e));
+%! assert (pow2 (f, e), z);
+
+## Only real part is taken into account.
+%!test
+%! f = [1+1i, 1];
+%! e = 2;
+%! z = [4, 4];
+%! warning ("off", "Octave:pow2:imaginary-ignored", "local");
+%! assert (pow2 (f, e), z);
+
+%!test
+%! f = 1;
+%! e = [1+1i, 1];
+%! z = [2, 2];
+%! warning ("off", "Octave:pow2:imaginary-ignored", "local");
+%! assert (pow2 (f, e), z);
+
+%!test
+%! f = [1/2, pi/4, -3/4, 1/2, 1-eps()/2, 1/2];
+%! e = [1, 2, 2, -51, 1024, -1021];
+%! z = [1, pi, -3, eps(), realmax(), realmin()];
+%! assert (pow2 (f, e), z);
+
+## Tests for sparsity.
+%!assert (pow2 (sparse (0), ones  (3)), sparse (3, 3));
+%!assert (pow2 (sparse (1), ones  (3)), 2 .* sparse (ones (3)));
+%!assert (pow2 (sparse (1), speye (3)), sparse (ones (3) + eye (3)));
+%!assert (pow2 (sparse (3, 3), ones (3)), sparse (3, 3));
+%!assert (pow2 (speye (3), ones (3)), 2 .* speye (3));
+%!assert (pow2 (speye (3), 1),        2 .* speye (3));
+
+%!test
+%! f = speye (3);
+%! e = sparse (3, 3);
+%! e(1,1) = 1;
+%! e(1,3) = 1;
+%! z = f;
+%! z(1,1) = 2;
+%! assert (pow2 (f, e), z);
+
+## Large sparse matrix (only few real elements).
+%!test
+%! ## FIXME: `N = 1e5` would be a better test, but `assert` fills-up somehow.
+%! N = 1e3;
+%! assert (pow2 (speye  (N), sparse (N,N)), speye (N));
+%! assert (pow2 (sparse (0), speye  (N)),   sparse(N,N));
+
+%!error <Invalid call> pow2 ()
+%!error <Invalid call> pow2 (1,2,3)
+%!error <wrong type argument> pow2 (int8 (1))
+%!error <wrong type argument> pow2 (2, int8 (1))
+%!warning <imaginary part is ignored> pow2 (i, 2);
+%!warning <imaginary part is ignored> pow2 (2, i);
+%!error <pow2: nonconformant arguments> pow2 ([1,2], [3,4,5])
+%!error <pow2: nonconformant arguments> pow2 (sparse ([1,2]), sparse ([3,4,5]))
+*/
+
+OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/pr-flt-fmt.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/pr-flt-fmt.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -54,7 +54,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} output_precision ()
 @deftypefnx {} {@var{old_val} =} output_precision (@var{new_val})
-@deftypefnx {} {} output_precision (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} output_precision (@var{new_val}, "local")
 Query or set the internal variable that specifies the minimum number of
 significant figures to display for numeric output.
 
--- a/libinterp/corefcn/pr-output.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/pr-output.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -300,7 +300,7 @@
 pr_max_internal (const MArray<T>& m)
 {
   // We expect a 2-d array.
-  assert (m.ndims () == 2);
+  error_unless (m.ndims () == 2);
 
   octave_idx_type nr = m.rows ();
   octave_idx_type nc = m.columns ();
@@ -680,7 +680,7 @@
 static inline float_display_format
 make_matrix_format (const MT& m)
 {
-  assert (m.ndims () == 2);
+  error_unless (m.ndims () == 2);
 
   if (free_format)
     return float_display_format ();
@@ -1570,7 +1570,7 @@
 print_empty_matrix (std::ostream& os, octave_idx_type nr, octave_idx_type nc,
                     bool pr_as_read_syntax)
 {
-  assert (nr == 0 || nc == 0);
+  error_unless (nr == 0 || nc == 0);
 
   if (pr_as_read_syntax)
     {
@@ -1592,7 +1592,7 @@
 print_empty_nd_array (std::ostream& os, const dim_vector& dims,
                       bool pr_as_read_syntax)
 {
-  assert (dims.any_zero ());
+  error_unless (dims.any_zero ());
 
   if (pr_as_read_syntax)
     os << "zeros (" << dims.str (',') << ')';
@@ -2558,7 +2558,8 @@
           octave_idx_type col = 0;
           while (col < num_elem)
             {
-              octave_idx_type lim = (col + inc < num_elem ? col + inc : num_elem);
+              octave_idx_type lim = (col + inc < num_elem ? col + inc
+                                                          : num_elem);
 
               pr_col_num_header (os, total_width, max_width, lim, col,
                                  extra_indent);
@@ -2917,7 +2918,7 @@
 }
 
 #define PRINT_INT_SCALAR_INTERNAL(TYPE)                                 \
-  OCTINTERP_API void                                                    \
+  void                                                                  \
   octave_print_internal (std::ostream& os,                              \
                          const float_display_format& fmt,               \
                          const octave_int<TYPE>& val, bool dummy)       \
@@ -3398,12 +3399,11 @@
 
   std::ostream *osp = os.output_stream ();
 
+  if (! osp)
+    error ("fdisp: stream FID not open for writing");
+
   octave_value arg = args(1);
-
-  if (osp)
-    arg.print (*osp);
-  else
-    error ("fdisp: stream FID not open for writing");
+  arg.print (*osp);
 
   return ovl ();
 }
@@ -3614,7 +3614,15 @@
       std::string arg = argv[idx++];
       std::transform (arg.begin (), arg.end (), arg.begin (), tolower);
 
-      if (arg == "short")
+      if (arg == "default")
+        {
+          format = "short";
+          init_format_state ();
+          set_output_prec (5);
+          Vcompact_format = false;
+          uppercase_format = false;
+        }
+      else if (arg == "short")
         {
           format = arg;
           init_format_state ();
@@ -3806,6 +3814,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {} format
 @deftypefnx {} {} format options
+@deftypefnx {} {} format (@var{options})
 @deftypefnx {} {[@var{format}, @var{formatspacing}, @var{uppercase}] =} format
 Reset or specify the format of the output produced by @code{disp} and Octave's
 normal echoing mechanism.
@@ -3817,13 +3826,16 @@
 
 By default, Octave displays 5 significant digits in a human readable form
 (option @samp{short}, option @samp{lowercase}, and option @samp{loose} format
-for matrices).  If @code{format} is invoked without any options, this default
-format is restored.
+for matrices).  If @code{format} is invoked without any options, or the option
+@samp{default} is specified, then this default format is restored.
 
 Valid format options for floating point numbers are listed in the following
 table.
 
 @table @code
+@item default
+Restore the default format state described above.
+
 @item short
 Fixed point format with 5 significant figures (default).
 
@@ -3859,6 +3871,7 @@
   8.1058e+15
 @end group
 @end example
+
 Optionally, the trailing @samp{g} can be split into a second argument.
 
 @item  shorteng
@@ -3972,10 +3985,12 @@
 @end table
 
 If @code{format} is called with multiple competing options, the rightmost one
-is used.  In case of an error the format remains unchanged.
+is used, except for @samp{default} which will override all other options.  In
+case of an error the format remains unchanged.
 
 If called with one to three output arguments, and no inputs, return the current
-format, format spacing, and uppercase preference.
+format, format spacing, and uppercase preference.  Specifying both outputs and
+inputs will produce an error.
 
 @seealso{fixed_point_format, output_precision, split_long_rows,
 print_empty_dimensions, rats}
@@ -4023,7 +4038,7 @@
 %!   assert (str, "3.1415927E+00\n");
 %!   new_fmt = format ();
 %!   assert (new_fmt, "longe");
-%!   ## Test resetting format
+%!   ## Test resetting format (method #1)
 %!   format compact;
 %!   [~, new_spacing] = format ();
 %!   assert (new_spacing, "compact");
@@ -4032,6 +4047,17 @@
 %!   assert (new_fmt, "short");
 %!   assert (new_spacing, "loose");
 %!   assert (new_case, "lowercase");
+%!   ## Test resetting format (method #2)
+%!   format compact uppercase long e;
+%!   [new_fmt, new_spacing, new_case] = format ();
+%!   assert (new_fmt, "longe");
+%!   assert (new_spacing, "compact");
+%!   assert (new_case, "uppercase");
+%!   format ("default");
+%!   [new_fmt, new_spacing, new_case] = format ();
+%!   assert (new_fmt, "short");
+%!   assert (new_spacing, "loose");
+%!   assert (new_case, "lowercase");
 %! unwind_protect_cleanup
 %!   format (old_fmt);
 %!   format (old_spacing);
@@ -4062,7 +4088,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} fixed_point_format ()
 @deftypefnx {} {@var{old_val} =} fixed_point_format (@var{new_val})
-@deftypefnx {} {} fixed_point_format (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} fixed_point_format (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave will
 use a scaled format to print matrix values.
 
@@ -4105,7 +4131,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} print_empty_dimensions ()
 @deftypefnx {} {@var{old_val} =} print_empty_dimensions (@var{new_val})
-@deftypefnx {} {} print_empty_dimensions (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} print_empty_dimensions (@var{new_val}, "local")
 Query or set the internal variable that controls whether the dimensions of
 empty matrices are printed along with the empty matrix symbol, @samp{[]}.
 
@@ -4136,7 +4162,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} split_long_rows ()
 @deftypefnx {} {@var{old_val} =} split_long_rows (@var{new_val})
-@deftypefnx {} {} split_long_rows (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} split_long_rows (@var{new_val}, "local")
 Query or set the internal variable that controls whether rows of a matrix
 may be split when displayed to a terminal window.
 
--- a/libinterp/corefcn/psi.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/psi.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -39,8 +39,8 @@
 
 DEFUN (psi, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} psi (@var{z})
-@deftypefnx {} {} psi (@var{k}, @var{z})
+@deftypefn  {} {@var{y} =} psi (@var{z})
+@deftypefnx {} {@var{y} =} psi (@var{k}, @var{z})
 Compute the psi (polygamma) function.
 
 The polygamma functions are the @var{k}th derivative of the logarithm
@@ -179,7 +179,8 @@
 ## Interesting identities of the digamma function, in section of 5.1.3
 %!assert (psi (1/3), - em - (3/2) * log (3) - ((sqrt (3) / 6) * pi), eps*10)
 %!assert (psi (1/4), - em -3 * log (2) - pi/2, eps*10)
-%!assert (psi (1/6), - em -2 * log (2) - (3/2) * log (3) - ((sqrt (3) / 2) * pi), eps*10)
+%!assert (psi (1/6),
+%!        - em -2 * log (2) - (3/2) * log (3) - ((sqrt (3) / 2) * pi), eps*10)
 
 ## First 6 zeros of the digamma function, in section of 5.1.5 (and also on
 ## Abramowitz and Stegun, page 258, eq 6.3.19)
--- a/libinterp/corefcn/qr.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/qr.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -116,6 +116,7 @@
 @deftypefnx {} {@var{X} =} qr (@var{A}, @var{B}) # sparse A
 @deftypefnx {} {[@var{C}, @var{R}] =} qr (@var{A}, @var{B})
 @deftypefnx {} {[@dots{}] =} qr (@dots{}, 0)
+@deftypefnx {} {[@dots{}] =} qr (@dots{}, "econ")
 @deftypefnx {} {[@dots{}] =} qr (@dots{}, "vector")
 @deftypefnx {} {[@dots{}] =} qr (@dots{}, "matrix")
 @cindex QR factorization
@@ -249,15 +250,15 @@
 @end group
 @end example
 
-If @var{A} is a sparse MxN matrix and an additional matrix @var{B} is
+If @var{A} is a sparse @nospell{MxN} matrix and an additional matrix @var{B} is
 supplied, one or two return values are possible.  If one return value @var{X}
 is requested and M < N, then @var{X} is the minimum 2-norm solution of
 @w{@code{@var{A} \ @var{B}}}.  If M >= N, @var{X} is the least squares
 approximation @w{of @code{@var{A} \ @var{B}}}.  If two return values are
 requested, @var{C} and @var{R} have the same meaning as in the dense case
-(@var{C} is dense and @var{R} is sparse).
-The version with one return parameter should be preferred because
-it uses less memory and can handle rank-deficient matrices better.
+(@var{C} is dense and @var{R} is sparse).  The version with one return
+parameter should be preferred because it uses less memory and can handle
+rank-deficient matrices better.
 
 If the final argument is the string @qcode{"vector"} then @var{P} is a
 permutation vector (of the columns of @var{A}) instead of a permutation
@@ -270,14 +271,14 @@
 The default, however, is to return a permutation matrix and this may be
 explicitly specified by using a final argument of @qcode{"matrix"}.
 
-If the final argument is the scalar 0 an @qcode{"economy"} factorization is
-returned.  If the original matrix @var{A} has size MxN and M > N, then the
-@qcode{"economy"} factorization will calculate just N rows in @var{R} and N
-columns in @var{Q} and omit the zeros in @var{R}.  If M @leq{} N, there is no
-difference between the economy and standard factorizations.  When calculating
-an @qcode{"economy"} factorization and @var{A} is dense, the output @var{P} is
-always a vector rather than a matrix.  If @var{A} is sparse, output
-@var{P} is a sparse permutation matrix.
+If the final argument is the scalar 0 or the string @qcode{"econ"}, an economy
+factorization is returned.  If the original matrix @var{A} has size
+@nospell{MxN} and M > N, then the economy factorization will calculate just N
+rows in @var{R} and N columns in @var{Q} and omit the zeros in @var{R}.  If M
+@leq{} N, there is no difference between the economy and standard
+factorizations.  When calculating an economy factorization and @var{A} is
+dense, the output @var{P} is always a vector rather than a matrix.  If @var{A}
+is sparse, output @var{P} is a sparse permutation matrix.
 
 Background: The QR factorization has applications in the solution of least
 squares problems
@@ -344,9 +345,14 @@
           std::string str = args(nargin-1).string_value ();
           if (str == "vector")
             vector_p = true;
+          else if (str == "econ")
+            {
+              economy = true;
+              have_b = (nargin > 2);
+            }
           else if (str != "matrix")
-            error ("qr: type for P must be 'matrix' or 'vector', not %s",
-                   str.c_str ());
+            error ("qr: option string must be 'econ' or 'matrix' or " \
+                   "'vector', not \"%s\"", str.c_str ());
           have_b = (nargin > 2);
         }
       else if (! args(nargin-1).is_matrix_type ())
@@ -704,45 +710,55 @@
 %!
 %! [q, r] = qr (a);
 %! [qe, re] = qr (a, 0);
+%! [qe2, re2] = qr (a, "econ");
 %!
 %! assert (q * r, a, sqrt (eps));
 %! assert (qe * re, a, sqrt (eps));
+%! assert (qe2 * re2, a, sqrt (eps));
 
 %!test
 %! a = [0, 2, 1; 2, 1, 2];
 %!
 %! [q, r] = qr (a);
 %! [qe, re] = qr (a, 0);
+%! [qe2, re2] = qr (a, "econ");
 %!
 %! assert (q * r, a, sqrt (eps));
 %! assert (qe * re, a, sqrt (eps));
+%! assert (qe2 * re2, a, sqrt (eps));
 
 %!test
 %! a = [0, 2, 1; 2, 1, 2];
 %!
 %! [q, r, p] = qr (a);  # FIXME: not giving right dimensions.
 %! [qe, re, pe] = qr (a, 0);
+%! [qe2, re2, pe2] = qr (a, "econ");
 %!
 %! assert (q * r, a * p, sqrt (eps));
 %! assert (qe * re, a(:, pe), sqrt (eps));
+%! assert (qe2 * re2, a(:, pe2), sqrt (eps));
 
 %!test
 %! a = [0, 2; 2, 1; 1, 2];
 %!
 %! [q, r] = qr (a);
 %! [qe, re] = qr (a, 0);
+%! [qe2, re2] = qr (a, "econ");
 %!
 %! assert (q * r, a, sqrt (eps));
 %! assert (qe * re, a, sqrt (eps));
+%! assert (qe2 * re2, a, sqrt (eps));
 
 %!test
 %! a = [0, 2; 2, 1; 1, 2];
 %!
 %! [q, r, p] = qr (a);
 %! [qe, re, pe] = qr (a, 0);
+%! [qe2, re2, pe2] = qr (a, "econ");
 %!
 %! assert (q * r, a * p, sqrt (eps));
 %! assert (qe * re, a(:, pe), sqrt (eps));
+%! assert (qe2 * re2, a(:, pe2), sqrt (eps));
 
 %!test
 %! a = [0, 2, 1; 2, 1, 2; 3, 1, 2];
@@ -784,13 +800,21 @@
 %! assert (r, re, sqrt (eps));
 %! assert (q'*b, c, sqrt (eps));
 
+## Empty matrices
 %!test
 %! assert (qr (zeros (0, 0)), zeros (0, 0))
 %! assert (qr (zeros (1, 0)), zeros (1, 0))
 %! assert (qr (zeros (0, 1)), zeros (0, 1))
 
+%!testif ; (__have_feature__ ("SPQR") && __have_feature__ ("CHOLMOD")) || __have_feature__ ("CXSPARSE") <*63069>
+%! assert (qr (sparse (0, 0)), sparse (0, 0))
+%! assert (qr (sparse (1, 0)), sparse (1, 0))
+%! assert (qr (sparse (0, 1)), sparse (0, 1))
+
 %!error qr ()
 %!error qr ([1, 2; 3, 4], 0, 2)
+%!error <option string must be .*, not "foo"> qr (magic (3), "foo")
+%!error <option string must be .*, not "foo"> qr (magic (3), rand (3, 1), "foo")
 %!error <too many output arguments for dense A with B>
 %! [q, r, p] = qr (rand (3, 2), rand (3, 1));
 %!error <too many output arguments for dense A with B>
@@ -1417,14 +1441,16 @@
 %! [Q,R] = qrupdate (Q, R, single (u), single (v));
 %! assert (norm (vec (Q'*Q - eye (5,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R)-R), Inf) == 0);
-%! assert (norm (vec (Q*R - single (A) - single (u)*single (v)'), Inf) < norm (single (A))*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - single (A) - single (u)*single (v)'), Inf)
+%!         < norm (single (A))*1e1*eps ("single"));
 %!
 %!test
 %! [Q,R] = qr (single (Ac));
 %! [Q,R] = qrupdate (Q, R, single (uc), single (vc));
 %! assert (norm (vec (Q'*Q - eye (5,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R)-R), Inf) == 0);
-%! assert (norm (vec (Q*R - single (Ac) - single (uc)*single (vc)'), Inf) < norm (single (Ac))*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - single (Ac) - single (uc)*single (vc)'), Inf)
+%!         < norm (single (Ac))*1e1*eps ("single"));
 */
 
 DEFUN (qrinsert, args, ,
@@ -1599,13 +1625,15 @@
 %! [Q,R] = qrinsert (Q, R, 3, single (u));
 %! assert (norm (vec (Q'*Q - eye (5,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - single ([A(:,1:2) u A(:,3)])), Inf) < norm (single (A))*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - single ([A(:,1:2) u A(:,3)])), Inf)
+%!         < norm (single (A))*1e1*eps ("single"));
 %!test
 %! [Q,R] = qr (single (Ac));
 %! [Q,R] = qrinsert (Q, R, 3, single (uc));
 %! assert (norm (vec (Q'*Q - eye (5,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - single ([Ac(:,1:2) uc Ac(:,3)])), Inf) < norm (single (Ac))*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - single ([Ac(:,1:2) uc Ac(:,3)])), Inf)
+%!         < norm (single (Ac))*1e1*eps ("single"));
 %!test
 %! x = single ([0.85082  0.76426  0.42883 ]);
 %!
@@ -1613,7 +1641,8 @@
 %! [Q,R] = qrinsert (Q, R, 3, x, "row");
 %! assert (norm (vec (Q'*Q - eye (6,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - single ([A(1:2,:);x;A(3:5,:)])), Inf) < norm (single (A))*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - single ([A(1:2,:);x;A(3:5,:)])), Inf)
+%!         < norm (single (A))*1e1*eps ("single"));
 %!test
 %! x = single ([0.20351 + 0.05401i  0.13141 + 0.43708i  0.29808 + 0.08789i ]);
 %!
@@ -1621,7 +1650,8 @@
 %! [Q,R] = qrinsert (Q, R, 3, x, "row");
 %! assert (norm (vec (Q'*Q - eye (6,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - single ([Ac(1:2,:);x;Ac(3:5,:)])), Inf) < norm (single (Ac))*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - single ([Ac(1:2,:);x;Ac(3:5,:)])), Inf)
+%!         < norm (single (Ac))*1e1*eps ("single"));
 */
 
 DEFUN (qrdelete, args, ,
@@ -1815,7 +1845,8 @@
 %! [Q,R] = qrdelete (Q, R, 3);
 %! assert (norm (vec (Q'*Q - eye (5,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - [AA(:,1:2) AA(:,4)]), Inf) < norm (AA)*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - [AA(:,1:2) AA(:,4)]), Inf)
+%!         < norm (AA)*1e1*eps ("single"));
 %!
 %!test
 %! AA = single ([0.364554 + 0.993117i  0.669818 + 0.510234i  0.426568 + 0.041337i  0.847051 + 0.233291i;
@@ -1828,8 +1859,9 @@
 %! [Q,R] = qrdelete (Q, R, 3);
 %! assert (norm (vec (Q'*Q - eye (5,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - [AA(:,1:2) AA(:,4)]), Inf) < norm (AA)*1e1*eps ("single"));
-%!
+%! assert (norm (vec (Q*R - [AA(:,1:2) AA(:,4)]), Inf)
+%!         < norm (AA)*1e1*eps ("single"));
+
 %!test
 %! AA = single ([0.091364  0.613038  0.027504  0.999083;
 %!               0.594638  0.425302  0.562834  0.603537;
@@ -1841,7 +1873,8 @@
 %! [Q,R] = qrdelete (Q, R, 3, "row");
 %! assert (norm (vec (Q'*Q - eye (4,"single")), Inf) < 1.5e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - [AA(1:2,:);AA(4:5,:)]), Inf) < norm (AA)*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - [AA(1:2,:);AA(4:5,:)]), Inf)
+%!         < norm (AA)*1e1*eps ("single"));
 %!testif HAVE_QRUPDATE
 %! ## Same test as above but with more precicision
 %! AA = single ([0.091364  0.613038  0.027504  0.999083;
@@ -1854,7 +1887,8 @@
 %! [Q,R] = qrdelete (Q, R, 3, "row");
 %! assert (norm (vec (Q'*Q - eye (4,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - [AA(1:2,:);AA(4:5,:)]), Inf) < norm (AA)*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - [AA(1:2,:);AA(4:5,:)]), Inf)
+%!         < norm (AA)*1e1*eps ("single"));
 %!
 %!test
 %! AA = single ([0.364554 + 0.993117i  0.669818 + 0.510234i  0.426568 + 0.041337i  0.847051 + 0.233291i;
@@ -1867,7 +1901,8 @@
 %! [Q,R] = qrdelete (Q, R, 3, "row");
 %! assert (norm (vec (Q'*Q - eye (4,"single")), Inf) < 1e1*eps ("single"));
 %! assert (norm (vec (triu (R) - R), Inf) == 0);
-%! assert (norm (vec (Q*R - [AA(1:2,:);AA(4:5,:)]), Inf) < norm (AA)*1e1*eps ("single"));
+%! assert (norm (vec (Q*R - [AA(1:2,:);AA(4:5,:)]), Inf)
+%!         < norm (AA)*1e1*eps ("single"));
 */
 
 DEFUN (qrshift, args, ,
--- a/libinterp/corefcn/quad.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/quad.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -134,7 +134,7 @@
 @deftypefn  {} {@var{q} =} quad (@var{f}, @var{a}, @var{b})
 @deftypefnx {} {@var{q} =} quad (@var{f}, @var{a}, @var{b}, @var{tol})
 @deftypefnx {} {@var{q} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing})
-@deftypefnx {} {[@var{q}, @var{ier}, @var{nfun}, @var{err}] =} quad (@dots{})
+@deftypefnx {} {[@var{q}, @var{ier}, @var{nfev}, @var{err}] =} quad (@dots{})
 Numerically evaluate the integral of @var{f} from @var{a} to @var{b} using
 Fortran routines from @w{@sc{quadpack}}.
 
@@ -161,7 +161,7 @@
 @var{ier} contains an integer error code (0 indicates a successful
 integration).
 
-@var{nfun} indicates the number of function evaluations that were
+@var{nfev} indicates the number of function evaluations that were
 made.
 
 @var{err} contains an estimate of the error in the solution.
@@ -220,7 +220,7 @@
         }
 
       octave_idx_type ier = 0;
-      octave_idx_type nfun = 0;
+      octave_idx_type nfev = 0;
       float abserr = 0.0;
       float val = 0.0;
       bool have_sing = false;
@@ -262,7 +262,7 @@
               FloatIndefQuad iq (quad_float_user_function, bound,
                                  indef_type);
               iq.set_options (quad_opts);
-              val = iq.float_integrate (ier, nfun, abserr);
+              val = iq.float_integrate (ier, nfev, abserr);
             }
           else
             {
@@ -270,13 +270,13 @@
                 {
                   FloatDefQuad dq (quad_float_user_function, a, b, sing);
                   dq.set_options (quad_opts);
-                  val = dq.float_integrate (ier, nfun, abserr);
+                  val = dq.float_integrate (ier, nfev, abserr);
                 }
               else
                 {
                   FloatDefQuad dq (quad_float_user_function, a, b);
                   dq.set_options (quad_opts);
-                  val = dq.float_integrate (ier, nfun, abserr);
+                  val = dq.float_integrate (ier, nfev, abserr);
                 }
             }
           break;
@@ -286,7 +286,7 @@
           break;
         }
 
-      retval = ovl (val, ier, nfun, abserr);
+      retval = ovl (val, ier, nfev, abserr);
 
     }
   else
@@ -316,7 +316,7 @@
         }
 
       octave_idx_type ier = 0;
-      octave_idx_type nfun = 0;
+      octave_idx_type nfev = 0;
       double abserr = 0.0;
       double val = 0.0;
       bool have_sing = false;
@@ -357,7 +357,7 @@
             {
               IndefQuad iq (quad_user_function, bound, indef_type);
               iq.set_options (quad_opts);
-              val = iq.integrate (ier, nfun, abserr);
+              val = iq.integrate (ier, nfev, abserr);
             }
           else
             {
@@ -365,13 +365,13 @@
                 {
                   DefQuad dq (quad_user_function, a, b, sing);
                   dq.set_options (quad_opts);
-                  val = dq.integrate (ier, nfun, abserr);
+                  val = dq.integrate (ier, nfev, abserr);
                 }
               else
                 {
                   DefQuad dq (quad_user_function, a, b);
                   dq.set_options (quad_opts);
-                  val = dq.integrate (ier, nfun, abserr);
+                  val = dq.integrate (ier, nfev, abserr);
                 }
             }
           break;
@@ -381,7 +381,7 @@
           break;
         }
 
-      retval = ovl (val, ier, nfun, abserr);
+      retval = ovl (val, ier, nfev, abserr);
     }
 
   return retval;
@@ -393,17 +393,17 @@
 %!endfunction
 
 %!test
-%! [v, ier, nfun, err] = quad ("__f", 0, 5);
+%! [v, ier, nfev, err] = quad ("__f", 0, 5);
 %! assert (ier, 0);
 %! assert (v, 17.5, sqrt (eps));
-%! assert (nfun > 0);
+%! assert (nfev > 0);
 %! assert (err < sqrt (eps));
 
 %!test
-%! [v, ier, nfun, err] = quad ("__f", single (0), single (5));
+%! [v, ier, nfev, err] = quad ("__f", single (0), single (5));
 %! assert (ier, 0);
 %! assert (v, 17.5, sqrt (eps ("single")));
-%! assert (nfun > 0);
+%! assert (nfev > 0);
 %! assert (err < sqrt (eps ("single")));
 
 %!function y = __f (x)
@@ -411,43 +411,43 @@
 %!endfunction
 
 %!test
-%!  [v, ier, nfun, err] = quad ("__f", 0.001, 3);
+%!  [v, ier, nfev, err] = quad ("__f", 0.001, 3);
 %! assert (ier == 0 || ier == 1);
 %! assert (v, 1.98194120273598, sqrt (eps));
-%! assert (nfun > 0);
+%! assert (nfev > 0);
 
 %!test
-%!  [v, ier, nfun, err] = quad (@__f, 0.001, 3);
+%!  [v, ier, nfev, err] = quad (@__f, 0.001, 3);
 %! assert (ier == 0 || ier == 1);
 %! assert (v, 1.98194120273598, sqrt (eps));
-%! assert (nfun > 0);
+%! assert (nfev > 0);
 
 %!test
 %!  fstr = "x .* sin (1 ./ x) .* sqrt (abs (1 - x))";
-%!  [v, ier, nfun, err] = quad (fstr, 0.001, 3);
+%!  [v, ier, nfev, err] = quad (fstr, 0.001, 3);
 %! assert (ier == 0 || ier == 1);
 %! assert (v, 1.98194120273598, sqrt (eps));
-%! assert (nfun > 0);
+%! assert (nfev > 0);
 
 %!test
 %!  anon_fcn = @(x) x .* sin (1 ./ x) .* sqrt (abs (1 - x));
-%!  [v, ier, nfun, err] = quad (anon_fcn, 0.001, 3);
+%!  [v, ier, nfev, err] = quad (anon_fcn, 0.001, 3);
 %! assert (ier == 0 || ier == 1);
 %! assert (v, 1.98194120273598, sqrt (eps));
-%! assert (nfun > 0);
+%! assert (nfev > 0);
 
 %!test
 %!  inline_fcn = inline ("x .* sin (1 ./ x) .* sqrt (abs (1 - x))", "x");
-%!  [v, ier, nfun, err] = quad (inline_fcn, 0.001, 3);
+%!  [v, ier, nfev, err] = quad (inline_fcn, 0.001, 3);
 %! assert (ier == 0 || ier == 1);
 %! assert (v, 1.98194120273598, sqrt (eps));
-%! assert (nfun > 0);
+%! assert (nfev > 0);
 
 %!test
-%!  [v, ier, nfun, err] = quad ("__f", single (0.001), single (3));
+%!  [v, ier, nfev, err] = quad ("__f", single (0.001), single (3));
 %! assert (ier == 0 || ier == 1);
 %! assert (v, 1.98194120273598, sqrt (eps ("single")));
-%! assert (nfun > 0);
+%! assert (nfev > 0);
 
 %!error quad ()
 %!error quad ("__f", 1, 2, 3, 4, 5)
--- a/libinterp/corefcn/quadcc.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/quadcc.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1488,7 +1488,7 @@
 
 // The actual integration routine.
 
-DEFMETHOD (quadcc, interp, args, ,
+DEFMETHOD (quadcc, interp, args, nargout,
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b})
 @deftypefnx {} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol})
@@ -1537,8 +1537,11 @@
 @var{nr_points} is the number of points at which the integrand was evaluated.
 
 If the adaptive integration did not converge, the value of @var{err} will be
-larger than the requested tolerance.  Therefore, it is recommended to verify
-this value for difficult integrands.
+larger than the requested tolerance.  If only a single output is requested then
+a warning will be emitted when the requested tolerance is not met.  If the
+second output @var{err} is requested then no warning is issued and it is the
+responsibility of the programmer to inspect and determine whether the results
+are satisfactory.
 
 @code{quadcc} is capable of dealing with non-numeric values of the integrand
 such as @code{NaN} or @code{Inf}.  If the integral diverges, and @code{quadcc}
@@ -2205,6 +2208,9 @@
     }
 #endif
 
+ if (nargout < 2 && err > std::max (abstol, reltol * std::abs (igral)))
+    warning ("quadcc: Error tolerance not met.  Estimated error: %g\n", err);
+
   if (issingle)
     return ovl (static_cast<float> (igral), err, neval);
   else
@@ -2213,14 +2219,16 @@
 
 /*
 %!assert (quadcc (@sin, -pi, pi), 0, 1e-10)
-%!assert (quadcc (inline ("sin"), -pi, pi), 0, 1e-10)
+%!test
+%! warning ("off", "Octave:legacy-function", "local");
+%! assert (quadcc (inline ("sin"), -pi, pi), 0, 1e-10);
 %!assert (quadcc ("sin", -pi, pi), 0, 1e-10)
 
 %!assert (quadcc (@sin, -pi, 0), -2, 1e-10)
 %!assert (quadcc (@sin, 0, pi), 2, 1e-10)
 %!assert (quadcc (@(x) 1./sqrt (x), 0, 1), 2, -1e-6)
 %!assert (quadcc (@(x) 1./(sqrt (x).*(x+1)), 0, Inf), pi, -1e-6)
-%!assert (quadcc (@(x) 1./(sqrt (x).*(x+1)), 0, Inf, [0, 1e-8]), pi, -1e-8)
+%!assert (quadcc (@(x) 1./(sqrt (x).*(x+1)), 0, Inf, [0, 2e-7]), pi, -2e-7)
 
 %!assert (quadcc (@(x) exp (-x .^ 2), -Inf, Inf), sqrt (pi), 1e-10)
 %!assert (quadcc (@(x) exp (-x .^ 2), -Inf, 0), sqrt (pi)/2, 1e-10)
@@ -2244,6 +2252,12 @@
 %! assert (class (quadcc (@sin, 0, single (1))), "single");
 %! assert (class (quadcc (@sin, single (0), single (1))), "single");
 
+%!test <*62412>
+%! f = @(t) -1 ./ t.^1.1;
+%! fail ("quadcc (f, 1, Inf)", "warning", "Error tolerance not met");
+%! [q, err] = quadcc (f, 1, Inf);
+%! assert (err > 1e-5);
+
 ## Test input validation
 %!error quadcc ()
 %!error quadcc (@sin)
--- a/libinterp/corefcn/rand.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/rand.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -357,17 +357,17 @@
 
 DEFUN (rand, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} rand (@var{n})
-@deftypefnx {} {} rand (@var{m}, @var{n}, @dots{})
-@deftypefnx {} {} rand ([@var{m} @var{n} @dots{}])
+@deftypefn  {} {@var{x} =} rand (@var{n})
+@deftypefnx {} {@var{x} =} rand (@var{m}, @var{n}, @dots{})
+@deftypefnx {} {@var{x} =} rand ([@var{m} @var{n} @dots{}])
+@deftypefnx {} {@var{x} =} rand (@dots{}, "single")
+@deftypefnx {} {@var{x} =} rand (@dots{}, "double")
 @deftypefnx {} {@var{v} =} rand ("state")
 @deftypefnx {} {} rand ("state", @var{v})
 @deftypefnx {} {} rand ("state", "reset")
 @deftypefnx {} {@var{v} =} rand ("seed")
 @deftypefnx {} {} rand ("seed", @var{v})
 @deftypefnx {} {} rand ("seed", "reset")
-@deftypefnx {} {} rand (@dots{}, "single")
-@deftypefnx {} {} rand (@dots{}, "double")
 Return a matrix with random elements uniformly distributed on the
 interval (0, 1).
 
@@ -550,17 +550,17 @@
 
 DEFUN (randn, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} randn (@var{n})
-@deftypefnx {} {} randn (@var{m}, @var{n}, @dots{})
-@deftypefnx {} {} randn ([@var{m} @var{n} @dots{}])
+@deftypefn  {} {@var{x} =} randn (@var{n})
+@deftypefnx {} {@var{x} =} randn (@var{m}, @var{n}, @dots{})
+@deftypefnx {} {@var{x} =} randn ([@var{m} @var{n} @dots{}])
+@deftypefnx {} {@var{x} =} randn (@dots{}, "single")
+@deftypefnx {} {@var{x} =} randn (@dots{}, "double")
 @deftypefnx {} {@var{v} =} randn ("state")
 @deftypefnx {} {} randn ("state", @var{v})
 @deftypefnx {} {} randn ("state", "reset")
 @deftypefnx {} {@var{v} =} randn ("seed")
 @deftypefnx {} {} randn ("seed", @var{v})
 @deftypefnx {} {} randn ("seed", "reset")
-@deftypefnx {} {} randn (@dots{}, "single")
-@deftypefnx {} {} randn (@dots{}, "double")
 Return a matrix with normally distributed random elements having zero mean
 and variance one.
 
@@ -617,17 +617,17 @@
 
 DEFUN (rande, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} rande (@var{n})
-@deftypefnx {} {} rande (@var{m}, @var{n}, @dots{})
-@deftypefnx {} {} rande ([@var{m} @var{n} @dots{}])
+@deftypefn  {} {@var{x} =} rande (@var{n})
+@deftypefnx {} {@var{x} =} rande (@var{m}, @var{n}, @dots{})
+@deftypefnx {} {@var{x} =} rande ([@var{m} @var{n} @dots{}])
+@deftypefnx {} {@var{x} =} rande (@dots{}, "single")
+@deftypefnx {} {@var{x} =} rande (@dots{}, "double")
 @deftypefnx {} {@var{v} =} rande ("state")
 @deftypefnx {} {} rande ("state", @var{v})
 @deftypefnx {} {} rande ("state", "reset")
 @deftypefnx {} {@var{v} =} rande ("seed")
 @deftypefnx {} {} rande ("seed", @var{v})
 @deftypefnx {} {} rande ("seed", "reset")
-@deftypefnx {} {} rande (@dots{}, "single")
-@deftypefnx {} {} rande (@dots{}, "double")
 Return a matrix with exponentially distributed random elements.
 
 The arguments are handled the same as the arguments for @code{rand}.
@@ -686,17 +686,17 @@
 
 DEFUN (randg, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} randg (@var{a}, @var{n})
-@deftypefnx {} {} randg (@var{a}, @var{m}, @var{n}, @dots{})
-@deftypefnx {} {} randg (@var{a}, [@var{m} @var{n} @dots{}])
+@deftypefn  {} {@var{x} =} randg (@var{a}, @var{n})
+@deftypefnx {} {@var{x} =} randg (@var{a}, @var{m}, @var{n}, @dots{})
+@deftypefnx {} {@var{x} =} randg (@var{a}, [@var{m} @var{n} @dots{}])
+@deftypefnx {} {@var{x} =} randg (@dots{}, "single")
+@deftypefnx {} {@var{x} =} randg (@dots{}, "double")
 @deftypefnx {} {@var{v} =} randg ("state")
 @deftypefnx {} {} randg ("state", @var{v})
 @deftypefnx {} {} randg ("state", "reset")
 @deftypefnx {} {@var{v} =} randg ("seed")
 @deftypefnx {} {} randg ("seed", @var{v})
 @deftypefnx {} {} randg ("seed", "reset")
-@deftypefnx {} {} randg (@dots{}, "single")
-@deftypefnx {} {} randg (@dots{}, "double")
 
 Return a matrix with @code{gamma (@var{a},1)} distributed random elements.
 
@@ -796,7 +796,7 @@
 /*
 %!test
 %! randg ("state", 12);
-%! assert (randg ([-inf, -1, 0, inf, nan]), [nan, nan, nan, nan, nan]); # *** Please report
+%! assert (randg ([-inf, -1, 0, inf, nan]), [nan, nan, nan, nan, nan]);
 
 %!test
 %! ## Test a known fixed state
@@ -901,7 +901,7 @@
 %! endif
 %!test
 %! randg ("seed", 12);
-%!assert (randg ([-inf, -1, 0, inf, nan]), [nan, nan, nan, nan, nan]) # *** Please report
+%! assert (randg ([-inf, -1, 0, inf, nan]), [nan, nan, nan, nan, nan]);
 %!test
 %! if (__random_statistical_tests__)
 %!   ## statistical tests may fail occasionally.
@@ -961,17 +961,17 @@
 
 DEFUN (randp, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} randp (@var{l}, @var{n})
-@deftypefnx {} {} randp (@var{l}, @var{m}, @var{n}, @dots{})
-@deftypefnx {} {} randp (@var{l}, [@var{m} @var{n} @dots{}])
+@deftypefn  {} {@var{x} =} randp (@var{l}, @var{n})
+@deftypefnx {} {@var{x} =} randp (@var{l}, @var{m}, @var{n}, @dots{})
+@deftypefnx {} {@var{x} =} randp (@var{l}, [@var{m} @var{n} @dots{}])
+@deftypefnx {} {@var{x} =} randp (@dots{}, "single")
+@deftypefnx {} {@var{x} =} randp (@dots{}, "double")
 @deftypefnx {} {@var{v} =} randp ("state")
 @deftypefnx {} {} randp ("state", @var{v})
 @deftypefnx {} {} randp ("state", "reset")
 @deftypefnx {} {@var{v} =} randp ("seed")
 @deftypefnx {} {} randp ("seed", @var{v})
 @deftypefnx {} {} randp ("seed", "reset")
-@deftypefnx {} {} randp (@dots{}, "single")
-@deftypefnx {} {} randp (@dots{}, "double")
 Return a matrix with Poisson distributed random elements with mean value
 parameter given by the first argument, @var{l}.
 
@@ -1021,7 +1021,7 @@
 /*
 %!test
 %! randp ("state", 12);
-%! assert (randp ([-inf, -1, 0, inf, nan]), [nan, nan, 0, nan, nan]);   # *** Please report
+%! assert (randp ([-inf, -1, 0, inf, nan]), [nan, nan, 0, nan, nan]);
 %!test
 %! ## Test a known fixed state
 %! randp ("state", 1);
@@ -1033,7 +1033,9 @@
 %!test
 %! ## Test a known fixed state
 %! randp ("state", 1);
-%! assert (randp (1e9, 1, 6), [999915677 999976657 1000047684 1000019035 999985749 999977692], -1e-6);
+%! assert (randp (1e9, 1, 6),
+%!         [999915677 999976657 1000047684 1000019035 999985749 999977692],
+%!         -1e-6);
 %!test
 %! ## Test a known fixed seed
 %! randp ("seed", 1);
@@ -1046,7 +1048,9 @@
 %!test
 %! ## Test a known fixed seed
 %! randp ("seed", 1);
-%! assert (randp (1e9, 1, 6), [1000006208 1000012224 999981120 999963520 999963072 999981440], -1e-6);
+%! assert (randp (1e9, 1, 6),
+%!         [1000006208 1000012224 999981120 999963520 999963072 999981440],
+%!         -1e-6);
 %!test
 %! if (__random_statistical_tests__)
 %!   ## statistical tests may fail occasionally.
@@ -1075,7 +1079,7 @@
 %! endif
 %!test
 %! randp ("seed", 12);
-%! assert (randp ([-inf, -1, 0, inf, nan]), [nan, nan, 0, nan, nan]);   # *** Please report
+%! assert (randp ([-inf, -1, 0, inf, nan]), [nan, nan, 0, nan, nan]);
 %!test
 %! if (__random_statistical_tests__)
 %!   ## statistical tests may fail occasionally.
@@ -1106,8 +1110,8 @@
 
 DEFUN (randperm, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} randperm (@var{n})
-@deftypefnx {} {} randperm (@var{n}, @var{m})
+@deftypefn  {} {@var{v} =} randperm (@var{n})
+@deftypefnx {} {@var{v} =} randperm (@var{n}, @var{m})
 Return a row vector containing a random permutation of @code{1:@var{n}}.
 
 If @var{m} is supplied, return @var{m} unique entries, sampled without
--- a/libinterp/corefcn/regexp.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/regexp.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -30,8 +30,6 @@
 #include <list>
 #include <sstream>
 
-#include <pcre.h>
-
 #include "base-list.h"
 #include "oct-locbuf.h"
 #include "quit.h"
@@ -1128,8 +1126,10 @@
 %! assert (isempty (fieldnames (nm)));
 %! assert (sp, { "", "", "A", "", "E", "" });
 
-%!assert (regexp ({'asdfg-dfd';'-dfd-dfd-';'qasfdfdaq'}, '-'), {6;[1,5,9];zeros(1,0)})
-%!assert (regexp ({'asdfg-dfd';'-dfd-dfd-';'qasfdfdaq'}, {'-';'f';'q'}), {6;[3,7];[1,9]})
+%!assert (regexp ({'asdfg-dfd';'-dfd-dfd-';'qasfdfdaq'}, '-'),
+%!        {6;[1,5,9];zeros(1,0)})
+%!assert (regexp ({'asdfg-dfd';'-dfd-dfd-';'qasfdfdaq'}, {'-';'f';'q'}),
+%!        {6;[3,7];[1,9]})
 %!assert (regexp ('Strings', {'t','s'}), {2, 7})
 
 ## Test case for lookaround operators
@@ -1198,6 +1198,12 @@
 %! assert (regexp ('foo!+bar\nbar!+foo', '.\>'), [3, 4, 8, 13, 14, 18]);
 %! assert (regexp ('foo!+bar\nbar!+foo', '\<\w'), [1, 6, 10, 16]);
 
+## Test "incomplete" named patterns
+%!assert <*62705> (regexpi ('<', '\(?<'), 1)
+%!assert <*62705> (regexpi ('<n>', '\(?<n\>'), 1)
+%!assert <*62705> (regexpi ('<n>', '\(?<n\>\)?'), 1)
+%!assert <62705> (regexpi ('<n>a', '\(?<n\>a\)?'), 1)
+
 ## Test input validation
 %!error regexp ('string', 'tri', 'BadArg')
 %!error regexp ('string')
@@ -1352,9 +1358,12 @@
 %!error regexpi ('string', 'tri', 'BadArg')
 %!error regexpi ('string')
 
-%!assert (regexpi ({'asdfg-dfd';'-dfd-dfd-';'qasfdfdaq'}, '-'), {6;[1,5,9];zeros(1, 0)})
-%!assert (regexpi ({'asdfg-dfd', '-dfd-dfd-', 'qasfdfdaq'}, '-'), {6, [1,5,9], zeros(1,0)})
-%!assert (regexpi ({'asdfg-dfd';'-dfd-dfd-';'qasfdfdaq'}, {'-';'f';'q'}), {6;[3,7];[1,9]})
+%!assert (regexpi ({'asdfg-dfd';'-dfd-dfd-';'qasfdfdaq'}, '-'),
+%!        {6;[1,5,9];zeros(1, 0)})
+%!assert (regexpi ({'asdfg-dfd', '-dfd-dfd-', 'qasfdfdaq'}, '-'),
+%!        {6, [1,5,9], zeros(1,0)})
+%!assert (regexpi ({'asdfg-dfd';'-dfd-dfd-';'qasfdfdaq'}, {'-';'f';'q'}),
+%!        {6;[3,7];[1,9]})
 %!assert (regexpi ('Strings', {'t', 's'}), {2, [1, 7]})
 
 %!assert (regexpi ("\n", '\n'), 1)
@@ -1589,7 +1598,8 @@
 
 ## Empty matches were broken on ARM architecture
 %!test <*52810>
-%! assert (strcmp (regexprep ("\nabc", "^(\t*)(abc)$", "$1$2", "lineanchors"), "\nabc"))
+%! assert (strcmp (regexprep ("\nabc", "^(\t*)(abc)$", "$1$2", "lineanchors"),
+%!                 "\nabc"));
 */
 
 OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/schur.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/schur.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -46,7 +46,7 @@
   octave_value retval = a;
 
   octave_idx_type n = a.rows ();
-  assert (a.columns () == n);
+  error_unless (a.columns () == n);
 
   const typename Matrix::element_type zero = typename Matrix::element_type ();
 
--- a/libinterp/corefcn/settings.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/settings.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -57,7 +57,9 @@
 
 DEFMETHOD (__display_tokens__, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __display_tokens__ ()
+@deftypefn  {} {@var{val} =} __display_tokens__ ()
+@deftypefnx {} {@var{old_val} =} __display_tokens__ (@var{new_val})
+@deftypefnx {} {@var{old_val} =} __display_tokens__ (@var{new_val}, "local")
 Query or set the internal variable that determines whether Octave's
 lexer displays tokens as they are read.
 @seealso{__lexer_debug_flag__, __token_count__}
@@ -70,7 +72,7 @@
 
 DEFMETHOD (__token_count__, interp, , ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __token_count__ ()
+@deftypefn {} {@var{n} =} __token_count__ ()
 Return the number of language tokens processed since Octave startup.
 @seealso{__lexer_debug_flag__, __display_tokens__}
 @end deftypefn */)
--- a/libinterp/corefcn/sighandlers.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/sighandlers.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -93,8 +93,7 @@
 
     if (save_vars)
       {
-        load_save_system& load_save_sys
-          = __get_load_save_system__ ("my_friendly_exit");
+        load_save_system& load_save_sys = __get_load_save_system__ ();
 
         load_save_sys.dump_octave_core ();
       }
@@ -191,7 +190,7 @@
     static const bool have_sigusr2
       = octave_get_sig_number ("SIGUSR2", &sigusr2);
 
-    child_list& kids = __get_child_list__ ("respond_to_pending_signals");
+    child_list& kids = __get_child_list__ ();
 
     for (int sig = 0; sig < octave_num_signals (); sig++)
       {
@@ -494,7 +493,7 @@
 
 DEFUN (SIG, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} SIG ()
+@deftypefn {} {@var{S} =} SIG ()
 Return a structure containing Unix signal names and their defined values.
 @end deftypefn */)
 {
@@ -517,7 +516,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} debug_on_interrupt ()
 @deftypefnx {} {@var{old_val} =} debug_on_interrupt (@var{new_val})
-@deftypefnx {} {} debug_on_interrupt (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} debug_on_interrupt (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave will try
 to enter debugging mode when it receives an interrupt signal (typically
 generated with @kbd{C-c}).
@@ -551,7 +550,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} sighup_dumps_octave_core ()
 @deftypefnx {} {@var{old_val} =} sighup_dumps_octave_core (@var{new_val})
-@deftypefnx {} {} sighup_dumps_octave_core (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} sighup_dumps_octave_core (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave tries
 to save all current variables to the file @file{octave-workspace} if it
 receives a hangup signal.
@@ -582,7 +581,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} sigquit_dumps_octave_core ()
 @deftypefnx {} {@var{old_val} =} sigquit_dumps_octave_core (@var{new_val})
-@deftypefnx {} {} sigquit_dumps_octave_core (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} sigquit_dumps_octave_core (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave tries
 to save all current variables to the file @file{octave-workspace} if it
 receives a quit signal.
@@ -613,7 +612,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} sigterm_dumps_octave_core ()
 @deftypefnx {} {@var{old_val} =} sigterm_dumps_octave_core (@var{new_val})
-@deftypefnx {} {} sigterm_dumps_octave_core (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} sigterm_dumps_octave_core (@var{new_val}, "local")
 Query or set the internal variable that controls whether Octave tries
 to save all current variables to the file @file{octave-workspace} if it
 receives a terminate signal.
--- a/libinterp/corefcn/sparse-xdiv.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/sparse-xdiv.h	Tue Nov 15 13:15:28 2022 -0800
@@ -157,7 +157,8 @@
 
 OCTAVE_DEPRECATED (7, "use 'octave::xdiv' instead")
 inline SparseComplexMatrix
-xdiv (const SparseComplexMatrix& a, const SparseComplexMatrix& b, MatrixType& typ)
+xdiv (const SparseComplexMatrix& a, const SparseComplexMatrix& b,
+      MatrixType& typ)
 {
   return octave::xdiv (a, b, typ);
 }
@@ -269,7 +270,8 @@
 
 OCTAVE_DEPRECATED (7, "use 'octave::xleftdiv' instead")
 inline SparseComplexMatrix
-xleftdiv (const SparseComplexMatrix& a, const SparseComplexMatrix& b, MatrixType& typ)
+xleftdiv (const SparseComplexMatrix& a, const SparseComplexMatrix& b,
+          MatrixType& typ)
 {
   return octave::xleftdiv (a, b, typ);
 }
@@ -297,7 +299,8 @@
 
 OCTAVE_DEPRECATED (7, "use 'octave::xleftdiv' instead")
 inline SparseComplexMatrix
-xleftdiv (const ComplexDiagMatrix& a, const SparseComplexMatrix& b, MatrixType& typ)
+xleftdiv (const ComplexDiagMatrix& a, const SparseComplexMatrix& b,
+          MatrixType& typ)
 {
   return octave::xleftdiv (a, b, typ);
 }
--- a/libinterp/corefcn/sparse-xpow.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/sparse-xpow.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -47,7 +47,7 @@
 
 OCTAVE_NAMESPACE_BEGIN
 
-static inline int
+static inline bool
 xisint (double x)
 {
   return (octave::math::x_nint (x) == x
@@ -66,7 +66,11 @@
   octave_idx_type nr = a.rows ();
   octave_idx_type nc = a.cols ();
 
-  if (nr == 0 || nc == 0 || nr != nc)
+  if (nr == 0 || nc == 0)
+    return SparseMatrix ();
+
+  // If we are here, A is not empty ==> A needs to be square.
+  if (nr != nc)
     error ("for A^b, A must be a square matrix.  Use .^ for elementwise power.");
 
   if (! xisint (b))
@@ -97,6 +101,9 @@
           double rcond = 0.0;
           MatrixType mattyp (a);
 
+          // FIXME: This causes an error if the input sparse matrix is all-zeros.
+          // That behavior is inconsistent with A ^ b when A is a full all-zeros
+          // matrix, which just returns Inf of the same size with a warning.
           atmp = a.inverse (mattyp, info, rcond, 1);
 
           if (info == -1)
@@ -105,19 +112,58 @@
       else
         atmp = a;
 
+      if (atmp.nnz () == 0)  // Fast return for all-zeros matrix
+        return atmp;
+
       SparseMatrix result (atmp);
 
       btmp--;
 
-      while (btmp > 0)
-        {
-          if (btmp & 1)
-            result = result * atmp;
+      // There are two approaches to the actual exponentiation.
+      // Exponentiation by squaring uses only a logarithmic number
+      // of multiplications but the matrices it multiplies tend to be dense
+      // towards the end.
+      // Linear multiplication uses a linear number of multiplications
+      // but one of the matrices it uses will be as sparse as the original
+      // matrix.
+      //
+      // The time to multiply fixed-size matrices is strongly affected by their
+      // sparsity. Denser matrices take much longer to multiply together.
+      // See this URL for a worked-through example:
+      // https://octave.discourse.group/t/3216/4
+      //
+      // The tradeoff is between many fast multiplications or a few slow ones.
+      //
+      // Large exponents favor the squaring technique, and sparse matrices
+      // favor linear multiplication.
+      //
+      // We calculate a threshold based on the sparsity of the input
+      // and use squaring for exponents larger than that.
+      //
+      // FIXME: Improve this threshold calculation.
 
-          btmp >>= 1;
+      uint64_t sparsity = atmp.numel () / atmp.nnz (); // reciprocal of density
+      int threshold = (sparsity >= 1000) ? 40
+                    : (sparsity >=  100) ? 20
+                    : 3;
 
-          if (btmp > 0)
-            atmp = atmp * atmp;
+      if (btmp > threshold) // use squaring technique
+        {
+          while (btmp > 0)
+            {
+              if (btmp & 1)
+                result = result * atmp;
+
+              btmp >>= 1;
+
+              if (btmp > 0)
+                atmp = atmp * atmp;
+            }
+        }
+      else // use linear multiplication
+        {
+          for (int i = 0; i < btmp; i++)
+            result = result * atmp;
         }
 
       retval = result;
@@ -134,7 +180,11 @@
   octave_idx_type nr = a.rows ();
   octave_idx_type nc = a.cols ();
 
-  if (nr == 0 || nc == 0 || nr != nc)
+  if (nr == 0 || nc == 0)
+    return SparseMatrix ();
+
+  // If we are here, A is not empty ==> A needs to be square.
+  if (nr != nc)
     error ("for A^b, A must be a square matrix.  Use .^ for elementwise power.");
 
   if (! xisint (b))
@@ -173,19 +223,41 @@
       else
         atmp = a;
 
+      if (atmp.nnz () == 0)  // Fast return for all-zeros matrix
+        return atmp;
+
       SparseComplexMatrix result (atmp);
 
       btmp--;
 
-      while (btmp > 0)
-        {
-          if (btmp & 1)
-            result = result * atmp;
+      // Select multiplication sequence based on sparsity of atmp.
+      // See the long comment in xpow (const SparseMatrix& a, double b)
+      // for more details.
+      //
+      // FIXME: Improve this threshold calculation.
+
+      uint64_t sparsity = atmp.numel () / atmp.nnz (); // reciprocal of density
+      int threshold = (sparsity >= 1000) ? 40
+                    : (sparsity >=  100) ? 20
+                    : 3;
 
-          btmp >>= 1;
+      if (btmp > threshold) // use squaring technique
+        {
+          while (btmp > 0)
+            {
+              if (btmp & 1)
+                result = result * atmp;
+
+              btmp >>= 1;
 
-          if (btmp > 0)
-            atmp = atmp * atmp;
+              if (btmp > 0)
+                atmp = atmp * atmp;
+            }
+        }
+      else // use linear multiplication
+        {
+          for (int i = 0; i < btmp; i++)
+            result = result * atmp;
         }
 
       retval = result;
@@ -244,6 +316,30 @@
 /*
 %!assert (sparse (2) .^ [3, 4], sparse ([8, 16]))
 %!assert <47775> (sparse (2i) .^ [3, 4], sparse ([-0-8i, 16]))
+
+%!test <*63080>
+%! Z = sparse ([]);
+%! A = sparse (zeros (0, 2));
+%! B = sparse (zeros (2, 0));
+%! assert (Z ^  1, Z);
+%! assert (Z ^  0, Z);
+%! assert (Z ^ -1, Z);
+%! assert (A ^  1, Z);
+%! assert (A ^  0, Z);
+%! assert (A ^ -1, Z);
+%! assert (B ^  1, Z);
+%! assert (B ^  0, Z);
+%! assert (B ^ -1, Z);
+
+%!test <*63080>
+%! A = sparse (zeros (2, 2));
+%! assert (A ^  1, A);
+%! assert (A ^  0, sparse (eye (2, 2)));
+
+%!test <63080>
+%! A = sparse (zeros (2, 2));
+%! assert (A ^ -1, sparse (inf (2, 2)));
+
 */
 
 // -*- 1 -*-
@@ -746,4 +842,5 @@
   return result;
 }
 
+
 OCTAVE_NAMESPACE_END
--- a/libinterp/corefcn/sparse.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/sparse.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -46,7 +46,7 @@
 
 DEFUN (issparse, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} issparse (@var{x})
+@deftypefn {} {@var{tf} =} issparse (@var{x})
 Return true if @var{x} is a sparse matrix.
 @seealso{ismatrix}
 @end deftypefn */)
@@ -155,9 +155,6 @@
 
   octave_value retval;
 
-  // Temporarily disable sparse_auto_mutate if set (it's obsolete anyway).
-  unwind_protect_var<bool> restore_var (Vsparse_auto_mutate, false);
-
   if (nargin == 1)
     {
       octave_value arg = args(0);
--- a/libinterp/corefcn/stack-frame.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/stack-frame.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -31,6 +31,7 @@
 #include "str-vec.h"
 
 #include "defun.h"
+#include "error.h"
 #include "interpreter.h"
 #include "interpreter-private.h"
 #include "oct-map.h"
@@ -1041,7 +1042,8 @@
                                      const std::shared_ptr<stack_frame>& parent_link,
                                      const std::shared_ptr<stack_frame>& static_link)
   {
-    return new compiled_fcn_stack_frame (tw, fcn, index, parent_link, static_link);
+    return new compiled_fcn_stack_frame (tw, fcn, index,
+                                         parent_link, static_link);
   }
 
   stack_frame * stack_frame::create (tree_evaluator& tw,
@@ -1059,7 +1061,8 @@
                                      const std::shared_ptr<stack_frame>& static_link,
                                      const std::shared_ptr<stack_frame>& access_link)
   {
-    return new user_fcn_stack_frame (tw, fcn, index, parent_link, static_link, access_link);
+    return new user_fcn_stack_frame (tw, fcn, index,
+                                     parent_link, static_link, access_link);
   }
 
   stack_frame * stack_frame::create (tree_evaluator& tw,
@@ -1069,7 +1072,9 @@
                                      const local_vars_map& local_vars,
                                      const std::shared_ptr<stack_frame>& access_link)
   {
-    return new user_fcn_stack_frame (tw, fcn, index, parent_link, static_link, local_vars, access_link);
+    return new user_fcn_stack_frame (tw, fcn, index,
+                                     parent_link, static_link, local_vars,
+                                     access_link);
   }
 
   stack_frame * stack_frame::create (tree_evaluator& tw,
@@ -1599,7 +1604,7 @@
     // scope.  If the symbol wasn't present before, it should be outside
     // the range so we need to resize then update offsets.
 
-    assert (data_offset >= size ());
+    panic_unless (data_offset >= size ());
 
     resize (data_offset+1);
 
@@ -1650,7 +1655,7 @@
 
     if (sym)
       {
-        assert (sym.frame_offset () == 0);
+        panic_unless (sym.frame_offset () == 0);
 
         return sym;
       }
@@ -1679,7 +1684,7 @@
         // All symbol records in a script scope should have zero offset,
         // which means we redirect our lookup using
         // lexical_frame_offsets and values_offets.
-        assert (sym.frame_offset () == 0);
+        panic_unless (sym.frame_offset () == 0);
 
         return sym;
       }
@@ -1689,7 +1694,7 @@
 
     sym = scope.find_symbol (name);
 
-    assert (sym);
+    panic_unless (sym.is_valid ());
 
     resize_and_update_script_offsets (sym);
 
@@ -2100,7 +2105,7 @@
           {
             // FIXME: do we need to ensure that the called
             // function is a child of the caller?  Does it hurt
-            // to assert this condition, at least for now?
+            // to panic_unless this condition, at least for now?
 
             alink = static_link;
           }
@@ -2108,7 +2113,7 @@
           {
             // FIXME: do we need to check that the parent of the
             // called function is also a parent of the caller?
-            // Does it hurt to assert this condition, at least
+            // Does it hurt to panic_unless this condition, at least
             // for now?
 
             int links_to_follow = caller_nesting_depth - nesting_depth + 1;
@@ -2221,7 +2226,7 @@
 
     sym = scope.find_symbol (name);
 
-    assert (sym);
+    panic_unless (sym.is_valid ());
 
     return sym;
   }
@@ -2388,7 +2393,7 @@
 
     sym = m_scope.find_symbol (name);
 
-    assert (sym);
+    panic_unless (sym.is_valid ());
 
     return sym;
   }
--- a/libinterp/corefcn/stream-euler.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/stream-euler.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -506,7 +506,7 @@
 
 DEFUN (__streameuler2d__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __streameuler2d__ (@var{U}, @var{V}, @var{TX}, @var{TY}, @var{ZETA}, @var{XI}, @var{H}, @var{MAXNVERTS})
+@deftypefn {} {@var{output} =} __streameuler2d__ (@var{U}, @var{V}, @var{TX}, @var{TY}, @var{ZETA}, @var{XI}, @var{H}, @var{MAXNVERTS})
 Calculates the streamline in a vector field @code{[@var{U}, @var{V}]} starting
 from a seed point at position @code{[@var{ZETA}, @var{XI}]}.  The integrator
 used is Heun's Scheme.  The step size can be controlled by @var{H}.  The
@@ -521,7 +521,7 @@
 
 DEFUN (__streameuler3d__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __streameuler3d__ (@var{U}, @var{V}, @var{W}, @var{TX}, @var{TY}, @var{TZ}, @var{ZETA}, @var{XI}, @var{RHO}, @var{H}, @var{MAXNVERTS})
+@deftypefn {} {@var{output} =} __streameuler3d__ (@var{U}, @var{V}, @var{W}, @var{TX}, @var{TY}, @var{TZ}, @var{ZETA}, @var{XI}, @var{RHO}, @var{H}, @var{MAXNVERTS})
 Calculates the streamline in a vector field @code{[@var{U}, @var{V}, @var{W}]}
 starting from a seed point at position
 @code{[@var{ZETA}, @var{XI}, @var{RHO}]}.  The integrator used is Heun's
--- a/libinterp/corefcn/strfind.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/strfind.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -299,8 +299,10 @@
 %!assert (strfind ("abababa", "aba", "forcecelloutput", false), [1, 3, 5])
 %!assert (strfind ("abababa", "aba", "forcecelloutput", true), {[1, 3, 5]})
 %!assert (strfind ({"abababa", "bla", "bla"}, "a"), {[1, 3, 5, 7], 3, 3})
-%!assert (strfind ({"abababa", "bla", "bla"}, "a", "forcecelloutput", false), {[1, 3, 5, 7], 3, 3})
-%!assert (strfind ({"abababa", "bla", "bla"}, "a", "forcecelloutput", true), {[1, 3, 5, 7], 3, 3})
+%!assert (strfind ({"abababa", "bla", "bla"}, "a", "forcecelloutput", false),
+%!        {[1, 3, 5, 7], 3, 3})
+%!assert (strfind ({"abababa", "bla", "bla"}, "a", "forcecelloutput", true),
+%!        {[1, 3, 5, 7], 3, 3})
 %!assert (strfind ("Linux _is_ user-friendly. It just isn't ignorant-friendly or idiot-friendly.", "friendly"), [17, 50, 68])
 %!assert (strfind ("abc", ""), [])
 %!assert (strfind ("abc", {"", "b", ""}), {[], 2, []})
--- a/libinterp/corefcn/strfns.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/strfns.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -52,10 +52,10 @@
 
 DEFUN (char, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} char (@var{x})
-@deftypefnx {} {} char (@var{x}, @dots{})
-@deftypefnx {} {} char (@var{s1}, @var{s2}, @dots{})
-@deftypefnx {} {} char (@var{cell_array})
+@deftypefn  {} {@var{C} =} char (@var{A})
+@deftypefnx {} {@var{C} =} char (@var{A}, @dots{})
+@deftypefnx {} {@var{C} =} char (@var{str1}, @var{str2}, @dots{})
+@deftypefnx {} {@var{C} =} char (@var{cell_array})
 Create a string array from one or more numeric matrices, character
 matrices, or cell arrays.
 
@@ -177,10 +177,10 @@
 
 DEFUN (strvcat, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} strvcat (@var{x})
-@deftypefnx {} {} strvcat (@var{x}, @dots{})
-@deftypefnx {} {} strvcat (@var{s1}, @var{s2}, @dots{})
-@deftypefnx {} {} strvcat (@var{cell_array})
+@deftypefn  {} {@var{C} =} strvcat (@var{A})
+@deftypefnx {} {@var{C} =} strvcat (@var{A}, @dots{})
+@deftypefnx {} {@var{C} =} strvcat (@var{str1}, @var{str2}, @dots{})
+@deftypefnx {} {@var{C} =} strvcat (@var{cell_array})
 Create a character array from one or more numeric matrices, character
 matrices, or cell arrays.
 
@@ -290,7 +290,7 @@
 
 DEFUN (ischar, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} ischar (@var{x})
+@deftypefn {} {@var{tf} =} ischar (@var{x})
 Return true if @var{x} is a character array.
 @seealso{isfloat, isinteger, islogical, isnumeric, isstring, iscellstr, isa}
 @end deftypefn */)
@@ -319,7 +319,7 @@
 */
 
 static octave_value
-do_strcmp_fun (const octave_value& arg0, const octave_value& arg1,
+do_strcmp_fcn (const octave_value& arg0, const octave_value& arg1,
                octave_idx_type n, const char *fcn_name,
                bool (*array_op) (const Array<char>&, const Array<char>&,
                                  octave_idx_type),
@@ -526,7 +526,7 @@
 
 
 // These are required so that they match the same signature as strncmp
-// and strncmpi and can therefore be used in do_strcmp_fun.
+// and strncmpi and can therefore be used in do_strcmp_fcn.
 
 template <typename T, typename T_size_type>
 static bool
@@ -541,11 +541,11 @@
 
 DEFUN (strcmp, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} strcmp (@var{s1}, @var{s2})
-Return 1 if the character strings @var{s1} and @var{s2} are the same,
+@deftypefn {} {@var{tf} =} strcmp (@var{str1}, @var{str2})
+Return 1 if the character strings @var{str1} and @var{str2} are the same,
 and 0 otherwise.
 
-If either @var{s1} or @var{s2} is a cell array of strings, then an array
+If either @var{str1} or @var{str2} is a cell array of strings, then an array
 of the same size is returned, containing the values described above for
 every member of the cell array.  The other argument may also be a cell
 array of strings (of the same size or with only one element), char matrix
@@ -560,7 +560,7 @@
   if (args.length () != 2)
     print_usage ();
 
-  return ovl (do_strcmp_fun (args(0), args(1), 0, "strcmp",
+  return ovl (do_strcmp_fcn (args(0), args(1), 0, "strcmp",
                              strcmp_ignore_n, strcmp_ignore_n));
 }
 
@@ -615,8 +615,8 @@
 
 DEFUN (strncmp, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} strncmp (@var{s1}, @var{s2}, @var{n})
-Return 1 if the first @var{n} characters of strings @var{s1} and @var{s2}
+@deftypefn {} {@var{tf} =} strncmp (@var{str1}, @var{str2}, @var{n})
+Return 1 if the first @var{n} characters of strings @var{str1} and @var{str2}
 are the same, and 0 otherwise.
 
 @example
@@ -626,7 +626,7 @@
 @end group
 @end example
 
-If either @var{s1} or @var{s2} is a cell array of strings, then an array
+If either @var{str1} or @var{str2} is a cell array of strings, then an array
 of the same size is returned, containing the values described above for
 every member of the cell array.  The other argument may also be a cell
 array of strings (of the same size or with only one element), char matrix
@@ -651,7 +651,7 @@
   octave_idx_type n = args(2).idx_type_value ();
 
   if (n > 0)
-    return ovl (do_strcmp_fun (args(0), args(1), n, "strncmp",
+    return ovl (do_strcmp_fcn (args(0), args(1), n, "strncmp",
                                string::strncmp,
                                string::strncmp));
   else
@@ -665,7 +665,8 @@
 %!assert (strncmp ("abce", {"abcd", "bca", "abc"}, 3), logical ([1, 0, 1]))
 %!assert (strncmp ("abc",  {"abcd", "bca", "abc"}, 4), logical ([0, 0, 1]))
 %!assert (strncmp ({"abcd", "bca", "abc"},"abce", 3), logical ([1, 0, 1]))
-%!assert (strncmp ({"abcd", "bca", "abc"},{"abcd", "bca", "abe"}, 3), logical ([1, 1, 0]))
+%!assert (strncmp ({"abcd", "bca", "abc"},{"abcd", "bca", "abe"}, 3),
+%!        logical ([1, 1, 0]))
 %!assert (strncmp ("abc", {"abcd", 10}, 2), logical ([1, 0]))
 
 %!assert <*54373> (strncmp ("abc", "abc", 100))
@@ -676,11 +677,11 @@
 
 DEFUNX ("strcmpi", Fstrcmpi, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} strcmpi (@var{s1}, @var{s2})
-Return 1 if the character strings @var{s1} and @var{s2} are the same,
+@deftypefn {} {@var{tf} =} strcmpi (@var{str1}, @var{str2})
+Return 1 if the character strings @var{str1} and @var{str2} are the same,
 disregarding case of alphabetic characters, and 0 otherwise.
 
-If either @var{s1} or @var{s2} is a cell array of strings, then an array
+If either @var{str1} or @var{str2} is a cell array of strings, then an array
 of the same size is returned, containing the values described above for
 every member of the cell array.  The other argument may also be a cell
 array of strings (of the same size or with only one element), char matrix
@@ -697,7 +698,7 @@
   if (args.length () != 2)
     print_usage ();
 
-  return ovl (do_strcmp_fun (args(0), args(1), 0, "strcmpi",
+  return ovl (do_strcmp_fcn (args(0), args(1), 0, "strcmpi",
                              strcmpi_ignore_n, strcmpi_ignore_n));
 }
 
@@ -707,11 +708,11 @@
 
 DEFUNX ("strncmpi", Fstrncmpi, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} strncmpi (@var{s1}, @var{s2}, @var{n})
+@deftypefn {} {@var{tf} =} strncmpi (@var{str1}, @var{str2}, @var{n})
 Return 1 if the first @var{n} character of @var{s1} and @var{s2} are the
 same, disregarding case of alphabetic characters, and 0 otherwise.
 
-If either @var{s1} or @var{s2} is a cell array of strings, then an array
+If either @var{str1} or @var{str2} is a cell array of strings, then an array
 of the same size is returned, containing the values described above for
 every member of the cell array.  The other argument may also be a cell
 array of strings (of the same size or with only one element), char matrix
@@ -731,7 +732,7 @@
   octave_idx_type n = args(2).idx_type_value ();
 
   if (n > 0)
-    return ovl (do_strcmp_fun (args(0), args(1), n, "strncmpi",
+    return ovl (do_strcmp_fcn (args(0), args(1), n, "strncmpi",
                                string::strncmpi,
                                string::strncmpi));
   else
@@ -746,7 +747,7 @@
 
 DEFUN (str2double, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} str2double (@var{s})
+@deftypefn {} {@var{d} =} str2double (@var{str})
 Convert a string to a real or complex number.
 
 The string must be in one of the following formats where a and b are real
@@ -771,12 +772,12 @@
 more digits.  The special input values @code{Inf}, @code{NaN}, and @code{NA}
 are also accepted.
 
-@var{s} may be a character string, character matrix, or cell array.  For
+@var{str} may be a character string, character matrix, or cell array.  For
 character arrays the conversion is repeated for every row, and a double or
 complex array is returned.  Empty rows in @var{s} are deleted and not
 returned in the numeric array.  For cell arrays each character string
 element is processed and a double or complex array of the same dimensions as
-@var{s} is returned.
+@var{str} is returned.
 
 For unconvertible scalar or character string input @code{str2double} returns
 a NaN@.  Similarly, for character array input @code{str2double} returns a
@@ -786,8 +787,8 @@
 cell array are not strings and the conversion will fail for these elements
 and return NaN.
 
-@code{str2double} can replace @code{str2num}, and it avoids the security
-risk of using @code{eval} on unknown data.
+Programming Note: @code{str2double} can replace @code{str2num}, is more
+efficient, and avoids the security risk of using @code{eval} on unknown data.
 @seealso{str2num}
 @end deftypefn */)
 {
@@ -1141,7 +1142,7 @@
 
 DEFUN (newline, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} newline
+@deftypefn {} {@var{c} =} newline
 Return the character corresponding to a newline.
 
 This is equivalent to @qcode{"@backslashchar{}n"}.
@@ -1179,7 +1180,7 @@
 
 DEFUN (list_in_columns, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} list_in_columns (@var{arg}, @var{width}, @var{prefix})
+@deftypefn {} {@var{str} =} list_in_columns (@var{arg}, @var{width}, @var{prefix})
 Return a string containing the elements of @var{arg} listed in columns with
 an overall maximum width of @var{width} and optional prefix @var{prefix}.
 
--- a/libinterp/corefcn/sub2ind.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/sub2ind.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -27,6 +27,8 @@
 #  include "config.h"
 #endif
 
+#include <utility>
+
 #include "Array-util.h"
 #include "oct-locbuf.h"
 #include "quit.h"
@@ -195,7 +197,7 @@
 
 The input @var{dims} is a dimension vector where each element is the size of
 the array in the respective dimension (@pxref{XREFsize,,@code{size}}).  The
-second input @var{ind} contains linear indies to be converted.
+second input @var{ind} contains linear indices to be converted.
 
 The outputs @var{s1}, @dots{}, @var{sN} contain the converted subscripts.
 
@@ -220,12 +222,8 @@
 The left matrix contains the linear indices for each matrix element.  The right
 matrix shows the subscript tuples for the same matrix.
 
-The following example shows how to convert the two-dimensional indices
-@code{(2,1)} and @code{(2,3)} of a 3-by-3 matrix to linear indices with a
-single call to @code{sub2ind}.
-
 The following example shows how to convert the linear indices @code{2} and
-@code{8} in a 3-by-3 matrix into subscripts.
+@code{8} to appropriate subscripts of a 3-by-3 matrix.
 
 @example
 @group
@@ -264,12 +262,20 @@
 
   octave_value_list retval;
 
-  // Redimension to provided number of subscripts.
+  int nd = (nargout == 0) ? 1 : nargout;
+
   dim_vector dv = get_dim_vector (args(0), "ind2sub").redim (nargout);
 
+  // Redim for 1 will give us a column vector but we want a row vector.
+  if (nd == 1)
+    std::swap (dv(0), dv(1));
+
   try
     {
       retval = Array<octave_value> (ind2sub (dv, args(1).index_vector ()));
+
+      if (nd == 1)
+        retval(0) = retval(1);
     }
   catch (const index_exception& ie)
     {
@@ -314,8 +320,18 @@
 %! r = ind2sub ([2, 2, 2], 1:8);
 %! assert (r, 1:8);
 
+## Indexing beyond specified size (bug #62184)
+%!assert <*62184> (ind2sub (1, 2), 2)
+%!assert <*62184> (ind2sub ([3,3], 10), 10)
+%!test <*62184>
+%! [r,c] = ind2sub ([3,3], 10);
+%! assert ([r, c], [1, 4]);
+%!test <*62184>
+%! [r,c,p] = ind2sub ([3,3], 10);
+%! assert ([r, c, p], [1, 1, 2]);
+
+## Test input validation
 %!error <DIMS must contain integers> ind2sub ([2, -2], 3)
-%!error <index out of range> ind2sub ([2, 2, 2], 1:9)
 %!error <invalid index> ind2sub ([2, 2, 2], -1:8)
 */
 
--- a/libinterp/corefcn/svd.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/svd.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -400,7 +400,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} svd_driver ()
 @deftypefnx {} {@var{old_val} =} svd_driver (@var{new_val})
-@deftypefnx {} {} svd_driver (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} svd_driver (@var{new_val}, "local")
 Query or set the underlying @sc{lapack} driver used by @code{svd}.
 
 Currently recognized values are @qcode{"gesdd"}, @qcode{"gesvd"}, and
--- a/libinterp/corefcn/sylvester.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/sylvester.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -158,8 +158,10 @@
 }
 
 /*
-%!assert (sylvester ([1, 2; 3, 4], [5, 6; 7, 8], [9, 10; 11, 12]), [1/2, 2/3; 2/3, 1/2], sqrt (eps))
-%!assert (sylvester (single ([1, 2; 3, 4]), single ([5, 6; 7, 8]), single ([9, 10; 11, 12])), single ([1/2, 2/3; 2/3, 1/2]), sqrt (eps ("single")))
+%!assert (sylvester ([1, 2; 3, 4], [5, 6; 7, 8], [9, 10; 11, 12]),
+%!        [1/2, 2/3; 2/3, 1/2], sqrt (eps))
+%!assert (sylvester (single ([1, 2; 3, 4]), single ([5, 6; 7, 8]), single ([9, 10; 11, 12])),
+%!        single ([1/2, 2/3; 2/3, 1/2]), sqrt (eps ("single")))
 
 ## Test input validation
 %!error sylvester ()
--- a/libinterp/corefcn/symbfact.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/symbfact.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -427,7 +427,8 @@
 %! fail ("symbfact (sparse (1), {1})", "TYP must be a string");
 %! fail ("symbfact (sparse (1), 'foobar')", 'unrecognized TYP "foobar"');
 %! fail ("symbfact (sparse (1), 'sym', {'L'})", "MODE must be a string");
-%! fail ('symbfact (sparse (1), "sym", "foobar")', 'unrecognized MODE "foobar"');
+%! fail ('symbfact (sparse (1), "sym", "foobar")',
+%!       'unrecognized MODE "foobar"');
 %! fail ("symbfact (sparse ([1, 2; 3, 4; 5, 6]))", "S must be a square matrix");
 
 */
--- a/libinterp/corefcn/symrec.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/symrec.h	Tue Nov 15 13:15:28 2022 -0800
@@ -194,11 +194,13 @@
 
     explicit operator bool () const { return is_valid (); }
 
-    void set_frame_offset (std::size_t offset) { m_rep->set_frame_offset (offset); }
+    void set_frame_offset (std::size_t offset)
+    { m_rep->set_frame_offset (offset); }
 
     std::size_t frame_offset (void) const { return m_rep->frame_offset (); }
 
-    void set_data_offset (std::size_t offset) { m_rep->set_data_offset (offset); }
+    void set_data_offset (std::size_t offset)
+    { m_rep->set_data_offset (offset); }
 
     std::size_t data_offset (void) const { return m_rep->data_offset (); }
 
--- a/libinterp/corefcn/symscope.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/symscope.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -335,7 +335,8 @@
   }
 
   bool symbol_scope_rep::look_nonlocal (const std::string& name,
-                                        std::size_t offset, symbol_record& result)
+                                        std::size_t offset,
+                                        symbol_record& result)
   {
     offset++;
 
--- a/libinterp/corefcn/symtab.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/symtab.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -722,103 +722,11 @@
     return octave_value (info_map);
   }
 
-  // Remove when corresponding public deprecated function is removed.
-  bool symbol_table::at_top_level_deprecated (void)
-  {
-    return m_interpreter.at_top_level ();
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  octave_value symbol_table::varval_deprecated (const std::string& name) const
-  {
-    return m_interpreter.varval (name);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  octave_value symbol_table::global_varval_deprecated (const std::string& name) const
-  {
-    return m_interpreter.global_varval (name);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  octave_value symbol_table::top_level_varval_deprecated (const std::string& name) const
-  {
-    return m_interpreter.top_level_varval (name);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  std::list<std::string> symbol_table::global_variable_names_deprecated (void)
-  {
-    return m_interpreter.global_variable_names ();
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  std::list<std::string> symbol_table::top_level_variable_names_deprecated (void)
-  {
-    return m_interpreter.top_level_variable_names ();
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  std::list<std::string> symbol_table::variable_names_deprecated (void)
-  {
-    return m_interpreter.variable_names ();
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  void symbol_table::assign_deprecated (const std::string& name, const octave_value& value)
-  {
-    return m_interpreter.assign (name, value);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  void symbol_table::clear_all_deprecated (bool force)
-  {
-    return m_interpreter.clear_all (force);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  void symbol_table::clear_global_deprecated (const std::string& name)
-  {
-    return m_interpreter.clear_global_variable (name);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  void symbol_table::clear_global_pattern_deprecated (const std::string& pattern)
-  {
-    return m_interpreter.clear_global_variable_pattern (pattern);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  void symbol_table::clear_symbol_deprecated (const std::string& name)
-  {
-    return m_interpreter.clear_symbol (name);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  void symbol_table::clear_symbol_pattern_deprecated (const std::string& pattern)
-  {
-    return m_interpreter.clear_symbol_pattern (pattern);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  void symbol_table::global_assign_deprecated (const std::string& name,
-                                    const octave_value& value)
-  {
-    return m_interpreter.global_assign (name, value);
-  }
-
-  // Remove when corresponding public deprecated function is removed.
-  void symbol_table::top_level_assign_deprecated (const std::string& name,
-                                       const octave_value& value)
-  {
-    return m_interpreter.top_level_assign (name, value);
-  }
-
 DEFMETHOD (__dump_symtab_info__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} __dump_symtab_info__ ()
-@deftypefnx {} {} __dump_symtab_info__ (@var{function})
-Undocumented internal function.
+@deftypefn  {} {@var{S} =} __dump_symtab_info__ ()
+@deftypefnx {} {@var{S} =} __dump_symtab_info__ (@var{function})
+Return a structure with information from the symbol table.
 @end deftypefn */)
 {
   int nargin = args.length ();
@@ -845,7 +753,7 @@
 
 DEFMETHOD (__get_cmdline_fcn_txt__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __get_cmdline_fcn_txt__ (@var{name})
+@deftypefn {} {@var{str} =} __get_cmdline_fcn_txt__ (@var{name})
 Undocumented internal function.
 @end deftypefn */)
 {
--- a/libinterp/corefcn/symtab.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/symtab.h	Tue Nov 15 13:15:28 2022 -0800
@@ -185,170 +185,6 @@
 
     fcn_info * get_fcn_info (const std::string& name);
 
-    // The remaining functions are all provided for backward
-    // compatibility.  New code should use the functions provided by the
-    // interpreter class.
-
-  private:
-
-    // Remove when corresponding public deprecated function is removed.
-    bool at_top_level_deprecated (void);
-
-    // Remove when corresponding public deprecated function is removed.
-    octave_value varval_deprecated (const std::string& name) const;
-
-    // Remove when corresponding public deprecated function is removed.
-    octave_value global_varval_deprecated (const std::string& name) const;
-
-    // Remove when corresponding public deprecated function is removed.
-    octave_value top_level_varval_deprecated (const std::string& name) const;
-
-    // Remove when corresponding public deprecated function is removed.
-    std::list<std::string> global_variable_names_deprecated (void);
-
-    // Remove when corresponding public deprecated function is removed.
-    std::list<std::string> top_level_variable_names_deprecated (void);
-
-    // Remove when corresponding public deprecated function is removed.
-    std::list<std::string> variable_names_deprecated (void);
-
-    // Remove when corresponding public deprecated function is removed.
-    void assign_deprecated (const std::string& name,
-                            const octave_value& value = octave_value ());
-
-    // Remove when corresponding public deprecated function is removed.
-    // Note, FORCE_ADD no longer has any meaning.
-    void assign_deprecated (const std::string& name, const octave_value& value,
-                            bool /*force_add*/);
-
-    // Remove when corresponding public deprecated function is removed.
-    void clear_all_deprecated (bool force = false);
-
-    // Remove when corresponding public deprecated function is removed.
-    void clear_global_deprecated (const std::string& name);
-
-    // Remove when corresponding public deprecated function is removed.
-    void clear_global_pattern_deprecated (const std::string& pattern);
-
-    // Remove when corresponding public deprecated function is removed.
-    void clear_symbol_deprecated (const std::string& name);
-
-    // Remove when corresponding public deprecated function is removed.
-    void clear_symbol_pattern_deprecated (const std::string& pattern);
-
-    // Remove when corresponding public deprecated function is removed.
-    void global_assign_deprecated (const std::string& name,
-                                   const octave_value& value = octave_value ());
-
-    // Remove when corresponding public deprecated function is removed.
-    void top_level_assign_deprecated (const std::string& name,
-                                      const octave_value& value = octave_value ());
-
-  public:
-
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-    OCTAVE_DEPRECATED (6, "use 'interpreter::at_top_level' instead")
-    bool at_top_level (void)
-    {
-      return at_top_level_deprecated ();
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::varval' instead")
-    octave_value varval (const std::string& name) const
-    {
-      return varval_deprecated (name);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::global_varval' instead")
-    octave_value global_varval (const std::string& name) const
-    {
-      return global_varval_deprecated (name);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::top_level_varval' instead")
-    octave_value top_level_varval (const std::string& name) const
-    {
-      return top_level_varval_deprecated (name);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::global_variable_names' instead")
-    std::list<std::string> global_variable_names (void)
-    {
-      return global_variable_names_deprecated ();
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::top_level_variable_names' instead")
-    std::list<std::string> top_level_variable_names (void)
-    {
-      return top_level_variable_names_deprecated ();
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::variable_names' instead")
-    std::list<std::string> variable_names (void)
-    {
-      return variable_names_deprecated ();
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::assign' instead")
-    void assign (const std::string& name,
-                 const octave_value& value = octave_value ())
-    {
-      assign_deprecated (name, value);
-    }
-
-    // Note, FORCE_ADD no longer has any meaning.
-    OCTAVE_DEPRECATED (6, "use 'interpreter::assign' instead")
-    void assign (const std::string& name, const octave_value& value,
-                 bool /*force_add*/)
-    {
-      assign_deprecated (name, value);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::clear_all' instead")
-    void clear_all (bool force = false)
-    {
-      clear_all_deprecated (force);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::clear_global' instead")
-    void clear_global (const std::string& name)
-    {
-      clear_global_deprecated (name);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::clear_global_pattern' instead")
-    void clear_global_pattern (const std::string& pattern)
-    {
-      clear_global_pattern_deprecated (pattern);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::clear_symbol' instead")
-    void clear_symbol (const std::string& name)
-    {
-      clear_symbol_deprecated (name);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::clear_symbol_pattern' instead")
-    void clear_symbol_pattern (const std::string& pattern)
-    {
-      clear_symbol_pattern_deprecated (pattern);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::global_assign' instead")
-    void global_assign (const std::string& name,
-                        const octave_value& value = octave_value ())
-    {
-      global_assign_deprecated (name, value);
-    }
-
-    OCTAVE_DEPRECATED (6, "use 'interpreter::top_level_assign' instead")
-    void top_level_assign (const std::string& name,
-                           const octave_value& value = octave_value ())
-    {
-      top_level_assign_deprecated (name, value);
-    }
-#endif
-
   private:
 
     interpreter& m_interpreter;
--- a/libinterp/corefcn/syscalls.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/syscalls.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -930,7 +930,7 @@
 
 DEFUNX ("S_ISREG", FS_ISREG, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} S_ISREG (@var{mode})
+@deftypefn {} {@var{tf} =} S_ISREG (@var{mode})
 Return true if @var{mode} corresponds to a regular file.
 
 The value of @var{mode} is assumed to be returned from a call to
@@ -948,7 +948,7 @@
 
 DEFUNX ("S_ISDIR", FS_ISDIR, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} S_ISDIR (@var{mode})
+@deftypefn {} {@var{tf} =} S_ISDIR (@var{mode})
 Return true if @var{mode} corresponds to a directory.
 
 The value of @var{mode} is assumed to be returned from a call to
@@ -966,7 +966,7 @@
 
 DEFUNX ("S_ISCHR", FS_ISCHR, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} S_ISCHR (@var{mode})
+@deftypefn {} {@var{tf} =} S_ISCHR (@var{mode})
 Return true if @var{mode} corresponds to a character device.
 
 The value of @var{mode} is assumed to be returned from a call to
@@ -984,7 +984,7 @@
 
 DEFUNX ("S_ISBLK", FS_ISBLK, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} S_ISBLK (@var{mode})
+@deftypefn {} {@var{tf} =} S_ISBLK (@var{mode})
 Return true if @var{mode} corresponds to a block device.
 
 The value of @var{mode} is assumed to be returned from a call to
@@ -1002,7 +1002,7 @@
 
 DEFUNX ("S_ISFIFO", FS_ISFIFO, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} S_ISFIFO (@var{mode})
+@deftypefn {} {@var{tf} =} S_ISFIFO (@var{mode})
 Return true if @var{mode} corresponds to a fifo.
 
 The value of @var{mode} is assumed to be returned from a call to
@@ -1020,7 +1020,7 @@
 
 DEFUNX ("S_ISLNK", FS_ISLNK, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} S_ISLNK (@var{mode})
+@deftypefn {} {@var{tf} =} S_ISLNK (@var{mode})
 Return true if @var{mode} corresponds to a symbolic link.
 
 The value of @var{mode} is assumed to be returned from a call to
@@ -1038,7 +1038,7 @@
 
 DEFUNX ("S_ISSOCK", FS_ISSOCK, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} S_ISSOCK (@var{mode})
+@deftypefn {} {@var{tf} =} S_ISSOCK (@var{mode})
 Return true if @var{mode} corresponds to a socket.
 
 The value of @var{mode} is assumed to be returned from a call to
@@ -1056,7 +1056,7 @@
 
 DEFUN (gethostname, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} gethostname ()
+@deftypefn {} {@var{name} =} gethostname ()
 Return the hostname of the system where Octave is running.
 @end deftypefn */)
 {
@@ -1249,7 +1249,7 @@
 
 DEFUNX ("WIFEXITED", FWIFEXITED, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WIFEXITED (@var{status})
+@deftypefn {} {@var{tf} =} WIFEXITED (@var{status})
 Given @var{status} from a call to @code{waitpid}, return
 true if the child terminated normally.
 @seealso{waitpid, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WCOREDUMP, WIFSTOPPED,
@@ -1266,7 +1266,7 @@
 
 DEFUNX ("WEXITSTATUS", FWEXITSTATUS, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WEXITSTATUS (@var{status})
+@deftypefn {} {@var{tf} =} WEXITSTATUS (@var{status})
 Given @var{status} from a call to @code{waitpid}, return
 the exit status of the child.
 
@@ -1285,7 +1285,7 @@
 
 DEFUNX ("WIFSIGNALED", FWIFSIGNALED, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WIFSIGNALED (@var{status})
+@deftypefn {} {@var{tf} =} WIFSIGNALED (@var{status})
 Given @var{status} from a call to @code{waitpid}, return
 true if the child process was terminated by a signal.
 @seealso{waitpid, WIFEXITED, WEXITSTATUS, WTERMSIG, WCOREDUMP, WIFSTOPPED,
@@ -1302,7 +1302,7 @@
 
 DEFUNX ("WTERMSIG", FWTERMSIG, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WTERMSIG (@var{status})
+@deftypefn {} {@var{tf} =} WTERMSIG (@var{status})
 Given @var{status} from a call to @code{waitpid}, return
 the number of the signal that caused the child process to terminate.
 
@@ -1321,7 +1321,7 @@
 
 DEFUNX ("WCOREDUMP", FWCOREDUMP, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WCOREDUMP (@var{status})
+@deftypefn {} {@var{tf} =} WCOREDUMP (@var{status})
 Given @var{status} from a call to @code{waitpid}, return
 true if the child produced a core dump.
 
@@ -1342,7 +1342,7 @@
 
 DEFUNX ("WIFSTOPPED", FWIFSTOPPED, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WIFSTOPPED (@var{status})
+@deftypefn {} {@var{tf} =} WIFSTOPPED (@var{status})
 Given @var{status} from a call to @code{waitpid}, return
 true if the child process was stopped by delivery of a signal.
 
@@ -1362,7 +1362,7 @@
 
 DEFUNX ("WSTOPSIG", FWSTOPSIG, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WSTOPSIG (@var{status})
+@deftypefn {} {@var{tf} =} WSTOPSIG (@var{status})
 Given @var{status} from a call to @code{waitpid}, return
 the number of the signal which caused the child to stop.
 
@@ -1381,7 +1381,7 @@
 
 DEFUNX ("WIFCONTINUED", FWIFCONTINUED, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WIFCONTINUED (@var{status})
+@deftypefn {} {@var{tf} =} WIFCONTINUED (@var{status})
 Given @var{status} from a call to @code{waitpid}, return
 true if the child process was resumed by delivery of @code{SIGCONT}.
 @seealso{waitpid, WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WCOREDUMP,
@@ -1430,13 +1430,13 @@
 
 DEFUNX ("F_DUPFD", FF_DUPFD, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} F_DUPFD ()
+@deftypefn {} {@var{v} =} F_DUPFD ()
 Return the numerical value to pass to @code{fcntl} to return
 a duplicate file descriptor.
 @seealso{fcntl, F_GETFD, F_GETFL, F_SETFD, F_SETFL}
 @end deftypefn */)
 {
-  static int val = octave_f_dupfd_wrapper ();
+  static const int val = octave_f_dupfd_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("F_DUPFD", "F_DUPFD");
@@ -1446,13 +1446,13 @@
 
 DEFUNX ("F_GETFD", FF_GETFD, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} F_GETFD ()
+@deftypefn {} {@var{v} =} F_GETFD ()
 Return the numerical value to pass to @code{fcntl} to return
 the file descriptor flags.
 @seealso{fcntl, F_DUPFD, F_GETFL, F_SETFD, F_SETFL}
 @end deftypefn */)
 {
-  static int val = octave_f_getfd_wrapper ();
+  static const int val = octave_f_getfd_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("F_GETFD", "F_GETFD");
@@ -1462,13 +1462,13 @@
 
 DEFUNX ("F_GETFL", FF_GETFL, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} F_GETFL ()
+@deftypefn {} {@var{v} =} F_GETFL ()
 Return the numerical value to pass to @code{fcntl} to return
 the file status flags.
 @seealso{fcntl, F_DUPFD, F_GETFD, F_SETFD, F_SETFL}
 @end deftypefn */)
 {
-  static int val = octave_f_getfl_wrapper ();
+  static const int val = octave_f_getfl_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("F_GETFL", "F_GETFL");
@@ -1478,13 +1478,13 @@
 
 DEFUNX ("F_SETFD", FF_SETFD, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} F_SETFD ()
+@deftypefn {} {@var{v} =} F_SETFD ()
 Return the numerical value to pass to @code{fcntl} to set the file
 descriptor flags.
 @seealso{fcntl, F_DUPFD, F_GETFD, F_GETFL, F_SETFL}
 @end deftypefn */)
 {
-  static int val = octave_f_setfd_wrapper ();
+  static const int val = octave_f_setfd_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("F_SETFD", "F_SETFD");
@@ -1494,13 +1494,13 @@
 
 DEFUNX ("F_SETFL", FF_SETFL, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} F_SETFL ()
+@deftypefn {} {@var{v} =} F_SETFL ()
 Return the numerical value to pass to @code{fcntl} to set the file
 status flags.
 @seealso{fcntl, F_DUPFD, F_GETFD, F_GETFL, F_SETFD}
 @end deftypefn */)
 {
-  static int val = octave_f_setfl_wrapper ();
+  static const int val = octave_f_setfl_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("F_SETFL", "F_SETFL");
@@ -1510,7 +1510,7 @@
 
 DEFUNX ("O_APPEND", FO_APPEND, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_APPEND ()
+@deftypefn {} {@var{v} =} O_APPEND ()
 Return the numerical value of the @code{O_APPEND} macro.
 
 @code{O_APPEND} is file status flag that may be returned by @code{fcntl}
@@ -1520,7 +1520,7 @@
 O_TRUNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_append_wrapper ();
+  static const int val = octave_o_append_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_APPEND", "O_APPEND");
@@ -1530,7 +1530,7 @@
 
 DEFUNX ("O_ASYNC", FO_ASYNC, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_ASYNC ()
+@deftypefn {} {@var{v} =} O_ASYNC ()
 Return the numerical value of the @code{O_ASYNC} macro.
 
 @code{O_ASYNC} is the file status flag that may be returned by
@@ -1539,7 +1539,7 @@
 O_TRUNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_async_wrapper ();
+  static const int val = octave_o_async_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_ASYNC", "O_ASYNC");
@@ -1549,7 +1549,7 @@
 
 DEFUNX ("O_CREAT", FO_CREAT, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_CREAT ()
+@deftypefn {} {@var{v} =} O_CREAT ()
 Return the numerical value of the @code{O_CREAT}.
 
 @code{O_CREAT} is the file status flag that may be returned by
@@ -1559,7 +1559,7 @@
 O_TRUNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_creat_wrapper ();
+  static const int val = octave_o_creat_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_CREAT", "O_CREAT");
@@ -1569,7 +1569,7 @@
 
 DEFUNX ("O_EXCL", FO_EXCL, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_EXCL ()
+@deftypefn {} {@var{v} =} O_EXCL ()
 Return the numerical value of the @code{O_EXCL}.
 
 @code{O_EXCL} is the file status flag that may be returned by
@@ -1578,7 +1578,7 @@
 O_SYNC, O_TRUNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_excl_wrapper ();
+  static const int val = octave_o_excl_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_EXCL", "O_EXCL");
@@ -1588,7 +1588,7 @@
 
 DEFUNX ("O_NONBLOCK", FO_NONBLOCK, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_NONBLOCK ()
+@deftypefn {} {@var{v} =} O_NONBLOCK ()
 Return the numerical value of the @code{O_NONBLOCK}.
 
 @code{O_NONBLOCK} is the file status flag that may be returned by
@@ -1598,7 +1598,7 @@
 O_TRUNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_nonblock_wrapper ();
+  static const int val = octave_o_nonblock_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_NONBLOCK", "O_NONBLOCK");
@@ -1608,7 +1608,7 @@
 
 DEFUNX ("O_RDONLY", FO_RDONLY, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_RDONLY ()
+@deftypefn {} {@var{v} =} O_RDONLY ()
 Return the numerical value of the @code{O_RDONLY}.
 
 @code{O_RDONLY} is the file status flag that may be returned by
@@ -1617,7 +1617,7 @@
 O_TRUNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_rdonly_wrapper ();
+  static const int val = octave_o_rdonly_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_RDONLY", "O_RDONLY");
@@ -1627,7 +1627,7 @@
 
 DEFUNX ("O_RDWR", FO_RDWR, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_RDWR ()
+@deftypefn {} {@var{v} =} O_RDWR ()
 Return the numerical value of the @code{O_RDWR}.
 
 @code{O_RDWR} is the file status flag that may be returned by
@@ -1637,7 +1637,7 @@
 O_SYNC, O_TRUNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_rdwr_wrapper ();
+  static const int val = octave_o_rdwr_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_RDWR", "O_RDWR");
@@ -1647,7 +1647,7 @@
 
 DEFUNX ("O_SYNC", FO_SYNC, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_SYNC ()
+@deftypefn {} {@var{v} =} O_SYNC ()
 Return the numerical value of the @code{O_SYNC}.
 
 @code{O_SYNC} is the file status flag that may be returned by
@@ -1656,7 +1656,7 @@
 O_RDWR, O_TRUNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_sync_wrapper ();
+  static const int val = octave_o_sync_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_SYNC", "O_SYNC");
@@ -1666,7 +1666,7 @@
 
 DEFUNX ("O_TRUNC", FO_TRUNC, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_TRUNC ()
+@deftypefn {} {@var{v} =} O_TRUNC ()
 Return the numerical value of the @code{O_TRUNC}.
 
 @code{O_TRUNC} is the file status flag that may be returned by
@@ -1676,7 +1676,7 @@
 O_RDWR, O_SYNC, O_WRONLY}
 @end deftypefn */)
 {
-  static int val = octave_o_trunc_wrapper ();
+  static const int val = octave_o_trunc_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_TRUNC", "O_TRUNC");
@@ -1686,7 +1686,7 @@
 
 DEFUNX ("O_WRONLY", FO_WRONLY, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} O_WRONLY ()
+@deftypefn {} {@var{v} =} O_WRONLY ()
 Return the numerical value of the @code{O_WRONLY}.
 
 @code{O_WRONLY} is the file status flag that may be returned by
@@ -1695,7 +1695,7 @@
 O_RDWR, O_SYNC, O_TRUNC}
 @end deftypefn */)
 {
-  static int val = octave_o_wronly_wrapper ();
+  static const int val = octave_o_wronly_wrapper ();
 
   if (val < 0)
     err_disabled_feature ("O_WRONLY", "O_WRONLY");
@@ -1705,7 +1705,7 @@
 
 DEFUNX ("WNOHANG", FWNOHANG, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WNOHANG ()
+@deftypefn {} {@var{v} =} WNOHANG ()
 Return the numerical value of the @code{WNOHANG} macro.
 
 @code{WNOHANG} is the option argument that may be passed to
@@ -1719,7 +1719,7 @@
 
 DEFUNX ("WUNTRACED", FWUNTRACED, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WUNTRACED ()
+@deftypefn {} {@var{v} =} WUNTRACED ()
 Return the numerical value of the @code{WUNTRACED} macro.
 
 @code{WUNTRACED} is the option argument that may be passed to
@@ -1733,7 +1733,7 @@
 
 DEFUNX ("WCONTINUE", FWCONTINUE, args, ,
         doc: /* -*- texinfo -*-
-@deftypefn {} {} WCONTINUE ()
+@deftypefn {} {@var{v} =} WCONTINUE ()
 Return the numerical value of the @code{WCONTINUE} macro.
 
 @code{WCONTINUE} is the option argument that may be passed to
--- a/libinterp/corefcn/sysdep.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/sysdep.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -191,8 +191,8 @@
 
 DEFUN (__open_with_system_app__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __open_with_system_app__ (@var{file})
-Internal function.  Returns 1 on successful system call and 0 otherwise.
+@deftypefn {} {@var{status} =} __open_with_system_app__ (@var{file})
+Return 1 on successful system call and 0 otherwise.
 @end deftypefn */)
 {
   if (args.length () != 1)
@@ -551,7 +551,7 @@
     int tty_fd = STDIN_FILENO;
     if (! octave_isatty_wrapper (tty_fd))
       {
-        interpreter& interp = __get_interpreter__ ("raw_mode");
+        interpreter& interp = __get_interpreter__ ();
 
         if (interp.interactive () && ! application::forced_interactive ())
           error ("stdin is not a tty!");
@@ -819,7 +819,7 @@
 
 DEFUN (getenv, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} getenv (@var{var})
+@deftypefn {} {@var{val} =} getenv ("@var{var}")
 Return the value of the environment variable @var{var}.
 
 For example,
@@ -847,13 +847,16 @@
 
 DEFUN (setenv, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} setenv (@var{var}, @var{value})
+@deftypefn  {} {} setenv ("@var{var}", @var{value})
 @deftypefnx {} {} setenv (@var{var})
 @deftypefnx {} {} putenv (@dots{})
 Set the value of the environment variable @var{var} to @var{value}.
 
 If no @var{value} is specified then the variable will be assigned the null
 string.
+
+Programming Note: @code{putenv} is an alias for @code{setenv} and can be used
+interchangeably.
 @seealso{unsetenv, getenv}
 @end deftypefn */)
 {
@@ -1209,29 +1212,31 @@
 
 DEFMETHOD (kbhit, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} kbhit ()
-@deftypefnx {} {} kbhit (1)
+@deftypefn  {} {@var{c} =} kbhit ()
+@deftypefnx {} {@var{c} =} kbhit (1)
 Read a single keystroke from the keyboard.
 
-If called with an argument, don't wait for a keypress.
+If called with an argument (typically 1), don't wait for a keypress and
+immediately return the next keystroke in the keyboard input buffer or an empty
+string ("") if no keystroke is available.
 
 For example,
 
 @example
-x = kbhit ();
+c = kbhit ();
 @end example
 
 @noindent
-will set @var{x} to the next character typed at the keyboard as soon as
-it is typed.
+will set @var{c} to the next character typed at the keyboard as soon as it is
+typed.
 
 @example
-x = kbhit (1);
+c = kbhit (1);
 @end example
 
 @noindent
-is identical to the above example, but doesn't wait for a keypress,
-returning the empty string if no key is available.
+is identical to the above example, but doesn't wait for a keypress, returning
+the empty string if no key is available.
 @seealso{input, pause}
 @end deftypefn */)
 {
@@ -1272,8 +1277,8 @@
 @end group
 @end example
 
-The following example prints a message and then waits 5 seconds before
-clearing the screen.
+The following example prints a message and then waits 5 seconds before clearing
+the screen.
 
 @example
 @group
@@ -1362,7 +1367,7 @@
 
 DEFUN (isieee, , ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isieee ()
+@deftypefn {} {@var{tf} =} isieee ()
 Return true if your computer @emph{claims} to conform to the IEEE standard
 for floating point calculations.
 
@@ -1381,7 +1386,7 @@
 
 DEFUN (native_float_format, , ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} native_float_format ()
+@deftypefn {} {@var{fmtstr} =} native_float_format ()
 Return the native floating point format as a string.
 @end deftypefn */)
 {
@@ -1396,8 +1401,8 @@
 
 DEFUN (tilde_expand, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} tilde_expand (@var{string})
-@deftypefnx {} {} tilde_expand (@var{cellstr})
+@deftypefn  {} {@var{newstr} =} tilde_expand (@var{string})
+@deftypefnx {} {@var{newcstr} =} tilde_expand (@var{cellstr})
 Perform tilde expansion on @var{string}.
 
 If @var{string} begins with a tilde character, (@samp{~}), all of the
@@ -1469,7 +1474,7 @@
 
 DEFUN (__blas_version__, , ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __blas_version__ ()
+@deftypefn {} {@var{verstr} =} __blas_version__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -1478,7 +1483,7 @@
 
 DEFUN (__lapack_version__, , ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __lapack_version__ ()
+@deftypefn {} {@var{verstr} =} __lapack_version__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
--- a/libinterp/corefcn/time.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/time.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -293,7 +293,7 @@
 
 DEFUN (strftime, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} strftime (@var{fmt}, @var{tm_struct})
+@deftypefn {} {@var{str} =} strftime (@var{fmt}, @var{tm_struct})
 Format the time structure @var{tm_struct} in a flexible way using the format
 string @var{fmt} that contains @samp{%} substitutions similar to those in
 @code{printf}.
--- a/libinterp/corefcn/toplev.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/toplev.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -54,7 +54,6 @@
 #include "defaults.h"
 #include "defun.h"
 #include "error.h"
-#include "file-io.h"
 #include "help.h"
 #include "interpreter-private.h"
 #include "octave.h"
@@ -114,8 +113,7 @@
   iprocstream *cmd = new iprocstream (cmd_str.c_str ());
   frame.add_delete (cmd);
 
-  child_list& kids
-    = __get_child_list__ ("run_command_and_return_output");
+  child_list& kids = __get_child_list__ ();
   frame.add (&child_list::remove, kids, cmd->pid ());
 
   if (! *cmd)
@@ -342,8 +340,8 @@
 
 DEFUN (__octave_config_info__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} __octave_config_info__ ()
-@deftypefnx {} {} __octave_config_info__ (@var{option})
+@deftypefn  {} {@var{S} =} __octave_config_info__ ()
+@deftypefnx {} {@var{S} =} __octave_config_info__ (@var{option})
 Return a structure containing configuration and installation information for
 Octave.
 
@@ -549,7 +547,6 @@
            { "SH_LDFLAGS", build_env::SH_LDFLAGS },
            { "STATIC_LIBS", build_env::STATIC_LIBS },
            { "SUITESPARSECONFIG_LIBS", build_env::SUITESPARSECONFIG_LIBS },
-           { "TERM_LIBS", build_env::TERM_LIBS },
            { "UMFPACK_CPPFLAGS", build_env::UMFPACK_CPPFLAGS },
            { "UMFPACK_LDFLAGS", build_env::UMFPACK_LDFLAGS },
            { "UMFPACK_LIBS", build_env::UMFPACK_LIBS },
--- a/libinterp/corefcn/tsearch.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/tsearch.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -39,18 +39,12 @@
 
 inline double max (double a, double b, double c)
 {
-  if (a < b)
-    return (b < c ? c : b);
-  else
-    return (a < c ? c : a);
+  return (a > b) ? (a > c ? a : c) : (b > c ? b : c);
 }
 
 inline double min (double a, double b, double c)
 {
-  if (a > b)
-    return (b > c ? c : b);
-  else
-    return (a > c ? c : a);
+  return (a < b) ? (a < c ? a : c) : (b < c ? b : c);
 }
 
 #define REF(x,k,i) x(static_cast<octave_idx_type> (elem((k), (i))) - 1)
@@ -102,39 +96,42 @@
   const octave_idx_type np = xi.numel ();
   ColumnVector values (np);
 
-  double x0, y0, a11, a12, a21, a22, det;
-  x0 = y0 = 0.0;
-  a11 = a12 = a21 = a22 = 0.0;
-  det = 0.0;
+  double x0 = 0.0, y0 = 0.0;
+  double a11 = 0.0, a12 = 0.0, a21 = 0.0, a22 = 0.0, det = 0.0;
+  double xt = 0.0, yt = 0.0;
+  double dx1 = 0.0, dx2 = 0.0, c1 = 0.0, c2 = 0.0;
 
-  octave_idx_type k = nelem; // k is a counter of elements
-  for (octave_idx_type kp = 0; kp < np; kp++)
+  octave_idx_type k = nelem;   // k is more than just an index variable.
+
+  for (octave_idx_type kp = 0; kp < np; kp++)   // for each point
     {
-      const double xt = xi(kp);
-      const double yt = yi(kp);
+      xt = xi (kp);
+      yt = yi (kp);
 
-      // check if last triangle contains the next point
-      if (k < nelem)
+      // Check if point (xt,yt) is in the triangle that was last examined.
+      // This is for inputs where points are in contiguous order,
+      // like when the points are sampled from a continuous path.
+      if (k < nelem)  // This check will be false for the very first point.
         {
-          const double dx1 = xt - x0;
-          const double dx2 = yt - y0;
-          const double c1 = (a22 * dx1 - a21 * dx2) / det;
-          const double c2 = (-a12 * dx1 + a11 * dx2) / det;
-          if (c1 >= -eps && c2 >= -eps && (c1 + c2) <= (1 + eps))
+          // If we are here, then x0, y0, det all exist from before.
+          dx1 = xt - x0;
+          dx2 = yt - y0;
+          c1 = (a22 * dx1 - a21 * dx2) / det;
+          c2 = (-a12 * dx1 + a11 * dx2) / det;
+          if (c1 >= -eps && c2 >= -eps && (c1 + c2) <= 1 + eps)
             {
-              values(kp) = double(k+1);
+              values (kp) = k+1;
               continue;
             }
         }
 
-      // it doesn't, so go through all elements
+      // The point is not in the same triangle, so go through all triangles.
       for (k = 0; k < nelem; k++)
         {
-          octave_quit ();
-
           if (xt >= minx(k) && xt <= maxx(k) && yt >= miny(k) && yt <= maxy(k))
             {
-              // element inside the minimum rectangle: examine it closely
+              // Point is inside the triangle's bounding rectangle:
+              // See if it's inside the triangle itself.
               x0  = REF (x, k, 0);
               y0  = REF (y, k, 0);
               a11 = REF (x, k, 1) - x0;
@@ -144,22 +141,22 @@
               det = a11 * a22 - a21 * a12;
 
               // solve the system
-              const double dx1 = xt - x0;
-              const double dx2 = yt - y0;
-              const double c1 = (a22 * dx1 - a21 * dx2) / det;
-              const double c2 = (-a12 * dx1 + a11 * dx2) / det;
-              if ((c1 >= -eps) && (c2 >= -eps) && ((c1 + c2) <= (1 + eps)))
+              dx1 = xt - x0;
+              dx2 = yt - y0;
+              c1 = (a22 * dx1 - a21 * dx2) / det;
+              c2 = (-a12 * dx1 + a11 * dx2) / det;
+              if (c1 >= -eps && c2 >= -eps && (c1 + c2) <= 1 + eps)
                 {
-                  values(kp) = double(k+1);
+                  values (kp) = k+1;
                   break;
                 }
-            } //endif # examine this element closely
-        } //endfor # each element
+            } //end see if it's inside the triangle itself
+        } //end for each triangle
 
       if (k == nelem)
-        values(kp) = lo_ieee_nan_value ();
+        values (kp) = lo_ieee_nan_value ();
 
-    } //endfor # kp
+    } //end for each point
 
   return ovl (values);
 }
--- a/libinterp/corefcn/typecast.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/typecast.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -206,8 +206,6 @@
       else if (array.is_uint64_type ())
         get_data_and_bytesize (array.uint64_array_value (), data, byte_size,
                                old_dims, frame);
-      else
-        assert (0);
     }
   else if (array.iscomplex ())
     {
@@ -239,8 +237,8 @@
     ;
   else if (numclass == "char")
     retval = octave_value (reinterpret_copy<charNDArray>
-                           (data, byte_size, old_dims), array.is_dq_string () ? '"'
-                           : '\'');
+                           (data, byte_size, old_dims),
+                           array.is_dq_string () ? '"' : '\'');
   else if (numclass[0] == 'i')
     {
       if (numclass == "int8")
@@ -548,8 +546,6 @@
         retval = do_bitunpack (array.uint32_array_value ());
       else if (array.is_uint64_type ())
         retval = do_bitunpack (array.uint64_array_value ());
-      else
-        assert (0);
     }
   else if (array.iscomplex ())
     {
--- a/libinterp/corefcn/utils.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/utils.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -48,6 +48,7 @@
 #include "pathsearch.h"
 #include "quit.h"
 #include "str-vec.h"
+#include "strcase-wrappers.h"
 #include "vasprintf-wrapper.h"
 
 #include "Cell.h"
@@ -93,7 +94,7 @@
 
 DEFUN (isvarname, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isvarname (@var{name})
+@deftypefn {} {@var{tf} =} isvarname (@var{name})
 Return true if @var{name} is a valid variable name.
 
 A valid variable name is composed of letters, digits, and underscores ("_"),
@@ -614,8 +615,8 @@
 
 DEFUN (file_in_path, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} file_in_path (@var{path}, @var{file})
-@deftypefnx {} {} file_in_path (@var{path}, @var{file}, "all")
+@deftypefn  {} {@var{fname} =} file_in_path (@var{path}, @var{file})
+@deftypefnx {} {@var{fname} =} file_in_path (@var{path}, @var{file}, "all")
 Return the absolute name of @var{file} if it can be found in @var{path}.
 
 The value of @var{path} should be a colon-separated list of directories in
@@ -692,7 +693,7 @@
     if (! suffix.empty ())
       nm.append (suffix);
 
-    load_path& lp = __get_load_path__ ("file_in_path");
+    load_path& lp = __get_load_path__ ();
 
     return sys::env::make_absolute (lp.find_file (nm));
   }
@@ -716,7 +717,7 @@
 
         if (! local_file_ok)
           {
-            load_path& lp = __get_load_path__ ("find_data_file_in_load_path");
+            load_path& lp = __get_load_path__ ();
 
             // Not directly found; search load path.
             std::string tmp = sys::env::make_absolute (lp.find_file (fname));
@@ -753,7 +754,7 @@
           }
         else if (len > 2 && name[len - 2] == '.' && name[len - 1] == 'm')
           {
-            load_path& lp = __get_load_path__ ("fcn_file_in_path");
+            load_path& lp = __get_load_path__ ();
 
             retval = lp.find_fcn_file (name.substr (0, len-2));
           }
@@ -764,7 +765,7 @@
             if (pos != std::string::npos)
               fname = name.substr (0, pos);
 
-            load_path& lp = __get_load_path__ ("fcn_file_in_path");
+            load_path& lp = __get_load_path__ ();
 
             retval = lp.find_fcn_file (fname);
           }
@@ -782,7 +783,7 @@
 
     if (! dir.empty ())
       {
-        load_path& lp = __get_load_path__ ("contents_file_in_path");
+        load_path& lp = __get_load_path__ ();
 
         std::string tcontents
           = sys::file_ops::concat (lp.find_dir (dir), "Contents.m");
@@ -925,7 +926,7 @@
 
 DEFUN (do_string_escapes, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} do_string_escapes (@var{string})
+@deftypefn {} {@var{newstr} =} do_string_escapes (@var{string})
 Convert escape sequences in @var{string} to the characters they represent.
 
 Escape sequences begin with a leading backslash
@@ -1038,13 +1039,13 @@
 
 DEFUN (undo_string_escapes, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} undo_string_escapes (@var{s})
-Convert special characters in strings back to their escaped forms.
+@deftypefn {} {@var{newstr} =} undo_string_escapes (@var{string})
+Convert special characters in @var{string} back to their escaped forms.
 
 For example, the expression
 
 @example
-bell = "\a";
+@var{bell} = "\a";
 @end example
 
 @noindent
@@ -1070,7 +1071,7 @@
   if (args.length () != 1)
     print_usage ();
 
-  std::string str = args(0).xstring_value ("undo_string_escapes: S argument must be a string");
+  std::string str = args(0).xstring_value ("undo_string_escapes: STRING argument must be a string");
 
   return ovl (undo_string_escapes (str));
 }
@@ -1099,7 +1100,7 @@
 
 DEFUN (is_absolute_filename, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} is_absolute_filename (@var{file})
+@deftypefn {} {@var{tf} =} is_absolute_filename (@var{file})
 Return true if @var{file} is an absolute filename.
 @seealso{is_rooted_relative_filename, make_absolute_filename, isfolder}
 @end deftypefn */)
@@ -1120,7 +1121,7 @@
 
 DEFUN (is_rooted_relative_filename, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} is_rooted_relative_filename (@var{file})
+@deftypefn {} {@var{tf} =} is_rooted_relative_filename (@var{file})
 Return true if @var{file} is a rooted-relative filename.
 @seealso{is_absolute_filename, make_absolute_filename, isfolder}
 @end deftypefn */)
@@ -1141,9 +1142,8 @@
 
 DEFUN (make_absolute_filename, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} make_absolute_filename (@var{file})
-Return the full name of @var{file} beginning from the root of the file
-system.
+@deftypefn {} {@var{abs_fname} =} make_absolute_filename (@var{file})
+Return the full name of @var{file} beginning from the root of the file system.
 
 No check is done for the existence of @var{file}.  No tilde expansion of
 @var{file} is performed.
@@ -1288,7 +1288,7 @@
 
 DEFUN (errno_list, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} errno_list ()
+@deftypefn {} {@var{S} =} errno_list ()
 Return a structure containing the system-dependent errno values.
 @seealso{errno}
 @end deftypefn */)
@@ -1339,10 +1339,9 @@
   void get_dimensions (const octave_value& a, const char *warn_for,
                        dim_vector& dim)
   {
-    // We support dimensions to be specified by any vector, even if it's a
-    // vector of dimensions 0x1, 1x0, 1x1x0, or 1x1x6.  If the vector ends
-    // up being empty, the final dimensions end up being 0x0.
-    if (! a.dims ().isvector ())
+    // We support dimensions to be specified by a vector, even if it's empty.
+    // If the vector is empty, the final dimensions end up being 0x0.
+    if (! a.dims ().isvector () && a.dims ().numel () != 0)
       error ("%s (A): use %s (size (A)) instead", warn_for, warn_for);
 
     const Array<octave_idx_type> v = a.octave_idx_type_vector_value (true);
@@ -1491,33 +1490,6 @@
     return s.length ();
   }
 
-  std::size_t format (std::ostream& os, const std::string& enc, const char *fmt, ...)
-  {
-    std::size_t retval;
-
-    va_list args;
-    va_start (args, fmt);
-
-    retval = vformat (os, enc, fmt, args);
-
-    va_end (args);
-
-    return retval;
-  }
-
-  std::size_t vformat (std::ostream& os, const std::string& enc, const char *fmt,
-                  va_list args)
-  {
-    std::string s = vasprintf (fmt, args);
-
-    if (enc.compare ("utf-8"))
-      os << string::u8_to_encoding ("printf", s, enc);
-    else
-      os << s;
-
-    return s.length ();
-  }
-
   std::string vasprintf (const char *fmt, va_list args)
   {
     std::string retval;
@@ -1562,7 +1534,7 @@
     // Allow free access to graphics resources while the interpreter thread
     // is asleep
 
-    gh_manager& gh_mgr = __get_gh_manager__ ("sleep");
+    gh_manager& gh_mgr = __get_gh_manager__ ();
 
     if (do_graphics_events)
       gh_mgr.unlock ();
@@ -1628,8 +1600,8 @@
 
 DEFMETHOD (isindex, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} isindex (@var{ind})
-@deftypefnx {} {} isindex (@var{ind}, @var{n})
+@deftypefn  {} {@var{tf} =} isindex (@var{ind})
+@deftypefnx {} {@var{tf} =} isindex (@var{ind}, @var{n})
 Return true if @var{ind} is a valid index.
 
 Valid indices are either positive integers (although possibly of real data
@@ -1685,8 +1657,8 @@
 */
 
   octave_value_list
-  do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int),
-                     const char *fun_name, const octave_value_list& args,
+  do_simple_cellfun (octave_value_list (*fcn) (const octave_value_list&, int),
+                     const char *fcn_name, const octave_value_list& args,
                      int nargout)
   {
     octave_value_list new_args = args;
@@ -1720,7 +1692,7 @@
                 dims = ccells[i].dims ();
               }
             else if (dims != ccells[i].dims ())
-              error ("%s: cell arguments must have matching sizes", fun_name);
+              error ("%s: cell arguments must have matching sizes", fcn_name);
           }
       }
 
@@ -1735,10 +1707,10 @@
 
         octave_quit ();
 
-        const octave_value_list tmp = fun (new_args, nargout);
+        const octave_value_list tmp = fcn (new_args, nargout);
 
         if (tmp.length () < nargout)
-          error ("%s: do_simple_cellfun: internal error", fun_name);
+          error ("%s: do_simple_cellfun: internal error", fcn_name);
 
         for (int i = 0; i < nargout; i++)
           rcells[i](j) = tmp(i);
@@ -1753,12 +1725,12 @@
   }
 
   octave_value
-  do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int),
-                     const char *fun_name, const octave_value_list& args)
+  do_simple_cellfun (octave_value_list (*fcn) (const octave_value_list&, int),
+                     const char *fcn_name, const octave_value_list& args)
   {
     octave_value retval;
 
-    const octave_value_list tmp = do_simple_cellfun (fun, fun_name, args, 1);
+    const octave_value_list tmp = do_simple_cellfun (fcn, fcn_name, args, 1);
 
     if (tmp.length () > 0)
       retval = tmp(0);
@@ -1768,7 +1740,7 @@
 
 DEFUN (isstudent, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isstudent ()
+@deftypefn {} {@var{tf} =} isstudent ()
 Return true if running in the student edition of @sc{matlab}.
 
 @code{isstudent} always returns false in Octave.
--- a/libinterp/corefcn/utils.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/utils.h	Tue Nov 15 13:15:28 2022 -0800
@@ -169,15 +169,8 @@
   format (std::ostream& os, const char *fmt, ...);
 
   extern OCTINTERP_API std::size_t
-  format (std::ostream& os, const std::string& enc, const char *fmt, ...);
-
-  extern OCTINTERP_API std::size_t
   vformat (std::ostream& os, const char *fmt, va_list args);
 
-  extern OCTINTERP_API std::size_t
-  vformat (std::ostream& os, const std::string& enc,
-           const char *fmt, va_list args);
-
   extern OCTINTERP_API std::string
   vasprintf (const char *fmt, va_list args);
 
@@ -188,14 +181,14 @@
 
   extern OCTINTERP_API
   octave_value_list
-  do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int),
-                     const char *fun_name, const octave_value_list& args,
+  do_simple_cellfun (octave_value_list (*fcn) (const octave_value_list&, int),
+                     const char *fcn_name, const octave_value_list& args,
                      int nargout);
 
   extern OCTINTERP_API
   octave_value
-  do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int),
-                     const char *fun_name, const octave_value_list& args);
+  do_simple_cellfun (octave_value_list (*fcn) (const octave_value_list&, int),
+                     const char *fcn_name, const octave_value_list& args);
 
 OCTAVE_NAMESPACE_END
 
--- a/libinterp/corefcn/variables.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/variables.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -81,8 +81,7 @@
 
   if (! fcn_name.empty ())
     {
-      octave::symbol_table& symtab
-        = octave::__get_symbol_table__ ("is_valid_function");
+      octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
       octave_value val = symtab.find_function (fcn_name);
 
@@ -124,7 +123,7 @@
 
 DEFMETHOD (isglobal, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} isglobal (@var{name})
+@deftypefn {} {@var{tf} =} isglobal (@var{name})
 Return true if @var{name} is a globally visible variable.
 
 For example:
@@ -328,7 +327,7 @@
 int
 symbol_exist (const std::string& name, const std::string& type)
 {
-  octave::interpreter& interp = octave::__get_interpreter__ ("symbol_exist");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   return octave::symbol_exist (interp, name, type);
 }
@@ -352,8 +351,7 @@
   if (nm.substr (0, 2) == "__")
     nm.append ("__");
 
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("unique_symbol_name");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   while (symbol_exist (interp, nm, "any"))
     nm.insert (pos++, 1, alpha[GET_IDX (len)]);
@@ -562,8 +560,7 @@
 static octave::unwind_protect *
 curr_fcn_unwind_protect_frame (void)
 {
-  octave::tree_evaluator& tw
-    = octave::__get_evaluator__ ("curr_fcn_unwind_protect_frame");
+  octave::tree_evaluator& tw = octave::__get_evaluator__ ();
 
   return tw.curr_fcn_unwind_protect_frame ();
 }
@@ -772,7 +769,7 @@
 
   int nargin = args.length ();
 
-  assert (var < nchoices);
+  error_unless (var < nchoices);
 
   if (nargout > 0 || nargin == 0)
     retval = choices[var];
@@ -905,8 +902,8 @@
 
 DEFMETHOD (mislocked, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} mislocked ()
-@deftypefnx {} {} mislocked (@var{fcn})
+@deftypefn  {} {@var{tf} =} mislocked ()
+@deftypefnx {} {@var{tf} =} mislocked (@var{fcn})
 Return true if the named function @var{fcn} is locked in memory.
 
 If no function is named then return true if the current function is locked.
@@ -1395,7 +1392,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} missing_function_hook ()
 @deftypefnx {} {@var{old_val} =} missing_function_hook (@var{new_val})
-@deftypefnx {} {} missing_function_hook (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} missing_function_hook (@var{new_val}, "local")
 Query or set the internal variable that specifies the function to call
 to provide extra information when an unknown identifier is referenced.
 
@@ -1412,8 +1409,7 @@
 std::string
 maybe_missing_function_hook (const std::string& name)
 {
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("maybe_missing_function_hook");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   // Don't do this if we're handling errors.
   if (Vmissing_function_hook.empty ())
@@ -1430,11 +1426,11 @@
         restore_var (Vmissing_function_hook);
 
       // Clear the variable prior to calling the function.
-      const std::string func_name = Vmissing_function_hook;
+      const std::string fcn_name = Vmissing_function_hook;
       Vmissing_function_hook.clear ();
 
       // Call.
-      octave_value_list tmp = octave::feval (func_name, octave_value (name), 1);
+      octave_value_list tmp = octave::feval (fcn_name, octave_value (name), 1);
 
       if (tmp.length () == 1 && tmp(0).is_string ())
         return tmp(0).string_value ();
@@ -1496,7 +1492,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} missing_component_hook ()
 @deftypefnx {} {@var{old_val} =} missing_component_hook (@var{new_val})
-@deftypefnx {} {} missing_component_hook (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} missing_component_hook (@var{new_val}, "local")
 Query or set the internal variable that specifies the function to call when
 a component of Octave is missing.
 
@@ -1525,45 +1521,3 @@
 }
 
 OCTAVE_NAMESPACE_END
-
-// DEPRECATED in Octave 6
-
-octave_function *
-extract_function (const octave_value& arg, const std::string& warn_for,
-                  const std::string& fname, const std::string& header,
-                  const std::string& trailer)
-{
-  octave_function *retval = is_valid_function (arg, warn_for, 0);
-
-  if (! retval)
-    {
-      std::string s = arg.xstring_value ("%s: argument must be a string",
-                                         warn_for.c_str ());
-
-      std::string cmd = header;
-      cmd.append (s);
-      cmd.append (trailer);
-
-      int parse_status;
-
-      octave::interpreter& interp
-        = octave::__get_interpreter__ ("extract_function");
-
-      interp.eval_string (cmd, true, parse_status, 0);
-
-      if (parse_status != 0)
-        error ("%s: '%s' is not valid as a function",
-               warn_for.c_str (), fname.c_str ());
-
-      retval = is_valid_function (fname, warn_for, 0);
-
-      if (! retval)
-        error ("%s: '%s' is not valid as a function",
-               warn_for.c_str (), fname.c_str ());
-
-      warning ("%s: passing function body as a string is obsolete; please use anonymous functions",
-               warn_for.c_str ());
-    }
-
-  return retval;
-}
--- a/libinterp/corefcn/variables.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/variables.h	Tue Nov 15 13:15:28 2022 -0800
@@ -124,29 +124,34 @@
 
 OCTAVE_DEPRECATED (7, "use 'octave::set_internal_variable' instead")
 inline octave_value
-set_internal_variable (bool& var, const octave_value_list& args, int nargout, const char *nm)
+set_internal_variable (bool& var, const octave_value_list& args, int nargout,
+                       const char *nm)
 {
   return octave::set_internal_variable (var, args, nargout, nm);
 }
 
 OCTAVE_DEPRECATED (7, "use 'octave::set_internal_variable' instead")
 inline octave_value
-set_internal_variable (char& var, const octave_value_list& args, int nargout, const char *nm)
+set_internal_variable (char& var, const octave_value_list& args, int nargout,
+                       const char *nm)
 {
   return octave::set_internal_variable (var, args, nargout, nm);
 }
 
 OCTAVE_DEPRECATED (7, "use 'octave::set_internal_variable' instead")
 inline octave_value
-set_internal_variable (int& var, const octave_value_list& args, int nargout, const char *nm,
-                       int minval = std::numeric_limits<int>::min (), int maxval = std::numeric_limits<int>::max ())
+set_internal_variable (int& var, const octave_value_list& args, int nargout,
+                       const char *nm,
+                       int minval = std::numeric_limits<int>::min (),
+                       int maxval = std::numeric_limits<int>::max ())
 {
   return octave::set_internal_variable (var, args, nargout, nm, minval, maxval);
 }
 
 OCTAVE_DEPRECATED (7, "use 'octave::set_internal_variable' instead")
 inline octave_value
-set_internal_variable (double& var, const octave_value_list& args, int nargout, const char *nm,
+set_internal_variable (double& var, const octave_value_list& args, int nargout,
+                       const char *nm,
                        double minval = -octave::numeric_limits<double>::Inf (),
                        double maxval = octave::numeric_limits<double>::Inf ())
 {
@@ -155,24 +160,24 @@
 
 OCTAVE_DEPRECATED (7, "use 'octave::set_internal_variable' instead")
 inline octave_value
-set_internal_variable (std::string& var, const octave_value_list& args, int nargout, const char *nm,
-                       bool empty_ok = true)
+set_internal_variable (std::string& var, const octave_value_list& args,
+                       int nargout, const char *nm, bool empty_ok = true)
 {
   return octave::set_internal_variable (var, args, nargout, nm, empty_ok);
 }
 
 OCTAVE_DEPRECATED (7, "use 'octave::set_internal_variable' instead")
 inline octave_value
-set_internal_variable (std::string& var, const octave_value_list& args, int nargout, const char *nm,
-                       const char **choices)
+set_internal_variable (std::string& var, const octave_value_list& args,
+                       int nargout, const char *nm, const char **choices)
 {
   return octave::set_internal_variable (var, args, nargout, nm, choices);
 }
 
 OCTAVE_DEPRECATED (7, "use 'octave::set_internal_variable' instead")
 inline octave_value
-set_internal_variable (int& var, const octave_value_list& args, int nargout, const char *nm,
-                       const char **choices)
+set_internal_variable (int& var, const octave_value_list& args, int nargout,
+                       const char *nm, const char **choices)
 {
   return octave::set_internal_variable (var, args, nargout, nm, choices);
 }
@@ -184,12 +189,6 @@
   return octave::maybe_missing_function_hook (name);
 }
 
-OCTAVE_DEPRECATED (6, "use 'octave::get_function_handle' instead")
-extern OCTINTERP_API octave_function *
-extract_function (const octave_value& arg, const std::string& warn_for,
-                  const std::string& fname, const std::string& header,
-                  const std::string& trailer);
-
 #endif
 
 // The following macros should also be considered obsolete.
--- a/libinterp/corefcn/xdiv.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/xdiv.h	Tue Nov 15 13:15:28 2022 -0800
@@ -77,7 +77,8 @@
 
 extern FloatMatrix elem_xdiv (float a, const FloatMatrix& b);
 extern FloatComplexMatrix elem_xdiv (float a, const FloatComplexMatrix& b);
-extern FloatComplexMatrix elem_xdiv (const FloatComplex a, const FloatMatrix& b);
+extern FloatComplexMatrix elem_xdiv (const FloatComplex a,
+                                     const FloatMatrix& b);
 extern FloatComplexMatrix elem_xdiv (const FloatComplex a,
                                      const FloatComplexMatrix& b);
 
@@ -243,31 +244,32 @@
 
 OCTAVE_DEPRECATED (7, "use 'octave::xleftdiv' instead")
 inline Matrix
-xleftdiv (const Matrix& a, const Matrix& b, MatrixType& typ, blas_trans_type transt = blas_no_trans)
+xleftdiv (const Matrix& a, const Matrix& b,
+          MatrixType& typ, blas_trans_type transt = blas_no_trans)
 {
   return octave::xleftdiv (a, b, typ, transt);
 }
 
 OCTAVE_DEPRECATED (7, "use 'octave::xleftdiv' instead")
 inline ComplexMatrix
-xleftdiv (const Matrix& a, const ComplexMatrix& b, MatrixType& typ,
-          blas_trans_type transt = blas_no_trans)
+xleftdiv (const Matrix& a, const ComplexMatrix& b,
+          MatrixType& typ, blas_trans_type transt = blas_no_trans)
 {
   return octave::xleftdiv (a, b, typ, transt);
 }
 
 OCTAVE_DEPRECATED (7, "use 'octave::xleftdiv' instead")
 inline ComplexMatrix
-xleftdiv (const ComplexMatrix& a, const Matrix& b, MatrixType& typ,
-          blas_trans_type transt = blas_no_trans)
+xleftdiv (const ComplexMatrix& a, const Matrix& b,
+          MatrixType& typ, blas_trans_type transt = blas_no_trans)
 {
   return octave::xleftdiv (a, b, typ, transt);
 }
 
 OCTAVE_DEPRECATED (7, "use 'octave::xleftdiv' instead")
 inline ComplexMatrix
-xleftdiv (const ComplexMatrix& a, const ComplexMatrix& b, MatrixType& typ,
-          blas_trans_type transt = blas_no_trans)
+xleftdiv (const ComplexMatrix& a, const ComplexMatrix& b,
+          MatrixType& typ, blas_trans_type transt = blas_no_trans)
 {
   return octave::xleftdiv (a, b, typ, transt);
 }
--- a/libinterp/corefcn/xpow.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/corefcn/xpow.h	Tue Nov 15 13:15:28 2022 -0800
@@ -77,7 +77,8 @@
 
 extern OCTINTERP_API octave_value elem_xpow (double a, const Matrix& b);
 extern OCTINTERP_API octave_value elem_xpow (double a, const ComplexMatrix& b);
-extern OCTINTERP_API octave_value elem_xpow (double a, const octave::range<double>& r);
+extern OCTINTERP_API octave_value elem_xpow (double a,
+                                             const octave::range<double>& r);
 
 extern OCTINTERP_API octave_value elem_xpow (const Matrix& a, double b);
 extern OCTINTERP_API octave_value elem_xpow (const Matrix& a, const Matrix& b);
@@ -88,7 +89,8 @@
 extern OCTINTERP_API octave_value elem_xpow (const Complex& a, const Matrix& b);
 extern OCTINTERP_API octave_value elem_xpow (const Complex& a,
                                              const ComplexMatrix& b);
-extern OCTINTERP_API octave_value elem_xpow (const Complex& a, const octave::range<double>& r);
+extern OCTINTERP_API octave_value elem_xpow (const Complex& a,
+                                             const octave::range<double>& r);
 
 extern OCTINTERP_API octave_value elem_xpow (const ComplexMatrix& a, double b);
 extern OCTINTERP_API octave_value elem_xpow (const ComplexMatrix& a,
--- a/libinterp/dldfcn/__fltk_uigetfile__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/__fltk_uigetfile__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -58,7 +58,7 @@
 
 DEFUN_DLD (__fltk_uigetfile__, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __fltk_uigetfile__ (@dots{})
+@deftypefn {} {[@var{fname}, @var{fpath}, @var{fltidx}] =} __fltk_uigetfile__ (@dots{})
 Undocumented internal function.
 @end deftypefn */)
 {
--- a/libinterp/dldfcn/__init_fltk__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/__init_fltk__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -159,14 +159,14 @@
 
   void print (const std::string& cmd, const std::string& term)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("OpenGL_fltk::print");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     octave::gl2ps_print (m_glfcns, gh_mgr.get_object (m_number), cmd, term);
   }
 
   uint8NDArray get_pixels (void)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("OpenGL_fltk::get_pixels");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     m_renderer.draw (gh_mgr.get_object (m_number));
 
@@ -230,7 +230,7 @@
         m_glfcns.glViewport (0, 0, w (), h ());
       }
 
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("OpenGL_fltk::draw");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     m_renderer.draw (gh_mgr.get_object (m_number));
 
@@ -297,7 +297,7 @@
 
 static void script_cb (Fl_Widget *, void *data)
 {
-  static_cast<uimenu::properties *> (data)->execute_callback ();
+  static_cast<uimenu::properties *> (data)->execute_menuselectedfcn ();
 }
 
 class fltk_uimenu
@@ -411,8 +411,7 @@
 
     for (octave_idx_type ii = 0; ii < uimenu_childs.numel (); ii++)
       {
-        gh_manager& gh_mgr
-          = octave::__get_gh_manager__ ("fltk_uimenu::do_find_uimenu_children");
+        gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
         graphics_object kidgo = gh_mgr.get_object (uimenu_childs (ii));
 
@@ -463,7 +462,7 @@
       }
   }
 
-  void update_callback (uimenu::properties& uimenup)
+  void update_menuselectedfcn (uimenu::properties& uimenup)
   {
     std::string fltk_label = uimenup.get___fltk_label__ ();
     if (! fltk_label.empty ())
@@ -472,7 +471,7 @@
           = const_cast<Fl_Menu_Item *> (m_menubar->find_item (fltk_label.c_str ()));
         if (item)
           {
-            if (! uimenup.get_callback ().isempty ())
+            if (! uimenup.get_menuselectedfcn ().isempty ())
               item->callback (static_cast<Fl_Callback *> (script_cb),
                               static_cast<void *> (&uimenup));
             else
@@ -635,13 +634,13 @@
 
     add_entry (uimenup);
     update_foregroundcolor (uimenup);
-    update_callback (uimenup);
+    update_menuselectedfcn (uimenup);
     update_accelerator (uimenup);
     update_enable (uimenup);
     update_visible (uimenup);
     update_seperator (uimenup);
 
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("fltk_uimenu::add_to_menu");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     for (octave_idx_type ii = 0; ii < len; ii++)
       {
@@ -687,7 +686,7 @@
 
     m_menubar->clear ();
 
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("fltk_uimenu::add_to_menu");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     for (octave_idx_type ii = 0; ii < len; ii++)
       {
@@ -733,7 +732,7 @@
     kids = find_uimenu_children (prop);
     int len = kids.numel ();
 
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("fltk_uimenu::remove_from_menu");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     for (octave_idx_type ii = 0; ii < len; ii++)
       {
@@ -935,7 +934,7 @@
 
   void uimenu_update (const graphics_handle& gh, int id)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("plot_window::uimenu_update");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     graphics_object uimenu_obj = gh_mgr.get_object (gh);
 
@@ -962,8 +961,8 @@
             m_uimenu->update_accelerator (uimenup);
             break;
 
-          case uimenu::properties::ID_CALLBACK:
-            m_uimenu->update_callback (uimenup);
+          case uimenu::properties::ID_MENUSELECTEDFCN:
+            m_uimenu->update_menuselectedfcn (uimenup);
             break;
 
           case uimenu::properties::ID_CHECKED:
@@ -1155,8 +1154,7 @@
         graphics_handle gh = m_fp.get_currentaxes ();
         if (gh.ok ())
           {
-            gh_manager& gh_mgr
-              = octave::__get_gh_manager__ ("plot_window::set_on_ax_obj");
+            gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
             graphics_object go = gh_mgr.get_object (gh);
 
@@ -1193,7 +1191,7 @@
   void pixel2pos (const graphics_handle& ax, int px, int py, double& xx,
                   double& yy) const
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("plot_window::pixel2pos");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     pixel2pos (gh_mgr.get_object (ax), px, py, xx, yy);
   }
@@ -1216,7 +1214,7 @@
     Matrix kids = m_fp.get_children ();
     int len = kids.numel ();
 
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("plot_window::pixel2axes_or_ca");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     for (int k = 0; k < len; k++)
       {
@@ -1244,7 +1242,7 @@
   void pixel2status (const graphics_handle& ax, int px0, int py0,
                      int px1 = -1, int py1 = -1)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("plot_window::pixel2status");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     pixel2status (gh_mgr.get_object (ax), px0, py0, px1, py1);
   }
@@ -1292,8 +1290,7 @@
         Matrix pos = m_fp.map_from_boundingbox (px, py);
         m_fp.set_currentpoint (pos);
 
-        gh_manager& gh_mgr
-          = octave::__get_gh_manager__ ("plot_window::set_currentpoint");
+        gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
         graphics_object robj = gh_mgr.get_object (m_fp.get_parent ());
 
@@ -1340,7 +1337,8 @@
       return 0;
   }
 
-  octave_scalar_map format_key_event (int e_key, const char *e_text, int e_state)
+  octave_scalar_map format_key_event (int e_key, const char *e_text,
+                                      int e_state)
   {
     octave_scalar_map evt;
 
@@ -1512,7 +1510,7 @@
         // See Event Propagation http://www.fltk.org/doc-1.3/events.html
         static bool key_resent_detected = false;
 
-        gh_manager& gh_mgr = octave::__get_gh_manager__ ("plot_window::handle");
+        gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
         switch (event)
           {
@@ -1798,7 +1796,8 @@
             case FL_RELEASE:
               if (! m_fp.get_windowbuttonupfcn ().isempty ())
                 {
-                  set_currentpoint (Fl::event_x (), Fl::event_y () - menu_dy ());
+                  set_currentpoint (Fl::event_x (),
+                                    Fl::event_y () - menu_dy ());
                   m_fp.execute_windowbuttonupfcn ();
                 }
 
@@ -2234,7 +2233,7 @@
 
   static int hnd2idx (double h)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("figure_manager::hnd2idx");
+    gh_manager& gh_mgr = octave::__get_gh_manager__ ();
 
     graphics_object fobj = gh_mgr.get_object (h);
 
--- a/libinterp/dldfcn/__init_gnuplot__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/__init_gnuplot__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -237,8 +237,7 @@
     }
   catch (const octave::execution_exception&)
     {
-      octave::interpreter& interp
-        = octave::__get_interpreter__ ("have_gnuplot_binary");
+      octave::interpreter& interp = octave::__get_interpreter__ ();
 
       interp.recover_from_exception ();
     }
--- a/libinterp/dldfcn/__ode15__.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/__ode15__.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -169,22 +169,22 @@
 
     //Default
     IDA (void)
-      : m_t0 (0.0), m_y0 (), m_yp0 (), m_havejac (false), m_havejacfun (false),
-        m_havejacsparse (false), m_mem (nullptr), m_num (), m_ida_fun (),
+      : m_t0 (0.0), m_y0 (), m_yp0 (), m_havejac (false), m_havejacfcn (false),
+        m_havejacsparse (false), m_mem (nullptr), m_num (), m_ida_fcn (),
         m_ida_jac (), m_dfdy (nullptr), m_dfdyp (nullptr), m_spdfdy (nullptr),
-        m_spdfdyp (nullptr), m_fun (nullptr), m_jacfun (nullptr),
-        m_jacspfun (nullptr), m_jacdcell (nullptr), m_jacspcell (nullptr),
+        m_spdfdyp (nullptr), m_fcn (nullptr), m_jacfcn (nullptr),
+        m_jacspfcn (nullptr), m_jacdcell (nullptr), m_jacspcell (nullptr),
         m_sunJacMatrix (nullptr), m_sunLinearSolver (nullptr)
     { }
 
 
     IDA (realtype t, ColumnVector y, ColumnVector yp,
          const octave_value& ida_fcn, DAERHSFuncIDA daefun)
-      : m_t0 (t), m_y0 (y), m_yp0 (yp), m_havejac (false), m_havejacfun (false),
-        m_havejacsparse (false), m_mem (nullptr), m_num (), m_ida_fun (ida_fcn),
+      : m_t0 (t), m_y0 (y), m_yp0 (yp), m_havejac (false), m_havejacfcn (false),
+        m_havejacsparse (false), m_mem (nullptr), m_num (), m_ida_fcn (ida_fcn),
         m_ida_jac (), m_dfdy (nullptr), m_dfdyp (nullptr), m_spdfdy (nullptr),
-        m_spdfdyp (nullptr), m_fun (daefun), m_jacfun (nullptr),
-        m_jacspfun (nullptr), m_jacdcell (nullptr), m_jacspcell (nullptr),
+        m_spdfdyp (nullptr), m_fcn (daefun), m_jacfcn (nullptr),
+        m_jacspfcn (nullptr), m_jacdcell (nullptr), m_jacspcell (nullptr),
         m_sunJacMatrix (nullptr), m_sunLinearSolver (nullptr)
     { }
 
@@ -202,10 +202,10 @@
     IDA&
     set_jacobian (const octave_value& jac, DAEJacFuncDense j)
     {
-      m_jacfun = j;
+      m_jacfcn = j;
       m_ida_jac = jac;
       m_havejac = true;
-      m_havejacfun = true;
+      m_havejacfcn = true;
       m_havejacsparse = false;
 
       return *this;
@@ -214,10 +214,10 @@
     IDA&
     set_jacobian (const octave_value& jac, DAEJacFuncSparse j)
     {
-      m_jacspfun = j;
+      m_jacspfcn = j;
       m_ida_jac = jac;
       m_havejac = true;
-      m_havejacfun = true;
+      m_havejacfcn = true;
       m_havejacsparse = true;
 
       return *this;
@@ -230,7 +230,7 @@
       m_dfdy = dy;
       m_dfdyp = dyp;
       m_havejac = true;
-      m_havejacfun = false;
+      m_havejacfcn = false;
       m_havejacsparse = false;
 
       return *this;
@@ -244,7 +244,7 @@
       m_spdfdy = dy;
       m_spdfdyp = dyp;
       m_havejac = true;
-      m_havejacfun = false;
+      m_havejacfcn = false;
       m_havejacsparse = true;
 
       return *this;
@@ -358,19 +358,19 @@
     ColumnVector m_y0;
     ColumnVector m_yp0;
     bool m_havejac;
-    bool m_havejacfun;
+    bool m_havejacfcn;
     bool m_havejacsparse;
     void *m_mem;
     octave_f77_int_type m_num;
-    octave_value m_ida_fun;
+    octave_value m_ida_fcn;
     octave_value m_ida_jac;
     Matrix *m_dfdy;
     Matrix *m_dfdyp;
     SparseMatrix *m_spdfdy;
     SparseMatrix *m_spdfdyp;
-    DAERHSFuncIDA m_fun;
-    DAEJacFuncDense m_jacfun;
-    DAEJacFuncSparse m_jacspfun;
+    DAERHSFuncIDA m_fcn;
+    DAEJacFuncDense m_jacfcn;
+    DAEJacFuncSparse m_jacspfcn;
     DAEJacCellDense m_jacdcell;
     DAEJacCellSparse m_jacspcell;
 #  if defined (HAVE_SUNDIALS_SUNCONTEXT)
@@ -397,7 +397,7 @@
 
     ColumnVector yp = IDA::NVecToCol (yyp, m_num);
 
-    ColumnVector res = (*m_fun) (y, yp, t, m_ida_fun);
+    ColumnVector res = (*m_fcn) (y, yp, t, m_ida_fcn);
 
     realtype *puntrr = nv_data_s (rr);
 
@@ -487,8 +487,8 @@
 
     Matrix jac;
 
-    if (m_havejacfun)
-      jac = (*m_jacfun) (y, yp, t, cj, m_ida_jac);
+    if (m_havejacfcn)
+      jac = (*m_jacfcn) (y, yp, t, cj, m_ida_jac);
     else
       jac = (*m_jacdcell) (m_dfdy, m_dfdyp, cj);
 
@@ -510,8 +510,8 @@
 
     SparseMatrix jac;
 
-    if (m_havejacfun)
-      jac = (*m_jacspfun) (y, yp, t, cj, m_ida_jac);
+    if (m_havejacfcn)
+      jac = (*m_jacspfcn) (y, yp, t, cj, m_ida_jac);
     else
       jac = (*m_jacspcell) (m_spdfdy, m_spdfdyp, cj);
 
@@ -863,7 +863,8 @@
 
           }
         else if (index.numel () > 0)
-          // Not first step: register all events and test if stop integration or not
+          // Not first step: register all events and test
+          // if stop integration or not
           {
             te.resize (temp + index.numel ());
             ye.resize (temp + index.numel (), m_num);
@@ -1148,14 +1149,14 @@
 
     bool havejacsparse = options.getfield ("havejacsparse").bool_value ();
 
-    bool havejacfun = options.getfield ("havejacfun").bool_value ();
+    bool havejacfcn = options.getfield ("havejacfcn").bool_value ();
 
     Matrix ida_dfdy, ida_dfdyp;
     SparseMatrix ida_spdfdy, ida_spdfdyp;
 
     if (havejac)
       {
-        if (havejacfun)
+        if (havejacfcn)
           {
             octave_value ida_jac = options.getfield ("Jacobian");
 
@@ -1277,7 +1278,7 @@
 
 DEFUN_DLD (__ode15__, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {@var{t}, @var{y} =} __ode15__ (@var{fun}, @var{tspan}, @var{y0}, @var{yp0}, @var{options}, @var{num_event_args})
+@deftypefn {} {@var{t}, @var{y} =} __ode15__ (@var{fcn}, @var{tspan}, @var{y0}, @var{yp0}, @var{ode_opt}, @var{num_event_args})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -1288,11 +1289,11 @@
   if (args.length () != 6)
     print_usage ();
 
-  // Check odefun
+  // Check ODE function
   octave_value ida_fcn = args(0);
 
   if (! ida_fcn.is_function_handle ())
-    error ("__ode15__: odefun must be a function handle");
+    error ("__ode15__: FCN must be a function handle");
 
   // Check input tspan
   ColumnVector tspan
@@ -1300,7 +1301,7 @@
 
   octave_idx_type numt = tspan.numel ();
 
-  realtype t0 = tspan (0);
+  realtype t0 = tspan(0);
 
   if (numt < 2)
     error ("__ode15__: TRANGE must contain at least 2 elements");
@@ -1309,23 +1310,23 @@
 
   // input y0 and yp0
   ColumnVector y0
-    = args(2).xvector_value ("__ode15__: initial state y0 must be a vector");
+    = args(2).xvector_value ("__ode15__: initial state Y0 must be a vector");
 
   ColumnVector yp0
-    = args(3).xvector_value ("__ode15__: initial state yp0 must be a vector");
+    = args(3).xvector_value ("__ode15__: initial state YP0 must be a vector");
 
 
   if (y0.numel () != yp0.numel ())
-    error ("__ode15__: initial state y0 and yp0 must have the same length");
+    error ("__ode15__: initial state Y0 and YP0 must have the same length");
   else if (y0.numel () < 1)
-    error ("__ode15__: initial state yp0 must be a vector or a scalar");
+    error ("__ode15__: initial state YP0 must be a vector or a scalar");
 
 
   if (! args(4).isstruct ())
-    error ("__ode15__: OPTS argument must be a structure");
+    error ("__ode15__: ODE_OPT argument must be a structure");
 
   octave_scalar_map options
-    = args(4).xscalar_map_value ("__ode15__: OPTS argument must be a scalar structure");
+    = args(4).xscalar_map_value ("__ode15__: ODE_OPT argument must be a scalar structure");
 
   // Provided number of arguments in the ode callback function
   octave_idx_type num_event_args
--- a/libinterp/dldfcn/audiodevinfo.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/audiodevinfo.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -499,7 +499,8 @@
 %! devinfo = audiodevinfo;
 %! nout = audiodevinfo (0);
 %! nin = audiodevinfo (1);
-%! ## There might be multiple devices with the same name (e.g. on Windows WDM-KS)
+%! ## There might be multiple devices with the same name
+%! ## (e.g., on Windows WDM-KS)
 %! ## Check only the first of each unique device name.
 %! [unq_out_name, idx_unique] = unique ({devinfo.output(:).Name});
 %! unq_out_id = [devinfo.output(idx_unique).ID];
@@ -537,8 +538,8 @@
   void init (void);
   void init_fn (void);
   void set_y (const octave_value& y);
-  void set_y (octave_function *fn);
-  void set_y (std::string fn);
+  void set_y (octave_function *fcn);
+  void set_y (std::string fcn);
   Matrix& get_y (void);
   RowVector get_left (void) const;
   RowVector get_right (void) const;
@@ -563,8 +564,8 @@
   octave_value get_userdata (void);
   PaStream * get_stream (void);
 
+  void play (void);
   void playblocking (void);
-  void play (void);
   void pause (void);
   void resume (void);
   void stop (void);
@@ -884,7 +885,7 @@
   if (isplaying ())
     {
       warning_with_id ("Octave:audio-interrupt",
-                       "interrupting playing audioplayer");
+                       "interrupting audioplayer during playback");
       stop ();
     }
 }
@@ -1003,9 +1004,9 @@
 }
 
 void
-audioplayer::set_y (octave_function *fn)
+audioplayer::set_y (octave_function *fcn)
 {
-  octave_callback_function = fn;
+  octave_callback_function = fcn;
   channels = 2;
   reset_end_sample ();
 }
@@ -1556,7 +1557,7 @@
   if (isrecording ())
     {
       warning_with_id ("Octave:audio-interrupt",
-                       "interrupting recording audiorecorder");
+                       "interrupting audiorecorder during recording");
       stop ();
     }
 }
@@ -1655,7 +1656,9 @@
 void
 audiorecorder::set_channels (int channels_arg)
 {
-  assert (channels_arg == 1 || channels_arg == 2);
+  if (channels_arg != 1 && channels_arg != 2)
+    error ("audiorecorder: number of channels must be 1 or 2");
+
   channels = channels_arg;
 }
 
@@ -1931,7 +1934,7 @@
                           || args(0).is_inline_function ());
 
       if (is_function)
-        error ("audiorecorder: callbacks not yet implemented");
+        error ("audiorecorder: callback functions are not yet implemented");
     }
 
   if (nargin >= 3)
@@ -2159,7 +2162,7 @@
 
 DEFUN_DLD (__recorder_isrecording__, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __recorder_isrecording__ (@var{recorder})
+@deftypefn {} {@var{tf} =} __recorder_isrecording__ (@var{recorder})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -2343,7 +2346,7 @@
                       || args(0).is_inline_function ());
 
   if (is_function)
-    error ("audioplayer: callbacks not yet implemented");
+    error ("audioplayer: callback functions are not yet implemented");
 
   recorder->set_y (args(0));
   recorder->set_fs (args(1).int_value ());
@@ -2572,7 +2575,7 @@
 
 DEFUN_DLD (__player_isplaying__, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __player_isplaying__ (@var{player})
+@deftypefn {} {@var{tf} =} __player_isplaying__ (@var{player})
 Undocumented internal function.
 @end deftypefn */)
 {
--- a/libinterp/dldfcn/audioread.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/audioread.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -465,8 +465,9 @@
       offset += chunk_size;
     }
 
-  // FIXME: shouldn't we return something to indicate whether the file
-  // was written successfully?
+  // FIXME: Shouldn't we return something to indicate whether the file
+  //        was written successfully?  On the other hand, Matlab doesn't
+  //        return anything.
   return ovl ();
 
 #else
@@ -545,17 +546,26 @@
 ## Test input validation
 %!testif HAVE_SNDFILE
 %! fail ("audiowrite (1, 1, 8e3)", "FILENAME must be a string");
-%! fail ("audiowrite ('foo', int64 (1), 8e3)", "wrong type argument 'int64 scalar'");
-%! fail ("audiowrite ('foo', [0 1], [8e3, 8e3])", "FS must be a positive scalar");
+%! fail ("audiowrite ('foo', int64 (1), 8e3)",
+%!       "wrong type argument 'int64 scalar'");
+%! fail ("audiowrite ('foo', [0 1], [8e3, 8e3])",
+%!       "FS must be a positive scalar");
 %! fail ("audiowrite ('foo', 1, {8e3})", "FS must be a .* integer");
 %! fail ("audiowrite ('foo', 1, -8e3)", "FS must be a positive");
-%! fail ("audiowrite ('foo', 1, 8e3, 'bitspersample')", "invalid number of arguments");
-%! fail ("audiowrite ('foo', 1, 8e3, 'bitspersample', 48)", "wrong number of bits specified");
-%! fail ("audiowrite ('foo', 1, 8e3, 'quality', [2 3 4])", "Quality value must be a scalar");
-%! fail ("audiowrite ('foo', 1, 8e3, 'quality', NaN)", "Quality value must be .* between 0 and 100");
-%! fail ("audiowrite ('foo', 1, 8e3, 'quality', -1)", "Quality value must be .* between 0 and 100");
-%! fail ("audiowrite ('foo', 1, 8e3, 'quality', 101)", "Quality value must be .* between 0 and 100");
-%! fail ("audiowrite ('foo', 1, 8e3, 'foo', 'bar')", "unrecognized option: 'foo'");
+%! fail ("audiowrite ('foo', 1, 8e3, 'bitspersample')",
+%!       "invalid number of arguments");
+%! fail ("audiowrite ('foo', 1, 8e3, 'bitspersample', 48)",
+%!       "wrong number of bits specified");
+%! fail ("audiowrite ('foo', 1, 8e3, 'quality', [2 3 4])",
+%!       "Quality value must be a scalar");
+%! fail ("audiowrite ('foo', 1, 8e3, 'quality', NaN)",
+%!       "Quality value must be .* between 0 and 100");
+%! fail ("audiowrite ('foo', 1, 8e3, 'quality', -1)",
+%!       "Quality value must be .* between 0 and 100");
+%! fail ("audiowrite ('foo', 1, 8e3, 'quality', 101)",
+%!       "Quality value must be .* between 0 and 100");
+%! fail ("audiowrite ('foo', 1, 8e3, 'foo', 'bar')",
+%!       "unrecognized option: 'foo'");
 */
 
 DEFUN_DLD (audioinfo, args, ,
@@ -771,6 +781,8 @@
         }
     }
 
+  return octave_value_list ();
+
 #else
 
   octave_unused_parameter (args);
@@ -779,8 +791,6 @@
                         "getting sound formats through libsndfile");
 
 #endif
-
-  return octave_value_list ();
 }
 
 OCTAVE_NAMESPACE_END
--- a/libinterp/dldfcn/convhulln.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/convhulln.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -304,7 +304,8 @@
 %! [h, v] = convhulln (cube, "Qt");
 %! assert (size (h), [12 3]);
 %! h = sortrows (sort (h, 2), [1:3]);
-%! assert (h, [1 2 4; 1 2 6; 1 4 8; 1 5 6; 1 5 8; 2 3 4; 2 3 7; 2 6 7; 3 4 7; 4 7 8; 5 6 7; 5 7 8]);
+%! assert (h,
+%!         [1 2 4; 1 2 6; 1 4 8; 1 5 6; 1 5 8; 2 3 4; 2 3 7; 2 6 7; 3 4 7; 4 7 8; 5 6 7; 5 7 8]);
 %! assert (v, 1, 10*eps);
 %! [h2, v2] = convhulln (cube);  # Test default option = "Qt"
 %! assert (size (h2), size (h));
@@ -316,7 +317,8 @@
 %! cube = [0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1];
 %! [h, v] = convhulln (cube, "QJ");
 %! assert (size (h), [12 3]);
-%! assert (sortrows (sort (h, 2), [1:3]), [1 2 4; 1 2 5; 1 4 5; 2 3 4; 2 3 6; 2 5 6; 3 4 8; 3 6 7; 3 7 8; 4 5 8; 5 6 8; 6 7 8]);
+%! assert (sortrows (sort (h, 2), [1:3]),
+%!         [1 2 4; 1 2 5; 1 4 5; 2 3 4; 2 3 6; 2 5 6; 3 4 8; 3 6 7; 3 7 8; 4 5 8; 5 6 8; 6 7 8]);
 %! assert (v, 1.0, 1e6*eps);
 
 %!testif HAVE_QHULL
--- a/libinterp/dldfcn/fftw.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/fftw.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -49,8 +49,8 @@
 @deftypefnx {} {} fftw ("planner", @var{method})
 @deftypefnx {} {@var{wisdom} =} fftw ("dwisdom")
 @deftypefnx {} {} fftw ("dwisdom", @var{wisdom})
+@deftypefnx {} {@var{nthreads} =} fftw ("threads")
 @deftypefnx {} {} fftw ("threads", @var{nthreads})
-@deftypefnx {} {@var{nthreads} =} fftw ("threads")
 
 Manage @sc{fftw} wisdom data.
 
@@ -134,9 +134,9 @@
 fftw ("threads", @var{NTHREADS})
 @end example
 
-Note that octave must be compiled with multi-threaded @sc{fftw} support for
-this feature.  The number of processors available to the current process is
-used per default.
+Note that Octave must be compiled with multi-threaded @sc{fftw} support for
+this feature.  By default, the number of (logical) processors available to the
+current process or @var{3} is used (whichever is smaller).
 
 @seealso{fft, ifft, fft2, ifft2, fftn, ifftn}
 @end deftypefn */)
--- a/libinterp/dldfcn/gzip.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/dldfcn/gzip.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -577,7 +577,7 @@
 
   template<typename X>
   static octave_value_list
-  xzip (const std::string& func_name, const octave_value_list& args)
+  xzip (const std::string& fcn_name, const octave_value_list& args)
   {
     const octave_idx_type nargin = args.length ();
     if (nargin < 1 || nargin > 2)
@@ -585,7 +585,7 @@
 
     const Array<std::string> source_patterns
       = args(0).xcellstr_value ("%s: FILES must be a character array or cellstr",
-                                func_name.c_str ());
+                                fcn_name.c_str ());
     if (nargin == 1)
       return octave_value (Cell (xzip<X> (source_patterns)));
     else // nargin == 2
--- a/libinterp/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -89,7 +89,8 @@
   $(LIBINTERP_OPERATORS_INC) \
   $(OCTAVE_VALUE_INC) \
   $(PARSE_TREE_INC) \
-  $(PARSER_INC)
+  $(PARSER_INC) \
+  $(TEMPLATE_INST_INC)
 
 noinst_HEADERS += \
   %reldir%/options.h \
@@ -247,8 +248,6 @@
 	rm -f $(DESTDIR)$(octetcdir)/built-in-docstrings
 .PHONY: uninstall-built-in-docstrings
 
-pkgconfig_DATA += $(%canon_reldir%_pkgconfig_DATA)
-
 EXTRA_DIST += $(%canon_reldir%_EXTRA_DIST)
 
 %canon_reldir%_CLEANFILES += \
--- a/libinterp/octave-value/cdef-class.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-class.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -312,7 +312,8 @@
   }
 
   void
-  cdef_class::cdef_class_rep::find_methods (std::map<std::string, cdef_method>& meths,
+  cdef_class::cdef_class_rep::find_methods (std::map<std::string,
+                                            cdef_method>& meths,
                                             bool only_inherited,
                                             bool include_ctor)
   {
@@ -633,8 +634,7 @@
   void
   cdef_class::cdef_class_rep::meta_release (void)
   {
-    cdef_manager& cdm
-      = __get_cdef_manager__ ("cdef_class::cdef_class_rep::meta_release");
+    cdef_manager& cdm = __get_cdef_manager__ ();
 
     cdm.unregister_class (wrap ());
   }
@@ -744,8 +744,7 @@
 
         static cdef_object empty_class;
 
-        cdef_manager& cdm
-          = __get_cdef_manager__ ("cdef_class::cdef_class_rep::construct_object");
+        cdef_manager& cdm = __get_cdef_manager__ ();
 
         if (this_cls == cdm.meta_class ())
           {
@@ -891,7 +890,7 @@
           }
       }
 
-    cdef_manager& cdm = __get_cdef_manager__ ("cdef_class::make_meta_class");
+    cdef_manager& cdm = __get_cdef_manager__ ();
 
     retval = cdm.make_class (full_class_name, slist);
 
@@ -1020,9 +1019,9 @@
             // Look for all external methods visible on octave path at the
             // time of loading of the class.
             //
-            // FIXME: This is an "extension" to Matlab behavior, which only looks
-            // in the @-folder containing the original classdef file.  However,
-            // this is easier to implement it that way at the moment.
+            // FIXME: This is an "extension" to Matlab behavior, which only
+            // looks in the @-folder containing the original classdef file.
+            // However, this is easier to implement it that way at the moment.
 
             std::list<std::string> external_methods
               = lp.methods (full_class_name);
@@ -1052,9 +1051,9 @@
         // Property blocks
 
         // FIXME: default property expression should be able to call static
-        //        methods of the class being constructed.  A restricted CLASSNAME
-        //        symbol should be added to the scope before evaluating default
-        //        value expressions.
+        //        methods of the class being constructed.  A restricted
+        //        CLASSNAME symbol should be added to the scope before
+        //        evaluating default value expressions.
 
         std::list<tree_classdef_properties_block *> pb_list
           = b->properties_list ();
@@ -1127,17 +1126,17 @@
                     // list of all valid properties that can be used to
                     // validate the attribute list (see bug #60593).
 
-                    // Install property attributes.  This is done before assigning
-                    // the property accessors so we can do validation by using
-                    // cdef_property methods.
+                    // Install property attributes.  This is done before
+                    // assigning the property accessors so we can do validation
+                    // by using cdef_property methods.
 
                     for (auto& attrnm_val : amap)
                       prop.put (attrnm_val.first, attrnm_val.second);
 
                     // Install property access methods, if any.  Remove the
-                    // accessor methods from the temporary storage map, so we can
-                    // detect which ones are invalid and do not correspond to a
-                    // defined property.
+                    // accessor methods from the temporary storage map, so we
+                    // can detect which ones are invalid and do not correspond
+                    // to a defined property.
 
                     auto git = get_methods.find (prop_name);
 
--- a/libinterp/octave-value/cdef-class.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-class.h	Tue Nov 15 13:15:28 2022 -0800
@@ -214,7 +214,7 @@
       bool m_handle_class;
 
       // The list of super-class constructors that are called implicitly by the
-      // the classdef engine when creating an object.  These constructors are not
+      // classdef engine when creating an object.  These constructors are not
       // called explicitly by the class constructor.
 
       std::list<cdef_class> m_implicit_ctor_list;
@@ -239,7 +239,8 @@
 
     cdef_class (void) : cdef_meta_object () { }
 
-    cdef_class (const std::string& nm, const std::list<cdef_class>& superclasses)
+    cdef_class (const std::string& nm,
+                const std::list<cdef_class>& superclasses)
       : cdef_meta_object (new cdef_class_rep (superclasses))
     {
       get_rep ()->set_name (nm);
@@ -430,7 +431,7 @@
     friend OCTINTERP_API bool operator != (const cdef_class&, const cdef_class&);
     friend OCTINTERP_API bool operator < (const cdef_class&, const cdef_class&);
 
-    friend OCTINTERP_API void install_classdef (interpreter& interp);
+    friend void install_classdef (octave::interpreter& interp);
   };
 
   inline bool
--- a/libinterp/octave-value/cdef-manager.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-manager.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -172,7 +172,7 @@
     return retval;
   }
 
-#define META_CLASS_CMP(OP, CLSA, CLSB, FUN)                             \
+#define META_CLASS_CMP(OP, CLSA, CLSB, FCN)                             \
   static octave_value_list                                              \
   class_ ## OP (const octave_value_list& args, int /* nargout */)       \
   {                                                                     \
@@ -189,7 +189,7 @@
                                                                         \
     cdef_class clsb = to_cdef (args(1));                                \
                                                                         \
-    retval(0) = FUN (CLSA, CLSB);                                       \
+    retval(0) = FCN (CLSA, CLSB);                                       \
                                                                         \
     return retval;                                                      \
   }
@@ -281,7 +281,8 @@
 
   static octave_value_list
   package_getAllPackages (interpreter& interp,
-                          const octave_value_list& /* args */, int /* nargout */)
+                          const octave_value_list& /* args */,
+                          int /* nargout */)
   {
     std::map<std::string, cdef_package> toplevel_packages;
 
--- a/libinterp/octave-value/cdef-method.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-method.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -74,8 +74,7 @@
       {
         if (is_dummy_method (m_function))
           {
-            load_path& lp
-              = __get_load_path__ ("cdef_method::cdef_method_rep::check_method");
+            load_path& lp = __get_load_path__ ();
 
             std::string name = get_name ();
             std::string cls_name = m_dispatch_type;
@@ -218,7 +217,8 @@
     switch (type[0])
       {
       case '(':
-        retval = (execute (idx.front (), type.length () > 1 ? 1 : nargout, true));
+        retval = (execute (idx.front (),
+                           type.length () > 1 ? 1 : nargout, true));
         break;
 
       default:
--- a/libinterp/octave-value/cdef-object.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-object.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -68,7 +68,7 @@
         frame.protect_var (quit_allowed);
         quit_allowed = false;
 
-        interpreter& interp = __get_interpreter__ ("cdef_object_rep::release");
+        interpreter& interp = __get_interpreter__ ();
 
         interpreter_try (frame);
 
--- a/libinterp/octave-value/cdef-object.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-object.h	Tue Nov 15 13:15:28 2022 -0800
@@ -207,7 +207,8 @@
     // FIXME: use a null object?
     cdef_object (void) : m_rep (new cdef_object_rep ()) { }
 
-    cdef_object (const cdef_object& obj) : m_rep (obj.m_rep) { m_rep->m_count++; }
+    cdef_object (const cdef_object& obj) : m_rep (obj.m_rep)
+    { m_rep->m_count++; }
 
     cdef_object (cdef_object_rep *r) : m_rep (r) { }
 
@@ -256,7 +257,8 @@
 
     bool is_meta_object (void) const { return m_rep->is_meta_object (); }
 
-    Array<cdef_object> array_value (void) const { return m_rep->array_value (); }
+    Array<cdef_object> array_value (void) const
+    { return m_rep->array_value (); }
 
     void put (const std::string& pname, const octave_value& val)
     {
--- a/libinterp/octave-value/cdef-package.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-package.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -114,8 +114,7 @@
   {
     std::string symbol_name = get_name () + '.' + nm;
 
-    interpreter& interp
-      = __get_interpreter__ ("cdef_package::cdef_package_rep::find");
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.find (symbol_name);
   }
@@ -194,8 +193,7 @@
     //        match the one already referenced by those classes or
     //        sub-packages.
 
-    cdef_manager& cdm
-      = __get_cdef_manager__ ("cdef_package::cdef_package_rep::meta_release");
+    cdef_manager& cdm = __get_cdef_manager__ ();
 
     // Don't delete the "meta" package.
     if (this != cdm.meta ().get_rep ())
--- a/libinterp/octave-value/cdef-package.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-package.h	Tue Nov 15 13:15:28 2022 -0800
@@ -61,7 +61,8 @@
 
       ~cdef_package_rep (void) = default;
 
-      cdef_object_rep * copy (void) const { return new cdef_package_rep (*this); }
+      cdef_object_rep * copy (void) const
+      { return new cdef_package_rep (*this); }
 
       bool is_package (void) const { return true; }
 
@@ -226,7 +227,7 @@
       return dynamic_cast<const cdef_package_rep *> (cdef_object::get_rep ());
     }
 
-    friend OCTINTERP_API void install_classdef (interpreter& interp);
+    friend void install_classdef (octave::interpreter& interp);
   };
 }
 
--- a/libinterp/octave-value/cdef-property.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-property.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -55,7 +55,7 @@
   static bool
   is_method_executing (const octave_value& ov, const cdef_object& obj)
   {
-    tree_evaluator& tw = __get_evaluator__ ("is_method_executing");
+    tree_evaluator& tw = __get_evaluator__ ();
 
     octave_function *stack_fcn = tw.current_function ();
 
--- a/libinterp/octave-value/cdef-utils.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/cdef-utils.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -80,7 +80,7 @@
   lookup_class (const std::string& name, bool error_if_not_found,
                 bool load_if_not_found)
   {
-    cdef_manager& cdm = __get_cdef_manager__ ("lookup_class");
+    cdef_manager& cdm = __get_cdef_manager__ ();
 
     return cdm.find_class (name, error_if_not_found, load_if_not_found);
   }
@@ -238,7 +238,7 @@
   lookup_package (const std::string& name, bool error_if_not_found,
                   bool load_if_not_found)
   {
-    cdef_manager& cdm = __get_cdef_manager__ ("lookup_package");
+    cdef_manager& cdm = __get_cdef_manager__ ();
 
     return cdm.find_package (name, error_if_not_found, load_if_not_found);
   }
@@ -257,7 +257,7 @@
     // methods will use the dispatch class of the class in which they
     // are defined instead of the class in which they are executing.
 
-    tree_evaluator& tw = __get_evaluator__ ("get_class_context");
+    tree_evaluator& tw = __get_evaluator__ ();
 
     std::string dispatch_class = tw.get_dispatch_class ();
 
@@ -318,16 +318,17 @@
                   return true;
                 else if (is_strict_superclass (ctx, cls))
                   {
-                    // Calling a protected method or property in a derived class.
-                    // This is only allowed if the context class knows about it
-                    // and has access to it.
+                    // Calling a protected method or property in a derived
+                    // class.  This is only allowed if the context class knows
+                    // about it and has access to it.
 
                     if (! meth_name.empty ())
                       {
                         cdef_method m = ctx.find_method (meth_name);
 
                         if (m.ok ())
-                          return check_access (ctx, m.get ("Access"), meth_name);
+                          return check_access (ctx,
+                                               m.get ("Access"), meth_name);
 
                         return false;
                       }
--- a/libinterp/octave-value/ov-base-diag.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-base-diag.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -299,7 +299,8 @@
 // FIXME: We really need some traits so that ad hoc hooks like this
 //        are not necessary.
 template <typename T> inline T helper_iscomplex (T) { return false; }
-template <typename T> inline T helper_iscomplex (std::complex<T>) { return true; }
+template <typename T> inline T helper_iscomplex (std::complex<T>)
+{ return true; }
 
 template <typename DMT, typename MT>
 double
--- a/libinterp/octave-value/ov-base-int.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-base-int.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -148,9 +148,9 @@
 {
   octave_base_value *retval = nullptr;
 
-  if (this->matrix.numel () == 1)
+  if (this->m_matrix.numel () == 1)
     retval = new typename octave_value_int_traits<T>::scalar_type
-               (this->matrix (0));
+               (this->m_matrix (0));
 
   return retval;
 }
@@ -171,7 +171,7 @@
     {
       octave_quit ();
 
-      typename T::element_type tmp = this->matrix(i);
+      typename T::element_type tmp = this->m_matrix(i);
 
       typedef typename T::element_type::val_type val_type;
 
@@ -207,70 +207,70 @@
 octave_value
 octave_base_int_matrix<MT>::as_double (void) const
 {
-  return NDArray (this->matrix);
+  return NDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_single (void) const
 {
-  return FloatNDArray (this->matrix);
+  return FloatNDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_int8 (void) const
 {
-  return int8NDArray (this->matrix);
+  return int8NDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_int16 (void) const
 {
-  return int16NDArray (this->matrix);
+  return int16NDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_int32 (void) const
 {
-  return int32NDArray (this->matrix);
+  return int32NDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_int64 (void) const
 {
-  return int64NDArray (this->matrix);
+  return int64NDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_uint8 (void) const
 {
-  return uint8NDArray (this->matrix);
+  return uint8NDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_uint16 (void) const
 {
-  return uint16NDArray (this->matrix);
+  return uint16NDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_uint32 (void) const
 {
-  return uint32NDArray (this->matrix);
+  return uint32NDArray (this->m_matrix);
 }
 
 template <typename MT>
 octave_value
 octave_base_int_matrix<MT>::as_uint64 (void) const
 {
-  return uint64NDArray (this->matrix);
+  return uint64NDArray (this->m_matrix);
 }
 
 template <typename T>
@@ -280,7 +280,7 @@
                                          octave_idx_type j) const
 {
   std::ostringstream buf;
-  octave_print_internal (buf, fmt, this->matrix(i, j));
+  octave_print_internal (buf, fmt, this->m_matrix(i, j));
   return buf.str ();
 }
 
@@ -295,7 +295,7 @@
   for (int i = 0; i < dv.ndims (); i++)
     os << ' ' << dv(i);
 
-  os << "\n" << this->matrix;
+  os << "\n" << this->m_matrix;
 
   return true;
 }
@@ -325,7 +325,7 @@
   if (! is)
     error ("load: failed to load matrix constant");
 
-  this->matrix = tmp;
+  this->m_matrix = tmp;
 
   return true;
 }
@@ -347,7 +347,7 @@
       os.write (reinterpret_cast<char *> (&tmp), 4);
     }
 
-  os.write (reinterpret_cast<const char *> (this->matrix.data ()),
+  os.write (reinterpret_cast<const char *> (this->m_matrix.data ()),
             this->byte_size ());
 
   return true;
@@ -419,7 +419,7 @@
           }
     }
 
-  this->matrix = m;
+  this->m_matrix = m;
   return true;
 }
 
@@ -453,7 +453,8 @@
   if (space_hid < 0) return false;
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid,
                         octave_H5P_DEFAULT);
@@ -465,7 +466,7 @@
     }
 
   retval = H5Dwrite (data_hid, save_type_hid, octave_H5S_ALL, octave_H5S_ALL,
-                     octave_H5P_DEFAULT, this->matrix.data ()) >= 0;
+                     octave_H5P_DEFAULT, this->m_matrix.data ()) >= 0;
 
   H5Dclose (data_hid);
   H5Sclose (space_hid);
@@ -495,7 +496,7 @@
   dim_vector dv;
   int empty = load_hdf5_empty (loc_id, name, dv);
   if (empty > 0)
-    this->matrix.resize (dv);
+    this->m_matrix.resize (dv);
   if (empty)
     return (empty > 0);
 
@@ -539,7 +540,7 @@
                octave_H5P_DEFAULT, m.fortran_vec ()) >= 0)
     {
       retval = true;
-      this->matrix = m;
+      this->m_matrix = m;
     }
 
   H5Sclose (space_id);
@@ -561,7 +562,7 @@
 octave_base_int_matrix<T>::print_raw (std::ostream& os,
                                       bool pr_as_read_syntax) const
 {
-  octave_print_internal (os, this->matrix, pr_as_read_syntax,
+  octave_print_internal (os, this->m_matrix, pr_as_read_syntax,
                          this->current_print_indent_level ());
 }
 
@@ -742,7 +743,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid,
                         octave_H5P_DEFAULT);
--- a/libinterp/octave-value/ov-base-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-base-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -137,8 +137,8 @@
 
   octave_idx_type n_idx = idx.length ();
 
-  int nd = matrix.ndims ();
-  const MT& cmatrix = matrix;
+  int nd = m_matrix.ndims ();
+  const MT& cmatrix = m_matrix;
 
   // If we catch an indexing error in index_vector, we flag an error in
   // index k.  Ensure it is the right value before each idx_vector call.
@@ -152,7 +152,7 @@
         {
         case 0:
           warn_empty_index (type_name ());
-          retval = matrix;
+          retval = m_matrix;
           break;
 
         case 1:
@@ -163,7 +163,7 @@
             if (! resize_ok && i.is_scalar ())
               retval = cmatrix.checkelem (i(0));
             else
-              retval = MT (matrix.index (i, resize_ok));
+              retval = MT (m_matrix.index (i, resize_ok));
           }
           break;
 
@@ -178,7 +178,7 @@
             if (! resize_ok && i.is_scalar () && j.is_scalar ())
               retval = cmatrix.checkelem (i(0), j(0));
             else
-              retval = MT (matrix.index (i, j, resize_ok));
+              retval = MT (m_matrix.index (i, j, resize_ok));
           }
           break;
 
@@ -186,7 +186,7 @@
           {
             Array<octave::idx_vector> idx_vec (dim_vector (n_idx, 1));
             bool scalar_opt = n_idx == nd && ! resize_ok;
-            const dim_vector dv = matrix.dims ();
+            const dim_vector dv = m_matrix.dims ();
 
             for (k = 0; k < n_idx; k++)
               {
@@ -198,7 +198,7 @@
             if (scalar_opt)
               retval = cmatrix.checkelem (conv_to_int_array (idx_vec));
             else
-              retval = MT (matrix.index (idx_vec, resize_ok));
+              retval = MT (m_matrix.index (idx_vec, resize_ok));
           }
           break;
         }
@@ -244,7 +244,7 @@
           {
             octave::idx_vector i = idx (0).index_vector ();
 
-            matrix.assign (i, rhs);
+            m_matrix.assign (i, rhs);
           }
           break;
 
@@ -255,7 +255,7 @@
             k = 1;
             octave::idx_vector j = idx (1).index_vector ();
 
-            matrix.assign (i, j, rhs);
+            m_matrix.assign (i, j, rhs);
           }
           break;
 
@@ -266,7 +266,7 @@
             for (k = 0; k < n_idx; k++)
               idx_vec(k) = idx(k).index_vector ();
 
-            matrix.assign (idx_vec, rhs);
+            m_matrix.assign (idx_vec, rhs);
           }
           break;
         }
@@ -284,11 +284,11 @@
 
 template <typename MT>
 MatrixType
-octave_base_matrix<MT>::matrix_type (const MatrixType& _typ) const
+octave_base_matrix<MT>::matrix_type (const MatrixType& typ) const
 {
-  delete typ;
-  typ = new MatrixType (_typ);
-  return *typ;
+  delete m_typ;
+  m_typ = new MatrixType (typ);
+  return *m_typ;
 }
 
 template <typename MT>
@@ -298,7 +298,7 @@
 {
   octave_idx_type n_idx = idx.length ();
 
-  int nd = matrix.ndims ();
+  int nd = m_matrix.ndims ();
 
   MT mrhs (dim_vector (1, 1), rhs);
 
@@ -321,10 +321,10 @@
             octave::idx_vector i = idx (0).index_vector ();
 
             // optimize single scalar index.
-            if (i.is_scalar () && i(0) < matrix.numel ())
-              matrix(i(0)) = rhs;
+            if (i.is_scalar () && i(0) < m_matrix.numel ())
+              m_matrix(i(0)) = rhs;
             else
-              matrix.assign (i, mrhs);
+              m_matrix.assign (i, mrhs);
           }
           break;
 
@@ -337,10 +337,10 @@
 
             // optimize two scalar indices.
             if (i.is_scalar () && j.is_scalar () && nd == 2
-                && i(0) < matrix.rows () && j(0) < matrix.columns ())
-              matrix(i(0), j(0)) = rhs;
+                && i(0) < m_matrix.rows () && j(0) < m_matrix.columns ())
+              m_matrix(i(0), j(0)) = rhs;
             else
-              matrix.assign (i, j, mrhs);
+              m_matrix.assign (i, j, mrhs);
           }
           break;
 
@@ -348,7 +348,7 @@
           {
             Array<octave::idx_vector> idx_vec (dim_vector (n_idx, 1));
             bool scalar_opt = n_idx == nd;
-            const dim_vector dv = matrix.dims ().redim (n_idx);
+            const dim_vector dv = m_matrix.dims ().redim (n_idx);
 
             for (k = 0; k < n_idx; k++)
               {
@@ -369,10 +369,10 @@
                     j += idx_vec(i)(0) * n;
                     n *= dv (i);
                   }
-                matrix(j) = rhs;
+                m_matrix(j) = rhs;
               }
             else
-              matrix.assign (idx_vec, mrhs);
+              m_matrix.assign (idx_vec, mrhs);
           }
           break;
         }
@@ -399,7 +399,7 @@
   for (octave_idx_type i = 0; i < len; i++)
     ra_idx(i) = idx(i).index_vector ();
 
-  matrix.delete_elements (ra_idx);
+  m_matrix.delete_elements (ra_idx);
 
   // Clear cache.
   clear_cached_info ();
@@ -409,7 +409,7 @@
 octave_value
 octave_base_matrix<MT>::resize (const dim_vector& dv, bool fill) const
 {
-  MT retval (matrix);
+  MT retval (m_matrix);
   if (fill)
     retval.resize (dv, 0);
   else
@@ -423,12 +423,12 @@
 octave_base_matrix<MT>::is_true (void) const
 {
   bool retval = false;
-  dim_vector dv = matrix.dims ();
+  dim_vector dv = m_matrix.dims ();
   int nel = dv.numel ();
 
   if (nel > 0)
     {
-      MT t1 (matrix.reshape (dim_vector (nel, 1)));
+      MT t1 (m_matrix.reshape (dim_vector (nel, 1)));
 
       if (t1.any_element_is_nan ())
         octave::err_nan_to_logical_conversion ();
@@ -466,25 +466,25 @@
 octave_base_matrix<MT>::print_info (std::ostream& os,
                                     const std::string& prefix) const
 {
-  matrix.print_info (os, prefix);
+  m_matrix.print_info (os, prefix);
 }
 
 template <typename MT>
 void
 octave_base_matrix<MT>::short_disp (std::ostream& os) const
 {
-  if (matrix.isempty ())
+  if (m_matrix.isempty ())
     os << "[]";
-  else if (matrix.ndims () == 2)
+  else if (m_matrix.ndims () == 2)
     {
       // FIXME: should this be configurable?
       octave_idx_type max_elts = 10;
       octave_idx_type elts = 0;
 
-      octave_idx_type nel = matrix.numel ();
+      octave_idx_type nel = m_matrix.numel ();
 
-      octave_idx_type nr = matrix.rows ();
-      octave_idx_type nc = matrix.columns ();
+      octave_idx_type nr = m_matrix.rows ();
+      octave_idx_type nc = m_matrix.columns ();
 
       os << '[';
 
@@ -493,7 +493,7 @@
           for (octave_idx_type j = 0; j < nc; j++)
             {
               std::ostringstream buf;
-              octave_print_internal (buf, matrix(j*nr+i));
+              octave_print_internal (buf, m_matrix(j*nr+i));
               std::string tmp = buf.str ();
               std::size_t pos = tmp.find_first_not_of (' ');
               if (pos != std::string::npos)
@@ -525,7 +525,7 @@
 float_display_format
 octave_base_matrix<MT>::get_edit_display_format (void) const
 {
-  return make_format (matrix);
+  return make_format (m_matrix);
 }
 
 template <typename MT>
@@ -535,7 +535,7 @@
                                       octave_idx_type j) const
 {
   std::ostringstream buf;
-  octave_print_internal (buf, fmt, matrix(i, j));
+  octave_print_internal (buf, fmt, m_matrix(i, j));
   return buf.str ();
 }
 
@@ -543,8 +543,8 @@
 octave_value
 octave_base_matrix<MT>::fast_elem_extract (octave_idx_type n) const
 {
-  if (n < matrix.numel ())
-    return matrix(n);
+  if (n < m_matrix.numel ())
+    return m_matrix(n);
   else
     return octave_value ();
 }
@@ -554,7 +554,7 @@
 octave_base_matrix<MT>::fast_elem_insert (octave_idx_type n,
                                           const octave_value& x)
 {
-  if (n < matrix.numel ())
+  if (n < m_matrix.numel ())
     {
       // Don't use builtin_type () here to avoid an extra VM call.
       typedef typename MT::element_type ET;
@@ -563,7 +563,7 @@
         return false;
 
       // Set up the pointer to the proper place.
-      void *here = reinterpret_cast<void *> (&matrix(n));
+      void *here = reinterpret_cast<void *> (&m_matrix(n));
       // Ask x to store there if it can.
       return x.get_rep ().fast_elem_insert_self (here, btyp);
     }
--- a/libinterp/octave-value/ov-base-mat.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-base-mat.h	Tue Nov 15 13:15:28 2022 -0800
@@ -54,31 +54,32 @@
   typedef MT object_type;
 
   octave_base_matrix (void)
-    : octave_base_value (), matrix (), typ (), idx_cache () { }
+    : octave_base_value (), m_matrix (), m_typ (), m_idx_cache () { }
 
   octave_base_matrix (const MT& m, const MatrixType& t = MatrixType ())
-    : octave_base_value (), matrix (m),
-      typ (t.is_known () ? new MatrixType (t) : nullptr), idx_cache ()
+    : octave_base_value (), m_matrix (m),
+      m_typ (t.is_known () ? new MatrixType (t) : nullptr), m_idx_cache ()
   {
-    if (matrix.ndims () == 0)
-      matrix.resize (dim_vector (0, 0));
+    if (m_matrix.ndims () == 0)
+      m_matrix.resize (dim_vector (0, 0));
   }
 
   octave_base_matrix (const octave_base_matrix& m)
-    : octave_base_value (), matrix (m.matrix),
-      typ (m.typ ? new MatrixType (*m.typ) : nullptr),
-      idx_cache (m.idx_cache ? new octave::idx_vector (*m.idx_cache) : nullptr)
+    : octave_base_value (), m_matrix (m.m_matrix),
+      m_typ (m.m_typ ? new MatrixType (*m.m_typ) : nullptr),
+      m_idx_cache (m.m_idx_cache ? new octave::idx_vector (*m.m_idx_cache)
+                                 : nullptr)
   { }
 
   ~octave_base_matrix (void) { clear_cached_info (); }
 
-  std::size_t byte_size (void) const { return matrix.byte_size (); }
+  std::size_t byte_size (void) const { return m_matrix.byte_size (); }
 
-  octave_value squeeze (void) const { return MT (matrix.squeeze ()); }
+  octave_value squeeze (void) const { return MT (m_matrix.squeeze ()); }
 
-  octave_value full_value (void) const { return matrix; }
+  octave_value full_value (void) const { return m_matrix; }
 
-  void maybe_economize (void) { matrix.maybe_economize (); }
+  void maybe_economize (void) { m_matrix.maybe_economize (); }
 
   // We don't need to override all three forms of subsref.  The using
   // declaration will avoid warnings about partially-overloaded virtual
@@ -113,48 +114,48 @@
 
   OCTINTERP_API void delete_elements (const octave_value_list& idx);
 
-  dim_vector dims (void) const { return matrix.dims (); }
+  dim_vector dims (void) const { return m_matrix.dims (); }
 
-  octave_idx_type numel (void) const { return matrix.numel (); }
+  octave_idx_type numel (void) const { return m_matrix.numel (); }
 
-  int ndims (void) const { return matrix.ndims (); }
+  int ndims (void) const { return m_matrix.ndims (); }
 
-  octave_idx_type nnz (void) const { return matrix.nnz (); }
+  octave_idx_type nnz (void) const { return m_matrix.nnz (); }
 
   octave_value reshape (const dim_vector& new_dims) const
-  { return MT (matrix.reshape (new_dims)); }
+  { return MT (m_matrix.reshape (new_dims)); }
 
   octave_value permute (const Array<int>& vec, bool inv = false) const
-  { return MT (matrix.permute (vec, inv)); }
+  { return MT (m_matrix.permute (vec, inv)); }
 
   octave_value resize (const dim_vector& dv, bool fill = false) const;
 
-  octave_value all (int dim = 0) const { return matrix.all (dim); }
-  octave_value any (int dim = 0) const { return matrix.any (dim); }
+  octave_value all (int dim = 0) const { return m_matrix.all (dim); }
+  octave_value any (int dim = 0) const { return m_matrix.any (dim); }
 
-  MatrixType matrix_type (void) const { return typ ? *typ : MatrixType (); }
+  MatrixType matrix_type (void) const { return m_typ ? *m_typ : MatrixType (); }
   MatrixType matrix_type (const MatrixType& _typ) const;
 
   octave_value diag (octave_idx_type k = 0) const
-  { return octave_value (matrix.diag (k)); }
+  { return octave_value (m_matrix.diag (k)); }
 
   octave_value diag (octave_idx_type m, octave_idx_type n) const
-  { return octave_value (matrix.diag (m, n)); }
+  { return octave_value (m_matrix.diag (m, n)); }
 
   octave_value sort (octave_idx_type dim = 0, sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (dim, mode)); }
+  { return octave_value (m_matrix.sort (dim, mode)); }
   octave_value sort (Array<octave_idx_type>& sidx, octave_idx_type dim = 0,
                      sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (sidx, dim, mode)); }
+  { return octave_value (m_matrix.sort (sidx, dim, mode)); }
 
   sortmode issorted (sortmode mode = UNSORTED) const
-  { return matrix.issorted (mode); }
+  { return m_matrix.issorted (mode); }
 
   Array<octave_idx_type> sort_rows_idx (sortmode mode = ASCENDING) const
-  { return matrix.sort_rows_idx (mode); }
+  { return m_matrix.sort_rows_idx (mode); }
 
   sortmode is_sorted_rows (sortmode mode = UNSORTED) const
-  { return matrix.is_sorted_rows (mode); }
+  { return m_matrix.is_sorted_rows (mode); }
 
   bool is_matrix_type (void) const { return true; }
 
@@ -184,12 +185,12 @@
   MT& matrix_ref (void)
   {
     clear_cached_info ();
-    return matrix;
+    return m_matrix;
   }
 
   const MT& matrix_ref (void) const
   {
-    return matrix;
+    return m_matrix;
   }
 
   OCTINTERP_API octave_value
@@ -200,27 +201,27 @@
 
   // This function exists to support the MEX interface.
   // You should not use it anywhere else.
-  const void * mex_get_data (void) const { return matrix.data (); }
+  const void * mex_get_data (void) const { return m_matrix.data (); }
 
 protected:
 
-  MT matrix;
+  MT m_matrix;
 
   octave::idx_vector set_idx_cache (const octave::idx_vector& idx) const
   {
-    delete idx_cache;
-    idx_cache = (idx ? new octave::idx_vector (idx) : nullptr);
+    delete m_idx_cache;
+    m_idx_cache = (idx ? new octave::idx_vector (idx) : nullptr);
     return idx;
   }
 
   void clear_cached_info (void) const
   {
-    delete typ; typ = nullptr;
-    delete idx_cache; idx_cache = nullptr;
+    delete m_typ; m_typ = nullptr;
+    delete m_idx_cache; m_idx_cache = nullptr;
   }
 
-  mutable MatrixType *typ;
-  mutable octave::idx_vector *idx_cache;
+  mutable MatrixType *m_typ;
+  mutable octave::idx_vector *m_idx_cache;
 
 private:
 
--- a/libinterp/octave-value/ov-base.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-base.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -98,8 +98,7 @@
 DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_base_value,
                                      "<unknown type>", "unknown");
 
-// TRUE means to perform automatic sparse to real mutation if there
-// is memory to be saved
+// DEPRECATED in Octave 8.
 bool Vsparse_auto_mutate = false;
 
 octave_base_value *
@@ -902,6 +901,12 @@
   err_wrong_type_arg ("octave_base_value::map_keys()", type_name ());
 }
 
+bool
+octave_base_value::isfield (const std::string&) const
+{
+  err_wrong_type_arg ("octave_base_value::isfield()", type_name ());
+}
+
 std::size_t
 octave_base_value::nparents (void) const
 {
@@ -1239,8 +1244,7 @@
   int t_lhs = type_id ();
   int t_rhs = rhs.type_id ();
 
-  octave::type_info& ti
-    = octave::__get_type_info__ ("octave_base_value::numeric_assign");
+  octave::type_info& ti = octave::__get_type_info__ ();
 
   octave::type_info::assign_op_fcn f
     = ti.lookup_assign_op (octave_value::op_asn_eq, t_lhs, t_rhs);
@@ -1363,7 +1367,7 @@
 void
 octave_base_value::indent (std::ostream& os) const
 {
-  assert (s_curr_print_indent_level >= 0);
+  panic_unless (s_curr_print_indent_level >= 0);
 
   if (s_beginning_of_line)
     {
@@ -1518,8 +1522,7 @@
 bool
 called_from_builtin (void)
 {
-  octave::tree_evaluator& tw
-    = octave::__get_evaluator__ ("called_from_builtin");
+  octave::tree_evaluator& tw = octave::__get_evaluator__ ();
 
   octave_function *fcn = tw.caller_function ();
 
@@ -1555,49 +1558,4 @@
   INSTALL_WIDENOP_TI (ti, octave_base_value, octave_cell, cell_conv);
 }
 
-DEFUN (sparse_auto_mutate, args, nargout,
-       doc: /* -*- texinfo -*-
-@deftypefn  {} {@var{val} =} sparse_auto_mutate ()
-@deftypefnx {} {@var{old_val} =} sparse_auto_mutate (@var{new_val})
-@deftypefnx {} {} sparse_auto_mutate (@var{new_val}, "local")
-Query or set the internal variable that controls whether Octave will
-automatically mutate sparse matrices to full matrices to save memory.
-
-For example:
-
-@example
-@group
-s = speye (3);
-sparse_auto_mutate (false);
-s(:, 1) = 1;
-typeinfo (s)
-@result{} sparse matrix
-sparse_auto_mutate (true);
-s(1, :) = 1;
-typeinfo (s)
-@result{} matrix
-@end group
-@end example
-
-When called from inside a function with the @qcode{"local"} option, the
-variable is changed locally for the function and any subroutines it calls.
-The original variable value is restored when exiting the function.
-@end deftypefn */)
-{
-  return set_internal_variable (Vsparse_auto_mutate, args, nargout,
-                                "sparse_auto_mutate");
-}
-
-/*
-%!test
-%! s = speye (3);
-%! sparse_auto_mutate (false);
-%! s(:, 1) = 1;
-%! assert (typeinfo (s), "sparse matrix");
-%! sparse_auto_mutate (true);
-%! s(1, :) = 1;
-%! assert (typeinfo (s), "matrix");
-%! sparse_auto_mutate (false);
-*/
-
 OCTAVE_NAMESPACE_END
--- a/libinterp/octave-value/ov-base.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-base.h	Tue Nov 15 13:15:28 2022 -0800
@@ -51,9 +51,16 @@
 
   // FIXME: This is not ideal, but it avoids including
   // interpreter-private.h here and bringing in a lot of unnecessary
-  // symbols that require even more header files.
+  // symbols that require even more header files.  Since the typeinfo
+  // object is required to load a user-defined octave_value object,
+  // maybe this function should be declared in a public header file?
 
-  extern OCTINTERP_API type_info& __get_type_info__ (const std::string&);
+  extern OCTINTERP_API type_info& __get_type_info__ (void);
+
+  // For now just preserve the old interface and don't mark it as deprecated.
+  // This function is currently an internal, private function.  Additional
+  // changes may be made before version 8 is finally released.
+  inline type_info& __get_type_info__ (const std::string&) { return __get_type_info__ (); }
 }
 
 class Cell;
@@ -205,8 +212,7 @@
   tspec const std::string t::c_name (c);                                \
   tspec void t::register_type (void)                                    \
   {                                                                     \
-    octave::type_info& type_info                                        \
-      = octave::__get_type_info__ (#t "::register_type");               \
+    octave::type_info& type_info = octave::__get_type_info__ ();        \
                                                                         \
     register_type (type_info);                                          \
   }                                                                     \
@@ -302,7 +308,8 @@
   virtual octave_value as_uint32 (void) const;
   virtual octave_value as_uint64 (void) const;
 
-  virtual octave_base_value * try_narrowing_conversion (void) { return nullptr; }
+  virtual octave_base_value * try_narrowing_conversion (void)
+  { return nullptr; }
 
   virtual void maybe_economize (void) { }
 
@@ -663,6 +670,8 @@
 
   virtual string_vector map_keys (void) const;
 
+  virtual bool isfield (const std::string&) const;
+
   virtual std::size_t nparents (void) const;
 
   virtual std::list<std::string> parent_class_name_list (void) const;
@@ -942,8 +951,7 @@
   octave::auto_shlib m_containing_dynamic_library;
 };
 
-// TRUE means to perform automatic sparse to real mutation if there
-// is memory to be saved
+OCTAVE_DEPRECATED (8, "Vsparse_auto_mutate is obsolete and is now always false")
 extern OCTINTERP_API bool Vsparse_auto_mutate;
 
 // Utility function to convert C++ arguments used in subsref/subsasgn into an
--- a/libinterp/octave-value/ov-bool-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-bool-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -90,9 +90,9 @@
 {
   octave_base_value *retval = nullptr;
 
-  if (matrix.ndims () == 2)
+  if (m_matrix.ndims () == 2)
     {
-      boolMatrix bm (matrix);
+      boolMatrix bm (m_matrix);
 
       octave_idx_type nr = bm.rows ();
       octave_idx_type nc = bm.cols ();
@@ -113,7 +113,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "bool matrix", "real scalar");
 
-  return matrix(0, 0);
+  return m_matrix(0, 0);
 }
 
 float
@@ -125,7 +125,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "bool matrix", "real scalar");
 
-  return matrix(0, 0);
+  return m_matrix(0, 0);
 }
 
 Complex
@@ -137,7 +137,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "bool matrix", "complex scalar");
 
-  return Complex (matrix(0, 0), 0);
+  return Complex (m_matrix(0, 0), 0);
 }
 
 FloatComplex
@@ -153,7 +153,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "bool matrix", "complex scalar");
 
-  retval = matrix(0, 0);
+  retval = m_matrix(0, 0);
 
   return retval;
 }
@@ -169,68 +169,68 @@
 octave_value
 octave_bool_matrix::as_double (void) const
 {
-  return NDArray (matrix);
+  return NDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_single (void) const
 {
-  return FloatNDArray (matrix);
+  return FloatNDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_int8 (void) const
 {
-  return int8NDArray (matrix);
+  return int8NDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_int16 (void) const
 {
-  return int16NDArray (matrix);
+  return int16NDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_int32 (void) const
 {
-  return int32NDArray (matrix);
+  return int32NDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_int64 (void) const
 {
-  return int64NDArray (matrix);
+  return int64NDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_uint8 (void) const
 {
-  return uint8NDArray (matrix);
+  return uint8NDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_uint16 (void) const
 {
-  return uint16NDArray (matrix);
+  return uint16NDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_uint32 (void) const
 {
-  return uint32NDArray (matrix);
+  return uint32NDArray (m_matrix);
 }
 
 octave_value
 octave_bool_matrix::as_uint64 (void) const
 {
-  return uint64NDArray (matrix);
+  return uint64NDArray (m_matrix);
 }
 
 void
 octave_bool_matrix::print_raw (std::ostream& os,
                                bool pr_as_read_syntax) const
 {
-  octave_print_internal (os, matrix, pr_as_read_syntax,
+  octave_print_internal (os, m_matrix, pr_as_read_syntax,
                          current_print_indent_level ());
 }
 
@@ -296,7 +296,7 @@
       boolNDArray btmp (dv);
 
       if (btmp.isempty ())
-        matrix = btmp;
+        m_matrix = btmp;
       else
         {
           NDArray tmp(dv);
@@ -308,7 +308,7 @@
           for (octave_idx_type i = 0; i < btmp.numel (); i++)
             btmp.elem (i) = (tmp.elem (i) != 0.);
 
-          matrix = btmp;
+          m_matrix = btmp;
         }
     }
   else if (kw == "rows")
@@ -331,10 +331,10 @@
             for (octave_idx_type i = 0; i < nr; i++)
               btmp.elem (i, j) = (tmp.elem (i, j) != 0.);
 
-          matrix = btmp;
+          m_matrix = btmp;
         }
       else if (nr == 0 || nc == 0)
-        matrix = boolMatrix (nr, nc);
+        m_matrix = boolMatrix (nr, nc);
       else
         panic_impossible ();
     }
@@ -423,7 +423,7 @@
   bool *mtmp = m.fortran_vec ();
   for (octave_idx_type i = 0; i < nel; i++)
     mtmp[i] = (htmp[i] ? 1 : 0);
-  matrix = m;
+  m_matrix = m;
 
   return true;
 }
@@ -456,7 +456,8 @@
   if (space_hid < 0) return false;
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_HBOOL, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_HBOOL, space_hid,
                         octave_H5P_DEFAULT);
@@ -500,7 +501,7 @@
   dim_vector dv;
   int empty = load_hdf5_empty (loc_id, name, dv);
   if (empty > 0)
-    matrix.resize (dv);
+    m_matrix.resize (dv);
   if (empty)
     return (empty > 0);
 
@@ -550,7 +551,7 @@
       for (octave_idx_type i = 0; i < nel; i++)
         btmp.elem (i) = htmp[i];
 
-      matrix = btmp;
+      m_matrix = btmp;
     }
 
   H5Dclose (data_hid);
@@ -574,7 +575,7 @@
 
   mwSize nel = numel ();
 
-  const bool *pdata = matrix.data ();
+  const bool *pdata = m_matrix.data ();
 
   for (mwIndex i = 0; i < nel; i++)
     pd[i] = pdata[i];
@@ -586,15 +587,15 @@
 
 DEFUN (logical, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} logical (@var{x})
+@deftypefn {} {@var{TF} =} logical (@var{x})
 Convert the numeric object @var{x} to logical type.
 
 Any nonzero values will be converted to true (1) while zero values will be
-converted to false (0).  The non-numeric value NaN cannot be converted and
-will produce an error.
+converted to false (0).  The non-numeric value NaN cannot be converted and will
+produce an error.
 
-Compatibility Note: Octave accepts complex values as input, whereas
-@sc{matlab} issues an error.
+Compatibility Note: Octave accepts complex values as input, whereas @sc{matlab}
+issues an error.
 @seealso{double, single, char}
 @end deftypefn */)
 {
--- a/libinterp/octave-value/ov-bool-mat.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-bool-mat.h	Tue Nov 15 13:15:28 2022 -0800
@@ -91,7 +91,8 @@
 
   octave::idx_vector index_vector (bool /* require_integers */ = false) const
   {
-    return idx_cache ? *idx_cache : set_idx_cache (octave::idx_vector (matrix));
+    return m_idx_cache ? *m_idx_cache
+                       : set_idx_cache (octave::idx_vector (m_matrix));
   }
 
   builtin_type_t builtin_type (void) const { return btyp_bool; }
@@ -105,28 +106,28 @@
   bool isnumeric (void) const { return false; }
 
   int8NDArray
-  int8_array_value (void) const { return int8NDArray (matrix); }
+  int8_array_value (void) const { return int8NDArray (m_matrix); }
 
   int16NDArray
-  int16_array_value (void) const { return int16NDArray (matrix); }
+  int16_array_value (void) const { return int16NDArray (m_matrix); }
 
   int32NDArray
-  int32_array_value (void) const { return int32NDArray (matrix); }
+  int32_array_value (void) const { return int32NDArray (m_matrix); }
 
   int64NDArray
-  int64_array_value (void) const { return int64NDArray (matrix); }
+  int64_array_value (void) const { return int64NDArray (m_matrix); }
 
   uint8NDArray
-  uint8_array_value (void) const { return uint8NDArray (matrix); }
+  uint8_array_value (void) const { return uint8NDArray (m_matrix); }
 
   uint16NDArray
-  uint16_array_value (void) const { return uint16NDArray (matrix); }
+  uint16_array_value (void) const { return uint16NDArray (m_matrix); }
 
   uint32NDArray
-  uint32_array_value (void) const { return uint32NDArray (matrix); }
+  uint32_array_value (void) const { return uint32NDArray (m_matrix); }
 
   uint64NDArray
-  uint64_array_value (void) const { return uint64NDArray (matrix); }
+  uint64_array_value (void) const { return uint64NDArray (m_matrix); }
 
   double double_value (bool = false) const;
 
@@ -136,32 +137,32 @@
   { return double_value (frc_str_conv); }
 
   Matrix matrix_value (bool = false) const
-  { return Matrix (boolMatrix (matrix)); }
+  { return Matrix (boolMatrix (m_matrix)); }
 
   FloatMatrix float_matrix_value (bool = false) const
-  { return FloatMatrix (boolMatrix (matrix)); }
+  { return FloatMatrix (boolMatrix (m_matrix)); }
 
   NDArray array_value (bool = false) const
-  { return NDArray (matrix); }
+  { return NDArray (m_matrix); }
 
   FloatNDArray float_array_value (bool = false) const
-  { return FloatNDArray (matrix); }
+  { return FloatNDArray (m_matrix); }
 
   Complex complex_value (bool = false) const;
 
   FloatComplex float_complex_value (bool = false) const;
 
   ComplexMatrix complex_matrix_value (bool = false) const
-  { return ComplexMatrix (boolMatrix (matrix)); }
+  { return ComplexMatrix (boolMatrix (m_matrix)); }
 
   FloatComplexMatrix float_complex_matrix_value (bool = false) const
-  { return FloatComplexMatrix (boolMatrix (matrix)); }
+  { return FloatComplexMatrix (boolMatrix (m_matrix)); }
 
   ComplexNDArray complex_array_value (bool = false) const
-  { return ComplexNDArray (matrix); }
+  { return ComplexNDArray (m_matrix); }
 
   FloatComplexNDArray float_complex_array_value (bool = false) const
-  { return FloatComplexNDArray (matrix); }
+  { return FloatComplexNDArray (m_matrix); }
 
   charNDArray
   char_array_value (bool = false) const
@@ -171,25 +172,25 @@
     octave_idx_type nel = numel ();
 
     for (octave_idx_type i = 0; i < nel; i++)
-      retval(i) = static_cast<char> (matrix(i));
+      retval(i) = static_cast<char> (m_matrix(i));
 
     return retval;
   }
 
   boolMatrix bool_matrix_value (bool = false) const
-  { return boolMatrix (matrix); }
+  { return boolMatrix (m_matrix); }
 
   boolNDArray bool_array_value (bool = false) const
-  { return matrix; }
+  { return m_matrix; }
 
   SparseMatrix sparse_matrix_value (bool = false) const
-  { return SparseMatrix (Matrix (boolMatrix (matrix))); }
+  { return SparseMatrix (Matrix (boolMatrix (m_matrix))); }
 
   SparseComplexMatrix sparse_complex_matrix_value (bool = false) const
-  { return SparseComplexMatrix (ComplexMatrix (boolMatrix (matrix))); }
+  { return SparseComplexMatrix (ComplexMatrix (boolMatrix (m_matrix))); }
 
   SparseBoolMatrix sparse_bool_matrix_value (bool = false) const
-  { return SparseBoolMatrix (boolMatrix (matrix)); }
+  { return SparseBoolMatrix (boolMatrix (m_matrix)); }
 
   octave_value convert_to_str_internal (bool pad, bool force, char type) const;
 
@@ -227,7 +228,7 @@
   int write (octave::stream& os, int block_size,
              oct_data_conv::data_type output_type, int skip,
              octave::mach_info::float_format flt_fmt) const
-  { return os.write (matrix, block_size, output_type, skip, flt_fmt); }
+  { return os.write (m_matrix, block_size, output_type, skip, flt_fmt); }
 
   mxArray * as_mxArray (bool interleaved) const;
 
--- a/libinterp/octave-value/ov-bool-sparse.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-bool-sparse.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -73,32 +73,6 @@
                                             octave_sparse_matrix::static_type_id ());
 }
 
-octave_base_value *
-octave_sparse_bool_matrix::try_narrowing_conversion (void)
-{
-  octave_base_value *retval = nullptr;
-
-  if (Vsparse_auto_mutate)
-    {
-      // Don't use numel, since it can overflow for very large matrices
-      // Note that for the second test, this means it becomes approximative
-      // since it involves a cast to double to avoid issues of overflow
-      if (matrix.rows () == 1 && matrix.cols () == 1)
-        {
-          // Const copy of the matrix, so the right version of () operator used
-          const SparseBoolMatrix tmp (matrix);
-
-          retval = new octave_bool (tmp (0));
-        }
-      else if (matrix.cols () > 0 && matrix.rows () > 0
-               && (double (matrix.byte_size ()) > double (matrix.rows ())
-                   * double (matrix.cols ()) * sizeof (bool)))
-        retval = new octave_bool_matrix (matrix.matrix_value ());
-    }
-
-  return retval;
-}
-
 double
 octave_sparse_bool_matrix::double_value (bool) const
 {
--- a/libinterp/octave-value/ov-bool-sparse.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-bool-sparse.h	Tue Nov 15 13:15:28 2022 -0800
@@ -84,8 +84,6 @@
 
   type_conv_info numeric_conversion_function (void) const;
 
-  octave_base_value * try_narrowing_conversion (void);
-
   // FIXME: Adapt idx_vector to allow sparse logical indexing without overflow!
   octave::idx_vector index_vector (bool /* require_integers */ = false) const
   {
--- a/libinterp/octave-value/ov-bool.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-bool.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -241,7 +241,8 @@
   if (space_hid < 0) return false;
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_DOUBLE, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_DOUBLE, space_hid,
                         octave_H5P_DEFAULT);
@@ -253,8 +254,8 @@
     }
 
   double tmp = double_value ();
-  retval = H5Dwrite (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL, octave_H5S_ALL,
-                     octave_H5P_DEFAULT, &tmp) >= 0;
+  retval = H5Dwrite (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL,
+                     octave_H5S_ALL, octave_H5P_DEFAULT, &tmp) >= 0;
 
   H5Dclose (data_hid);
   H5Sclose (space_hid);
--- a/libinterp/octave-value/ov-builtin.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-builtin.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -46,45 +46,7 @@
 octave_builtin::execute (octave::tree_evaluator& tw, int nargout,
                          const octave_value_list& args)
 {
-  octave_value_list retval;
-
-  if (args.has_magic_colon ())
-    error ("invalid use of colon in function argument list");
-
-  octave::profiler& profiler = tw.get_profiler ();
-
-  octave::profiler::enter<octave_builtin> block (profiler, *this);
-
-  if (m_fcn)
-    retval = (*m_fcn) (args, nargout);
-  else
-    {
-      octave::interpreter& interp
-        = octave::__get_interpreter__ ("octave_builtin::call");
-
-      retval = (*m_meth) (interp, args, nargout);
-    }
-
-  // Do not allow null values to be returned from functions.
-  // FIXME: perhaps true builtins should be allowed?
-
-  retval.make_storable_values ();
-
-  // Fix the case of a single undefined value.
-  // This happens when a compiled function uses
-  //
-  //   octave_value retval;
-  //
-  // instead of
-  //
-  //   octave_value_list retval;
-  //
-  // the idiom is very common, so we solve that here.
-
-  if (retval.length () == 1 && retval.xelem (0).is_undefined ())
-    retval.clear ();
-
-  return retval;
+  return tw.execute_builtin_function (*this, nargout, args);
 }
 
 octave_builtin::fcn
--- a/libinterp/octave-value/ov-cell.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-cell.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -70,14 +70,14 @@
 octave_base_matrix<Cell>::do_index_op (const octave_value_list& idx,
                                        bool resize_ok)
 {
-  return matrix.index (idx, resize_ok);
+  return m_matrix.index (idx, resize_ok);
 }
 
 template <>
 void
 octave_base_matrix<Cell>::assign (const octave_value_list& idx, const Cell& rhs)
 {
-  matrix.assign (idx, rhs);
+  m_matrix.assign (idx, rhs);
 }
 
 template <>
@@ -87,16 +87,16 @@
 {
   // FIXME: Really?
   if (rhs.iscell ())
-    matrix.assign (idx, rhs.cell_value ());
+    m_matrix.assign (idx, rhs.cell_value ());
   else
-    matrix.assign (idx, Cell (rhs));
+    m_matrix.assign (idx, Cell (rhs));
 }
 
 template <>
 void
 octave_base_matrix<Cell>::delete_elements (const octave_value_list& idx)
 {
-  matrix.delete_elements (idx);
+  m_matrix.delete_elements (idx);
 }
 
 // FIXME: this list of specializations is becoming so long that we should
@@ -108,7 +108,7 @@
                                         octave_idx_type i,
                                         octave_idx_type j) const
 {
-  octave_value val = matrix(i, j);
+  octave_value val = m_matrix(i, j);
 
   std::string tname = val.type_name ();
   dim_vector dv = val.dims ();
@@ -120,8 +120,8 @@
 octave_value
 octave_base_matrix<Cell>::fast_elem_extract (octave_idx_type n) const
 {
-  if (n < matrix.numel ())
-    return Cell (matrix(n));
+  if (n < m_matrix.numel ())
+    return Cell (m_matrix(n));
   else
     return octave_value ();
 }
@@ -133,9 +133,9 @@
 {
   const octave_cell *xrep = dynamic_cast<const octave_cell *> (&x.get_rep ());
 
-  bool retval = xrep && xrep->matrix.numel () == 1 && n < matrix.numel ();
+  bool retval = xrep && xrep->m_matrix.numel () == 1 && n < m_matrix.numel ();
   if (retval)
-    matrix(n) = xrep->matrix(0);
+    m_matrix(n) = xrep->m_matrix(0);
 
   return retval;
 }
@@ -146,8 +146,8 @@
 
 void octave_cell::break_closure_cycles (const std::shared_ptr<octave::stack_frame>& frame)
 {
-  for (octave_idx_type i = 0; i < matrix.numel (); i++)
-    matrix(i).break_closure_cycles (frame);
+  for (octave_idx_type i = 0; i < m_matrix.numel (); i++)
+    m_matrix(i).break_closure_cycles (frame);
 }
 
 octave_value_list
@@ -306,8 +306,8 @@
 
         case '{':
           {
-            matrix.make_unique ();
-            Cell tmpc = matrix.index (idx.front (), true);
+            m_matrix.make_unique ();
+            Cell tmpc = m_matrix.index (idx.front (), true);
 
             std::list<octave_value_list> next_idx (idx);
 
@@ -435,7 +435,7 @@
     retval = true;
   else
     {
-      retval = matrix.iscellstr ();
+      retval = m_matrix.iscellstr ();
       // Allocate empty cache to mark that this is indeed a cellstr.
       if (retval)
         m_cellstr_cache.reset (new Array<std::string> ());
@@ -471,7 +471,7 @@
   std::size_t retval = 0;
 
   for (octave_idx_type i = 0; i < numel (); i++)
-    retval += matrix(i).byte_size ();
+    retval += m_matrix(i).byte_size ();
 
   return retval;
 }
@@ -567,7 +567,7 @@
 octave_value_list
 octave_cell::list_value (void) const
 {
-  return octave_value_list (matrix);
+  return octave_value_list (m_matrix);
 }
 
 string_vector
@@ -585,7 +585,7 @@
 
   for (octave_idx_type i = 0; i < nel; i++)
     {
-      string_vector s = matrix(i).string_vector_value ();
+      string_vector s = m_matrix(i).string_vector_value ();
 
       octave_idx_type s_len = s.numel ();
 
@@ -639,7 +639,7 @@
     error ("invalid conversion from cell array to array of strings");
 
   if (m_cellstr_cache->isempty ())
-    *m_cellstr_cache = matrix.cellstr_value ();
+    *m_cellstr_cache = m_matrix.cellstr_value ();
 
   return *m_cellstr_cache;
 }
@@ -659,7 +659,7 @@
 void
 octave_cell::print_raw (std::ostream& os, bool) const
 {
-  int nd = matrix.ndims ();
+  int nd = m_matrix.ndims ();
 
   if (nd == 2)
     {
@@ -683,7 +683,7 @@
                   std::ostringstream buf;
                   buf << '[' << i+1 << ',' << j+1 << ']';
 
-                  octave_value val = matrix(i, j);
+                  octave_value val = m_matrix(i, j);
 
                   val.print_with_name (os, buf.str ());
                 }
@@ -707,7 +707,7 @@
   else
     {
       indent (os);
-      dim_vector dv = matrix.dims ();
+      dim_vector dv = m_matrix.dims ();
       os << '{' << dv.str () << " Cell Array}";
       newline (os);
     }
@@ -735,7 +735,7 @@
 void
 octave_cell::short_disp (std::ostream& os) const
 {
-  os << (matrix.isempty () ? "{}" : "...");
+  os << (m_matrix.isempty () ? "{}" : "...");
 }
 
 #define CELL_ELT_TAG "<cell-element>"
@@ -844,7 +844,7 @@
       if (! is)
         error ("load: failed to load matrix constant");
 
-      matrix = tmp;
+      m_matrix = tmp;
     }
   else if (kw == "rows")
     {
@@ -880,10 +880,10 @@
           if (! is)
             error ("load: failed to load cell element");
 
-          matrix = tmp;
+          m_matrix = tmp;
         }
       else if (nr == 0 || nc == 0)
-        matrix = Cell (nr, nc);
+        m_matrix = Cell (nr, nc);
       else
         panic_impossible ();
     }
@@ -989,7 +989,7 @@
   if (! is)
     error ("load: failed to load matrix constant");
 
-  matrix = tmp;
+  m_matrix = tmp;
 
   return true;
 }
@@ -998,7 +998,7 @@
 octave_cell::mex_get_data (void) const
 {
   clear_cellstr_cache ();
-  return matrix.data ();
+  return m_matrix.data ();
 }
 
 bool
@@ -1045,7 +1045,8 @@
 
 #if defined (HAVE_HDF5_18)
   size_hid = H5Dcreate (data_hid, "dims", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   size_hid = H5Dcreate (data_hid, "dims", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -1118,7 +1119,7 @@
   dim_vector dv;
   int empty = load_hdf5_empty (loc_id, name, dv);
   if (empty > 0)
-    matrix.resize (dv);
+    m_matrix.resize (dv);
   if (empty)
     return (empty > 0);
 
@@ -1205,7 +1206,7 @@
 
   if (retval2 >= 0)
     {
-      matrix = m;
+      m_matrix = m;
       retval = true;
     }
 
@@ -1223,7 +1224,7 @@
 
 DEFUN (iscell, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} iscell (@var{x})
+@deftypefn {} {@var{tf} =} iscell (@var{x})
 Return true if @var{x} is a cell array object.
 @seealso{ismatrix, isstruct, iscellstr, isa}
 @end deftypefn */)
@@ -1236,10 +1237,10 @@
 
 DEFUN (cell, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} cell (@var{n})
-@deftypefnx {} {} cell (@var{m}, @var{n})
-@deftypefnx {} {} cell (@var{m}, @var{n}, @var{k}, @dots{})
-@deftypefnx {} {} cell ([@var{m} @var{n} @dots{}])
+@deftypefn  {} {@var{C} =} cell (@var{n})
+@deftypefnx {} {@var{C} =} cell (@var{m}, @var{n})
+@deftypefnx {} {@var{C} =} cell (@var{m}, @var{n}, @var{k}, @dots{})
+@deftypefnx {} {@var{C} =} cell ([@var{m} @var{n} @dots{}])
 Create a new cell array object.
 
 If invoked with a single scalar integer argument, return a square
@@ -1260,7 +1261,10 @@
       break;
 
     case 1:
-      get_dimensions (args(0), "cell", dims);
+      if (args(0).iscell ())
+        return args(0);  // shortcut path for input which is already a Cell
+      else
+        get_dimensions (args(0), "cell", dims);
       break;
 
     default:
@@ -1282,6 +1286,15 @@
 }
 
 /*
+
+%!test <*63132>
+%! x = {1, 3};
+%! y = cell (x);
+%! assert (x, y);
+%! x = cell (0, 3);
+%! y = cell (x);
+%! assert (x, y);
+
 ## This might work on some system someday, but for now, who has a system
 ## where a 16 yottabyte array can be allocated?  See bug #50934.
 %!error <out of memory> cell (1e24, 1)
@@ -1289,7 +1302,7 @@
 
 DEFUN (iscellstr, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} iscellstr (@var{cell})
+@deftypefn {} {@var{tf} =} iscellstr (@var{cell})
 Return true if every element of the cell array @var{cell} is a character
 string.
 @seealso{ischar, isstring}
@@ -1425,7 +1438,7 @@
 
   mwSize nel = numel ();
 
-  const octave_value *p = matrix.data ();
+  const octave_value *p = m_matrix.data ();
 
   for (mwIndex i = 0; i < nel; i++)
     elts[i] = new mxArray (interleaved, p[i]);
@@ -1440,7 +1453,7 @@
     {
 #define FORWARD_MAPPER(UMAP)                  \
     case umap_ ## UMAP:                       \
-      return matrix.UMAP ()
+      return m_matrix.UMAP ()
 
     FORWARD_MAPPER (xisalnum);
     FORWARD_MAPPER (xisalpha);
--- a/libinterp/octave-value/ov-cell.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-cell.h	Tue Nov 15 13:15:28 2022 -0800
@@ -136,7 +136,7 @@
 
   bool is_true (void) const;
 
-  Cell cell_value (void) const { return matrix; }
+  Cell cell_value (void) const { return m_matrix; }
 
   octave_value_list list_value (void) const;
 
--- a/libinterp/octave-value/ov-ch-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-ch-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -60,7 +60,7 @@
 octave::idx_vector
 octave_char_matrix::index_vector (bool /* require_integers */) const
 {
-  const char *p = matrix.data ();
+  const char *p = m_matrix.data ();
   if (numel () == 1 && *p == ':')
     return octave::idx_vector (':');
   else
@@ -76,7 +76,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "character matrix", "real scalar");
 
-  return static_cast<unsigned char> (matrix(0, 0));
+  return static_cast<unsigned char> (m_matrix(0, 0));
 }
 
 float
@@ -88,7 +88,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "character matrix", "real scalar");
 
-  return static_cast<unsigned char> (matrix(0, 0));
+  return static_cast<unsigned char> (m_matrix(0, 0));
 }
 
 octave_int64
@@ -102,7 +102,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "character matrix", "int64 scalar");
 
-  retval = octave_int64 (matrix(0, 0));
+  retval = octave_int64 (m_matrix(0, 0));
 
   return retval;
 }
@@ -118,7 +118,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "character matrix", "uint64 scalar");
 
-  retval = octave_uint64 (matrix(0, 0));
+  retval = octave_uint64 (m_matrix(0, 0));
 
   return retval;
 }
@@ -132,7 +132,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "character matrix", "complex scalar");
 
-  return Complex (static_cast<unsigned char> (matrix(0, 0)), 0);
+  return Complex (static_cast<unsigned char> (m_matrix(0, 0)), 0);
 }
 
 FloatComplex
@@ -148,7 +148,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "character matrix", "complex scalar");
 
-  retval = static_cast<unsigned char> (matrix(0, 0));
+  retval = static_cast<unsigned char> (m_matrix(0, 0));
 
   return retval;
 }
@@ -156,68 +156,68 @@
 octave_value
 octave_char_matrix::as_double (void) const
 {
-  return NDArray (matrix);
+  return NDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_single (void) const
 {
-  return FloatNDArray (matrix);
+  return FloatNDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_int8 (void) const
 {
-  return int8NDArray (matrix);
+  return int8NDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_int16 (void) const
 {
-  return int16NDArray (matrix);
+  return int16NDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_int32 (void) const
 {
-  return int32NDArray (matrix);
+  return int32NDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_int64 (void) const
 {
-  return int64NDArray (matrix);
+  return int64NDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_uint8 (void) const
 {
-  return uint8NDArray (matrix);
+  return uint8NDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_uint16 (void) const
 {
-  return uint16NDArray (matrix);
+  return uint16NDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_uint32 (void) const
 {
-  return uint32NDArray (matrix);
+  return uint32NDArray (m_matrix);
 }
 
 octave_value
 octave_char_matrix::as_uint64 (void) const
 {
-  return uint64NDArray (matrix);
+  return uint64NDArray (m_matrix);
 }
 
 void
 octave_char_matrix::print_raw (std::ostream& os,
                                bool pr_as_read_syntax) const
 {
-  octave_print_internal (os, matrix, pr_as_read_syntax,
+  octave_print_internal (os, m_matrix, pr_as_read_syntax,
                          current_print_indent_level ());
 }
 
@@ -230,7 +230,7 @@
 
   mwSize nel = numel ();
 
-  const char *pdata = matrix.data ();
+  const char *pdata = m_matrix.data ();
 
   for (mwIndex i = 0; i < nel; i++)
     pd[i] = pdata[i];
@@ -261,22 +261,22 @@
     {
 #define STRING_MAPPER(UMAP,FCN,TYPE)                                  \
     case umap_ ## UMAP:                                               \
-      return octave_value (matrix.map<TYPE, int (&) (int)> (FCN))
+      return octave_value (m_matrix.map<TYPE, int (&) (int)> (FCN))
 
     STRING_MAPPER (xisascii, xisascii, bool);
 
 #define STRING_U8_MAPPER(UMAP,FCN)                                             \
     case umap_ ## UMAP:                                                        \
       {                                                                        \
-        charNDArray in_m = matrix;                                             \
-        Array<octave_idx_type> p (dim_vector (matrix.ndims (), 1));            \
-        if (matrix.ndims () > 1)                                               \
+        charNDArray in_m = m_matrix;                                           \
+        Array<octave_idx_type> p (dim_vector (m_matrix.ndims (), 1));          \
+        if (m_matrix.ndims () > 1)                                             \
           {                                                                    \
-            for (octave_idx_type i=0; i < matrix.ndims (); i++)                \
+            for (octave_idx_type i=0; i < m_matrix.ndims (); i++)              \
               p(i) = i;                                                        \
             p(0) = 1;                                                          \
             p(1) = 0;                                                          \
-            in_m = matrix.permute (p);                                         \
+            in_m = m_matrix.permute (p);                                       \
           }                                                                    \
         boolNDArray b_array = boolNDArray (in_m.dims ());                      \
         const uint8_t *in = reinterpret_cast<const uint8_t *> (in_m.data ());  \
@@ -291,8 +291,8 @@
             b_array(i+j) = is_upper;                                           \
           i += mblen;                                                          \
         }                                                                      \
-        return octave_value ((matrix.ndims () > 1) ? b_array.permute (p, true) \
-                                                   : b_array);                 \
+        return octave_value ((m_matrix.ndims () > 1) ? b_array.permute (p, true) \
+                                                     : b_array);               \
       }
 
     STRING_U8_MAPPER (xisalnum, octave_uc_is_alnum_wrapper);
@@ -310,29 +310,29 @@
 #define STRING_U8_FCN(UMAP,U8_FCN,STD_FCN)                                     \
     case umap_ ## UMAP:                                                        \
       {                                                                        \
-        charNDArray in_m = matrix;                                             \
-        Array<octave_idx_type> p (dim_vector (matrix.ndims (), 1));            \
-        if (matrix.ndims () > 1)                                               \
+        charNDArray in_m = m_matrix;                                           \
+        Array<octave_idx_type> p (dim_vector (m_matrix.ndims (), 1));          \
+        if (m_matrix.ndims () > 1)                                             \
           {                                                                    \
-            for (octave_idx_type i=0; i < matrix.ndims (); i++)                \
+            for (octave_idx_type i=0; i < m_matrix.ndims (); i++)              \
               p(i) = i;                                                        \
             p(0) = 1;                                                          \
             p(1) = 0;                                                          \
-            in_m = matrix.permute (p);                                         \
+            in_m = m_matrix.permute (p);                                       \
           }                                                                    \
-        std::size_t output_length = in_m.numel ();                                  \
+        std::size_t output_length = in_m.numel ();                             \
         charNDArray ch_array = charNDArray (in_m.dims ());                     \
         const uint8_t *in = reinterpret_cast<const uint8_t *> (in_m.data ());  \
         uint8_t *buf = reinterpret_cast<uint8_t *> (ch_array.fortran_vec ());  \
-        U8_FCN (in, matrix.numel (), nullptr, buf, &output_length);            \
-        if (output_length != static_cast<std::size_t> (matrix.numel ()))            \
+        U8_FCN (in, m_matrix.numel (), nullptr, buf, &output_length);          \
+        if (output_length != static_cast<std::size_t> (m_matrix.numel ()))     \
           {                                                                    \
             warning_with_id ("Octave:multi_byte_char_length",                  \
                              "UMAP: Possible multi-byte error.");              \
-            return octave_value (matrix.map<char, int (&) (int)> (STD_FCN));   \
+            return octave_value (m_matrix.map<char, int (&) (int)> (STD_FCN)); \
           }                                                                    \
-        return octave_value ((matrix.ndims () > 1) ? ch_array.permute (p, true)\
-                                                   : ch_array);                \
+        return octave_value ((m_matrix.ndims () > 1) ? ch_array.permute (p, true)\
+                                                     : ch_array);              \
       }
 
     STRING_U8_FCN (xtolower, octave_u8_tolower_wrapper, std::tolower);
--- a/libinterp/octave-value/ov-ch-mat.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-ch-mat.h	Tue Nov 15 13:15:28 2022 -0800
@@ -112,41 +112,41 @@
   octave_uint64 uint64_scalar_value () const;
 
   Matrix matrix_value (bool = false) const
-  { return Matrix (charMatrix (matrix)); }
+  { return Matrix (charMatrix (m_matrix)); }
 
   FloatMatrix float_matrix_value (bool = false) const
-  { return FloatMatrix (charMatrix (matrix)); }
+  { return FloatMatrix (charMatrix (m_matrix)); }
 
   NDArray array_value (bool = false) const
-  { return NDArray (matrix); }
+  { return NDArray (m_matrix); }
 
   FloatNDArray float_array_value (bool = false) const
-  { return FloatNDArray (matrix); }
+  { return FloatNDArray (m_matrix); }
 
   Complex complex_value (bool = false) const;
 
   FloatComplex float_complex_value (bool = false) const;
 
   ComplexMatrix complex_matrix_value (bool = false) const
-  { return ComplexMatrix (charMatrix (matrix)); }
+  { return ComplexMatrix (charMatrix (m_matrix)); }
 
   FloatComplexMatrix float_complex_matrix_value (bool = false) const
-  { return FloatComplexMatrix (charMatrix (matrix)); }
+  { return FloatComplexMatrix (charMatrix (m_matrix)); }
 
   ComplexNDArray complex_array_value (bool = false) const
-  { return ComplexNDArray (matrix); }
+  { return ComplexNDArray (m_matrix); }
 
   FloatComplexNDArray float_complex_array_value (bool = false) const
-  { return FloatComplexNDArray (matrix); }
+  { return FloatComplexNDArray (m_matrix); }
 
   charMatrix char_matrix_value (bool = false) const
-  { return charMatrix (matrix); }
+  { return charMatrix (m_matrix); }
 
   charNDArray char_array_value (bool = false) const
-  { return matrix; }
+  { return m_matrix; }
 
   octave_value convert_to_str_internal (bool, bool, char type) const
-  { return octave_value (matrix, type); }
+  { return octave_value (m_matrix, type); }
 
   octave_value as_double (void) const;
   octave_value as_single (void) const;
--- a/libinterp/octave-value/ov-class.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-class.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -200,7 +200,7 @@
         }
     }
 
-  octave::symbol_table& symtab = octave::__get_symbol_table__ ("octave_class");
+  octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
   symtab.add_to_parent_map (id, m_parent_list);
 }
@@ -231,8 +231,7 @@
 
   if (nparents () > 0)
     {
-      octave::tree_evaluator& tw
-        = octave::__get_evaluator__ ("octave_class::get_current_method_class");
+      octave::tree_evaluator& tw = octave::__get_evaluator__ ();
 
       octave_function *fcn = tw.current_function ();
 
@@ -281,7 +280,7 @@
 Cell
 octave_class::dotref (const octave_value_list& idx)
 {
-  assert (idx.length () == 1);
+  panic_if (idx.length () != 1);
 
   std::string method_class = get_current_method_class ();
 
@@ -313,8 +312,7 @@
 
   Matrix retval (1, 2, 1.0);
 
-  octave::symbol_table& symtab
-    = octave::__get_symbol_table__ ("octave_class::size");
+  octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
   octave_value meth = symtab.find_method ("size", class_name ());
 
@@ -354,8 +352,7 @@
   octave_idx_type retval = -1;
   const std::string cn = class_name ();
 
-  octave::symbol_table& symtab
-    = octave::__get_symbol_table__ ("octave_class::numel");
+  octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
   octave_value meth = symtab.find_method ("numel", cn);
 
@@ -450,8 +447,7 @@
     }
   else
     {
-      octave::symbol_table& symtab
-        = octave::__get_symbol_table__ ("octave_class::subsref");
+      octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
       octave_value meth = symtab.find_method ("subsref", class_name ());
 
@@ -551,8 +547,7 @@
 
   if (! (in_class_method () || called_from_builtin ()))
     {
-      octave::symbol_table& symtab
-        = octave::__get_symbol_table__ ("octave_class::subsasgn_common");
+      octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
       octave_value meth = symtab.find_method ("subsasgn", class_name ());
 
@@ -654,7 +649,7 @@
 
                 octave_value_list key_idx = *++p;
 
-                assert (key_idx.length () == 1);
+                panic_if (key_idx.length () != 1);
 
                 std::string key = key_idx(0).xstring_value ("invalid index for class assignment");
 
@@ -692,7 +687,7 @@
           {
             octave_value_list key_idx = idx.front ();
 
-            assert (key_idx.length () == 1);
+            panic_if (key_idx.length () != 1);
 
             std::string key = key_idx(0).string_value ();
 
@@ -747,7 +742,7 @@
             auto p = idx.begin ();
             octave_value_list key_idx = *++p;
 
-            assert (key_idx.length () == 1);
+            panic_if (key_idx.length () != 1);
 
             std::string key = key_idx(0).xstring_value ("assignment to class element failed");
 
@@ -785,7 +780,7 @@
       {
         octave_value_list key_idx = idx.front ();
 
-        assert (key_idx.length () == 1);
+        panic_if (key_idx.length () != 1);
 
         std::string key = key_idx(0).string_value ();
 
@@ -828,8 +823,7 @@
 octave::idx_vector
 octave_class::index_vector (bool require_integers) const
 {
-  octave::symbol_table& symtab
-    = octave::__get_symbol_table__ ("octave_class::index_vector");
+  octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
   octave_value meth = symtab.find_method ("subsindex", class_name ());
 
@@ -877,8 +871,7 @@
 {
   bool retval = false;
 
-  octave::symbol_table& symtab
-    = octave::__get_symbol_table__ ("octave_class::is_true");
+  octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
   octave_value meth = symtab.find_method ("logical", class_name ());
 
@@ -996,8 +989,7 @@
 {
   string_vector retval;
 
-  octave::symbol_table& symtab
-    = octave::__get_symbol_table__ ("octave_class::string_vector_value");
+  octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
   octave_value meth = symtab.find_method ("char", class_name ());
 
@@ -1049,8 +1041,7 @@
     retval = true;
   else
     {
-      octave::interpreter& interp
-        = octave::__get_interpreter__  ("octave_class::reconstruct_exemplar");
+      octave::interpreter& interp = octave::__get_interpreter__ ();
 
       octave::symbol_table& symtab = interp.get_symbol_table ();
 
@@ -1068,7 +1059,7 @@
           // Something has gone terribly wrong if
           // symbol_table::find_method (c_name, c_name) does not return
           // a class constructor for the class c_name...
-          assert (have_ctor);
+          panic_unless (have_ctor);
         }
 
       if (have_ctor)
@@ -1174,7 +1165,7 @@
   os << "# classname: " << class_name () << "\n";
   octave_map m;
 
-  octave::load_path& lp = octave::__get_load_path__ ("octave_class::save_ascii");
+  octave::load_path& lp = octave::__get_load_path__ ();
 
   if (lp.find_method (class_name (), "saveobj") != "")
     {
@@ -1248,7 +1239,7 @@
       if (! reconstruct_parents ())
         warning ("load: unable to reconstruct object inheritance");
 
-      octave::load_path& lp = octave::__get_load_path__ ("octave_class::load_ascii");
+      octave::load_path& lp = octave::__get_load_path__ ();
 
       if (lp.find_method (classname, "loadobj") != "")
         {
@@ -1279,7 +1270,7 @@
 
   octave_map m;
 
-  octave::load_path& lp = octave::__get_load_path__ ("octave_class::save_binary");
+  octave::load_path& lp = octave::__get_load_path__ ();
 
   if (lp.find_method (class_name (), "saveobj") != "")
     {
@@ -1368,7 +1359,7 @@
           if (! reconstruct_parents ())
             warning ("load: unable to reconstruct object inheritance");
 
-          octave::load_path& lp = octave::__get_load_path__ ("octave_class::load_binary");
+          octave::load_path& lp = octave::__get_load_path__ ();
 
           if (lp.find_method (c_name, "loadobj") != "")
             {
@@ -1407,7 +1398,7 @@
   octave_map m;
   octave_map::iterator i;
 
-  octave::load_path& lp = octave::__get_load_path__ ("octave_class::save_hdf5");
+  octave::load_path& lp = octave::__get_load_path__ ();
 
 #if defined (HAVE_HDF5_18)
   group_hid = H5Gcreate (loc_id, name, octave_H5P_DEFAULT, octave_H5P_DEFAULT,
@@ -1617,7 +1608,7 @@
       if (! reconstruct_parents ())
         warning ("load: unable to reconstruct object inheritance");
 
-      octave::load_path& lp = octave::__get_load_path__ ("octave_class::load_hdf5");
+      octave::load_path& lp = octave::__get_load_path__ ();
 
       if (lp.find_method (c_name, "loadobj") != "")
         {
@@ -1655,8 +1646,7 @@
 bool
 octave_class::in_class_method (void)
 {
-  octave::tree_evaluator& tw
-    = octave::__get_evaluator__ ("octave_class::in_class_method");
+  octave::tree_evaluator& tw = octave::__get_evaluator__ ();
 
   octave_function *fcn = tw.current_function ();
 
@@ -1727,13 +1717,13 @@
 DEFMETHOD (class, interp, args, ,
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{classname} =} class (@var{obj})
-@deftypefnx {} {} class (@var{s}, @var{id})
-@deftypefnx {} {} class (@var{s}, @var{id}, @var{p}, @dots{})
-Return the class of the object @var{obj}, or create a class with
-fields from structure @var{s} and name (string) @var{id}.
-
-Additional arguments name a list of parent classes from which the new class
-is derived.
+@deftypefnx {} {@var{cls} =} class (@var{s}, @var{classname})
+@deftypefnx {} {@var{cls} =} class (@var{s}, @var{classname}, @var{parent1}, @dots{})
+Return the class of the object @var{obj}, or create a class with fields from
+structure @var{s} and name (string) @var{classname}.
+
+Additional arguments name a list of parent classes from which the new class is
+derived.
 @seealso{typeinfo, isa}
 @end deftypefn */)
 {
@@ -1802,7 +1792,7 @@
 
 DEFUN (isa, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isa (@var{obj}, @var{classname})
+@deftypefn {} {@var{tf} =} isa (@var{obj}, @var{classname})
 Return true if @var{obj} is an object from the class @var{classname}.
 
 @var{classname} may also be one of the following class categories:
@@ -1911,7 +1901,7 @@
 
 DEFUN (__parent_classes__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __parent_classes__ (@var{x})
+@deftypefn {} {@var{Ccls} =} __parent_classes__ (@var{x})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -1928,7 +1918,7 @@
 
 DEFUN (isobject, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isobject (@var{x})
+@deftypefn {} {@var{tf} =} isobject (@var{x})
 Return true if @var{x} is a class object.
 @seealso{class, typeinfo, isa, ismethod, isprop}
 @end deftypefn */)
@@ -2038,7 +2028,7 @@
                inf_class.c_str (), sup_class.c_str ());
     }
 
-  return octave_value();
+  return ovl ();
 }
 
 // The following classes allow us to define "inline" function objects as
@@ -2148,14 +2138,11 @@
 
 DEFUN (__inline_ctor__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __inline_ctor__ (@var{prop_struct})
-Internal function.
-
+@deftypefn {} {@var{inline_obj} =} __inline_ctor__ (@var{prop_struct})
 Implements final construction for inline objects.
 @end deftypefn */)
 {
   // Input validation has already been done in input.m.
-
   return octave_value (new octave_inline (args(0).map_value ()));
 }
 
--- a/libinterp/octave-value/ov-class.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-class.h	Tue Nov 15 13:15:28 2022 -0800
@@ -188,7 +188,8 @@
 
   OCTINTERP_API void print (std::ostream& os, bool pr_as_read_syntax = false);
 
-  OCTINTERP_API void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;
+  OCTINTERP_API void print_raw (std::ostream& os,
+                                bool pr_as_read_syntax = false) const;
 
   OCTINTERP_API bool reconstruct_exemplar (void);
 
--- a/libinterp/octave-value/ov-classdef.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-classdef.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -140,7 +140,8 @@
         }
     }
 
-  retval = m_object.subsref (type, idx, 1, skip, octave::cdef_class (), auto_add);
+  retval = m_object.subsref (type, idx, 1, skip,
+                             octave::cdef_class (), auto_add);
 
   if (type.length () > skip && idx.size () > skip)
     retval = retval(0).next_subsref (1, type, idx, skip);
@@ -254,7 +255,7 @@
 
           // Temporarily set lvalue list of current statement to NULL, to avoid
           // using that list for the execution of the method "numel"
-          octave::interpreter& interp = octave::__get_interpreter__ ("octave_classdef::xnumel");
+          octave::interpreter& interp = octave::__get_interpreter__ ();
           octave::tree_evaluator& tw = interp.get_evaluator();
 
           octave::unwind_action act ([&tw] (const std::list<octave::octave_lvalue> *lvl)
@@ -602,21 +603,21 @@
 
 DEFUN (__meta_get_package__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __meta_get_package__ ()
+@deftypefn {} {@var{pkg} =} __meta_get_package__ (@var{pkg_name})
 Undocumented internal function.
 @end deftypefn */)
 {
   if (args.length () != 1)
     print_usage ();
 
-  std::string cname = args(0).xstring_value ("PACKAGE_NAME must be a string");
+  std::string cname = args(0).xstring_value ("PKG_NAME must be a string");
 
   return to_ov (lookup_package (cname));
 }
 
 DEFUN (metaclass, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} metaclass (obj)
+@deftypefn {} {@var{metaclass_obj} =} metaclass (obj)
 Returns the meta.class object corresponding to the class of @var{obj}.
 @end deftypefn */)
 {
@@ -635,17 +636,17 @@
 
 DEFUN (properties, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} properties (@var{class_name})
-@deftypefnx {} {} properties (@var{obj})
-@deftypefnx {} {@var{plist} =} properties (@dots{})
-Return or display the public properties for the named class
-@var{class_name} or classdef object @var{obj}.
+@deftypefn  {} {} properties (@var{obj})
+@deftypefnx {} {} properties (@var{class_name})
+@deftypefnx {} {@var{proplist} =} properties (@dots{})
+Display or return the public properties for the classdef object @var{obj} or
+the named class @var{class_name}.
 
-If an output value is requested, return the list of property names in a
-cell array.
+If an output value is requested, return the list of property names in a cell
+array.
 
-Programming Note: Property names are returned if the @code{GetAccess}
-attribute is public and if the @code{Hidden} attribute is false.
+Programming Note: Property names are returned if the @code{GetAccess} attribute
+is public and if the @code{Hidden} attribute is false.
 @seealso{methods}
 @end deftypefn */)
 {
@@ -721,10 +722,8 @@
 
 DEFMETHOD (__methods__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} __methods__ (@var{x})
-@deftypefnx {} {} __methods__ ("classname")
-Internal function.
-
+@deftypefn  {} {@var{mtds} =} __methods__ (@var{obj})
+@deftypefnx {} {@var{mtds} =} __methods__ ("classname")
 Implements @code{methods} for Octave class objects and classnames.
 @seealso{methods}
 @end deftypefn */)
@@ -775,8 +774,3 @@
 
 OCTAVE_NAMESPACE_END
 
-/*
-;;; Local Variables: ***
-;;; mode: C++ ***
-;;; End: ***
-*/
--- a/libinterp/octave-value/ov-classdef.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-classdef.h	Tue Nov 15 13:15:28 2022 -0800
@@ -166,7 +166,7 @@
   static const std::string t_name;
 };
 
-OCTINTERP_API void install_classdef (octave::interpreter& interp);
+void install_classdef (octave::interpreter& interp);
 
 class octave_classdef_meta : public octave_function
 {
@@ -284,8 +284,3 @@
 
 #endif
 
-/*
-;;; Local Variables: ***
-;;; mode: C++ ***
-;;; End: ***
-*/
--- a/libinterp/octave-value/ov-colon.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-colon.h	Tue Nov 15 13:15:28 2022 -0800
@@ -73,7 +73,8 @@
 
   OCTINTERP_API void print (std::ostream& os, bool pr_as_read_syntax = false);
 
-  OCTINTERP_API void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;
+  OCTINTERP_API void print_raw (std::ostream& os,
+                                bool pr_as_read_syntax = false) const;
 
 private:
 
--- a/libinterp/octave-value/ov-complex.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-complex.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -385,7 +385,8 @@
     }
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, octave_H5P_DEFAULT);
 #endif
--- a/libinterp/octave-value/ov-cx-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-cx-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -91,17 +91,17 @@
 {
   octave_base_value *retval = nullptr;
 
-  if (matrix.numel () == 1)
+  if (m_matrix.numel () == 1)
     {
-      Complex c = matrix (0);
+      Complex c = m_matrix (0);
 
       if (c.imag () == 0.0)
         retval = new octave_scalar (c.real ());
       else
         retval = new octave_complex (c);
     }
-  else if (matrix.all_elements_are_real ())
-    retval = new octave_matrix (::real (matrix));
+  else if (m_matrix.all_elements_are_real ())
+    retval = new octave_matrix (::real (m_matrix));
 
   return retval;
 }
@@ -119,7 +119,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "complex matrix", "real scalar");
 
-  return std::real (matrix(0, 0));
+  return std::real (m_matrix(0, 0));
 }
 
 float
@@ -135,7 +135,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "complex matrix", "real scalar");
 
-  return std::real (matrix(0, 0));
+  return std::real (m_matrix(0, 0));
 }
 
 NDArray
@@ -147,7 +147,7 @@
     warn_implicit_conversion ("Octave:imag-to-real",
                               "complex matrix", "real matrix");
 
-  retval = ::real (matrix);
+  retval = ::real (m_matrix);
 
   return retval;
 }
@@ -161,7 +161,7 @@
     warn_implicit_conversion ("Octave:imag-to-real",
                               "complex matrix", "real matrix");
 
-  retval = ::real (ComplexMatrix (matrix));
+  retval = ::real (ComplexMatrix (m_matrix));
 
   return retval;
 }
@@ -175,7 +175,7 @@
     warn_implicit_conversion ("Octave:imag-to-real",
                               "complex matrix", "real matrix");
 
-  retval = ::real (ComplexMatrix (matrix));
+  retval = ::real (ComplexMatrix (m_matrix));
 
   return retval;
 }
@@ -189,7 +189,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "complex matrix", "complex scalar");
 
-  return matrix(0, 0);
+  return m_matrix(0, 0);
 }
 
 FloatComplex
@@ -205,7 +205,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "complex matrix", "complex scalar");
 
-  retval = matrix(0, 0);
+  retval = m_matrix(0, 0);
 
   return retval;
 }
@@ -213,25 +213,25 @@
 ComplexMatrix
 octave_complex_matrix::complex_matrix_value (bool) const
 {
-  return ComplexMatrix (matrix);
+  return ComplexMatrix (m_matrix);
 }
 
 FloatComplexMatrix
 octave_complex_matrix::float_complex_matrix_value (bool) const
 {
-  return FloatComplexMatrix (ComplexMatrix (matrix));
+  return FloatComplexMatrix (ComplexMatrix (m_matrix));
 }
 
 boolNDArray
 octave_complex_matrix::bool_array_value (bool warn) const
 {
-  if (matrix.any_element_is_nan ())
+  if (m_matrix.any_element_is_nan ())
     octave::err_nan_to_logical_conversion ();
-  if (warn && (! matrix.all_elements_are_real ()
-               || real (matrix).any_element_not_one_or_zero ()))
+  if (warn && (! m_matrix.all_elements_are_real ()
+               || real (m_matrix).any_element_not_one_or_zero ()))
     warn_logical_conversion ();
 
-  return mx_el_ne (matrix, Complex (0.0));
+  return mx_el_ne (m_matrix, Complex (0.0));
 }
 
 charNDArray
@@ -248,7 +248,7 @@
       octave_idx_type nel = numel ();
 
       for (octave_idx_type i = 0; i < nel; i++)
-        retval.elem (i) = static_cast<char> (std::real (matrix.elem (i)));
+        retval.elem (i) = static_cast<char> (std::real (m_matrix.elem (i)));
     }
 
   return retval;
@@ -257,7 +257,7 @@
 FloatComplexNDArray
 octave_complex_matrix::float_complex_array_value (bool) const
 {
-  return FloatComplexNDArray (matrix);
+  return FloatComplexNDArray (m_matrix);
 }
 
 SparseMatrix
@@ -269,7 +269,7 @@
     warn_implicit_conversion ("Octave:imag-to-real",
                               "complex matrix", "real matrix");
 
-  retval = SparseMatrix (::real (ComplexMatrix (matrix)));
+  retval = SparseMatrix (::real (ComplexMatrix (m_matrix)));
 
   return retval;
 }
@@ -277,28 +277,28 @@
 SparseComplexMatrix
 octave_complex_matrix::sparse_complex_matrix_value (bool) const
 {
-  return SparseComplexMatrix (ComplexMatrix (matrix));
+  return SparseComplexMatrix (ComplexMatrix (m_matrix));
 }
 
 octave_value
 octave_complex_matrix::as_double (void) const
 {
-  return matrix;
+  return m_matrix;
 }
 
 octave_value
 octave_complex_matrix::as_single (void) const
 {
-  return FloatComplexNDArray (matrix);
+  return FloatComplexNDArray (m_matrix);
 }
 
 octave_value
 octave_complex_matrix::diag (octave_idx_type k) const
 {
   octave_value retval;
-  if (k == 0 && matrix.ndims () == 2
-      && (matrix.rows () == 1 || matrix.columns () == 1))
-    retval = ComplexDiagMatrix (DiagArray2<Complex> (matrix));
+  if (k == 0 && m_matrix.ndims () == 2
+      && (m_matrix.rows () == 1 || m_matrix.columns () == 1))
+    retval = ComplexDiagMatrix (DiagArray2<Complex> (m_matrix));
   else
     retval = octave_base_matrix<ComplexNDArray>::diag (k);
 
@@ -308,11 +308,11 @@
 octave_value
 octave_complex_matrix::diag (octave_idx_type m, octave_idx_type n) const
 {
-  if (matrix.ndims () != 2
-      || (matrix.rows () != 1 && matrix.columns () != 1))
+  if (m_matrix.ndims () != 2
+      || (m_matrix.rows () != 1 && m_matrix.columns () != 1))
     error ("diag: expecting vector argument");
 
-  ComplexMatrix mat (matrix);
+  ComplexMatrix mat (m_matrix);
 
   return mat.diag (m, n);
 }
@@ -391,7 +391,7 @@
       if (! is)
         error ("load: failed to load matrix constant");
 
-      matrix = tmp;
+      m_matrix = tmp;
     }
   else if (kw == "rows")
     {
@@ -408,10 +408,10 @@
           if (! is)
             error ("load: failed to load matrix constant");
 
-          matrix = tmp;
+          m_matrix = tmp;
         }
       else if (nr == 0 || nc == 0)
-        matrix = ComplexMatrix (nr, nc);
+        m_matrix = ComplexMatrix (nr, nc);
       else
         panic_impossible ();
     }
@@ -512,7 +512,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   else
     {
@@ -533,7 +533,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   return true;
 }
@@ -596,7 +596,8 @@
     }
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, octave_H5P_DEFAULT);
 #endif
@@ -650,7 +651,7 @@
   dim_vector dv;
   int empty = load_hdf5_empty (loc_id, name, dv);
   if (empty > 0)
-    matrix.resize (dv);
+    m_matrix.resize (dv);
   if (empty)
     return (empty > 0);
 
@@ -708,7 +709,7 @@
       >= 0)
     {
       retval = true;
-      matrix = m;
+      m_matrix = m;
     }
 
   H5Tclose (complex_type);
@@ -729,7 +730,7 @@
 octave_complex_matrix::print_raw (std::ostream& os,
                                   bool pr_as_read_syntax) const
 {
-  octave_print_internal (os, matrix, pr_as_read_syntax,
+  octave_print_internal (os, m_matrix, pr_as_read_syntax,
                          current_print_indent_level ());
 }
 
@@ -741,7 +742,7 @@
 
   mwSize nel = numel ();
 
-  const Complex *pdata = matrix.data ();
+  const Complex *pdata = m_matrix.data ();
 
   if (interleaved)
     {
@@ -776,20 +777,20 @@
     {
     // Mappers handled specially.
     case umap_real:
-      return ::real (matrix);
+      return ::real (m_matrix);
     case umap_imag:
-      return ::imag (matrix);
+      return ::imag (m_matrix);
     case umap_conj:
-      return ::conj (matrix);
+      return ::conj (m_matrix);
 
     // Special cases for Matlab compatibility.
     case umap_xtolower:
     case umap_xtoupper:
-      return matrix;
+      return m_matrix;
 
 #define ARRAY_METHOD_MAPPER(UMAP, FCN)        \
     case umap_ ## UMAP:                       \
-      return octave_value (matrix.FCN ())
+      return octave_value (m_matrix.FCN ())
 
     ARRAY_METHOD_MAPPER (abs, abs);
     ARRAY_METHOD_MAPPER (isnan, isnan);
@@ -798,7 +799,7 @@
 
 #define ARRAY_MAPPER(UMAP, TYPE, FCN)                 \
     case umap_ ## UMAP:                               \
-      return octave_value (matrix.map<TYPE> (FCN))
+      return octave_value (m_matrix.map<TYPE> (FCN))
 
     ARRAY_MAPPER (acos, Complex, octave::math::acos);
     ARRAY_MAPPER (acosh, Complex, octave::math::acosh);
--- a/libinterp/octave-value/ov-cx-mat.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-cx-mat.h	Tue Nov 15 13:15:28 2022 -0800
@@ -126,7 +126,7 @@
 
   FloatComplexMatrix float_complex_matrix_value (bool = false) const;
 
-  ComplexNDArray complex_array_value (bool = false) const { return matrix; }
+  ComplexNDArray complex_array_value (bool = false) const { return m_matrix; }
 
   FloatComplexNDArray float_complex_array_value (bool = false) const;
 
@@ -145,11 +145,11 @@
 
   octave_value diag (octave_idx_type m, octave_idx_type n) const;
 
-  void increment (void) { matrix += Complex (1.0); }
+  void increment (void) { m_matrix += Complex (1.0); }
 
-  void decrement (void) { matrix -= Complex (1.0); }
+  void decrement (void) { m_matrix -= Complex (1.0); }
 
-  void changesign (void) { matrix.changesign (); }
+  void changesign (void) { m_matrix.changesign (); }
 
   bool save_ascii (std::ostream& os);
 
--- a/libinterp/octave-value/ov-cx-sparse.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-cx-sparse.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -60,49 +60,8 @@
 octave_base_value *
 octave_sparse_complex_matrix::try_narrowing_conversion (void)
 {
-  octave_base_value *retval = nullptr;
-
-  if (Vsparse_auto_mutate)
-    {
-      int nr = matrix.rows ();
-      int nc = matrix.cols ();
-
-      // Don't use numel, since it can overflow for very large matrices
-      // Note that for the tests on matrix size, they become approximative
-      // since they involves a cast to double to avoid issues of overflow
-      if (matrix.rows () == 1 && matrix.cols () == 1)
-        {
-          // Const copy of the matrix, so the right version of () operator used
-          const SparseComplexMatrix tmp (matrix);
-
-          Complex c = tmp (0, 0);
-
-          if (c.imag () == 0.0)
-            retval = new octave_scalar (c.real ());
-          else
-            retval = new octave_complex (c);
-        }
-      else if (nr == 0 || nc == 0)
-        retval = new octave_matrix (Matrix (nr, nc));
-      else if (matrix.all_elements_are_real ())
-        if (matrix.cols () > 0 && matrix.rows () > 0
-            && (double (matrix.byte_size ()) > double (matrix.rows ())
-                * double (matrix.cols ()) * sizeof (double)))
-          retval = new octave_matrix (::real (matrix.matrix_value ()));
-        else
-          retval = new octave_sparse_matrix (::real (matrix));
-      else if (matrix.cols () > 0 && matrix.rows () > 0
-               && (double (matrix.byte_size ()) > double (matrix.rows ())
-                   * double (matrix.cols ()) * sizeof (Complex)))
-        retval = new octave_complex_matrix (matrix.matrix_value ());
-    }
-  else
-    {
-      if (matrix.all_elements_are_real ())
-        retval = new octave_sparse_matrix (::real (matrix));
-    }
-
-  return retval;
+  return (matrix.all_elements_are_real ()
+          ? new octave_sparse_matrix (::real (matrix)) : nullptr);
 }
 
 double
@@ -400,7 +359,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -425,7 +385,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -450,7 +411,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -488,7 +450,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -526,7 +489,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -582,7 +546,8 @@
     }
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "data", type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "data", type_hid, space_hid,
                         octave_H5P_DEFAULT);
@@ -601,8 +566,8 @@
     {
       Complex *ctmp = m.xdata ();
 
-      retval = H5Dwrite (data_hid, complex_type_hid, octave_H5S_ALL, octave_H5S_ALL,
-                         octave_H5P_DEFAULT, ctmp) >= 0;
+      retval = H5Dwrite (data_hid, complex_type_hid, octave_H5S_ALL,
+                         octave_H5S_ALL, octave_H5P_DEFAULT, ctmp) >= 0;
     }
 
   H5Dclose (data_hid);
--- a/libinterp/octave-value/ov-dld-fcn.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-dld-fcn.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -85,8 +85,7 @@
 
 octave_dld_function::~octave_dld_function (void)
 {
-  octave::dynamic_loader& dyn_loader
-    = octave::__get_dynamic_loader__ ("~octave_dld_function");
+  octave::dynamic_loader& dyn_loader = octave::__get_dynamic_loader__ ();
 
   dyn_loader.remove_oct (m_name, m_sh_lib);
 }
--- a/libinterp/octave-value/ov-dld-fcn.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-dld-fcn.h	Tue Nov 15 13:15:28 2022 -0800
@@ -63,13 +63,14 @@
 
   // No copying!
 
-  octave_dld_function (const octave_dld_function& fn) = delete;
+  octave_dld_function (const octave_dld_function& fcn) = delete;
 
-  octave_dld_function& operator = (const octave_dld_function& fn) = delete;
+  octave_dld_function& operator = (const octave_dld_function& fcn) = delete;
 
   ~octave_dld_function (void);
 
-  void mark_fcn_file_up_to_date (const octave::sys::time& t) { m_time_checked = t; }
+  void mark_fcn_file_up_to_date (const octave::sys::time& t)
+  { m_time_checked = t; }
 
   std::string fcn_file_name (void) const;
 
--- a/libinterp/octave-value/ov-fcn-handle.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-fcn-handle.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -217,7 +217,8 @@
 
     bool load_binary (std::istream& is, bool swap, mach_info::float_format fmt);
 
-    bool save_hdf5 (octave_hdf5_id loc_hid, const char *name, bool save_as_floats);
+    bool save_hdf5 (octave_hdf5_id loc_hid, const char *name,
+                    bool save_as_floats);
 
     bool load_hdf5 (octave_hdf5_id& group_hid, octave_hdf5_id& space_hid,
                     octave_hdf5_id& type_hid);
@@ -289,7 +290,8 @@
 
     bool load_binary (std::istream& is, bool swap, mach_info::float_format fmt);
 
-    bool save_hdf5 (octave_hdf5_id loc_id, const char *name, bool save_as_floats);
+    bool save_hdf5 (octave_hdf5_id loc_id, const char *name,
+                    bool save_as_floats);
 
     bool load_hdf5 (octave_hdf5_id& group_hid, octave_hdf5_id& space_hid,
                     octave_hdf5_id& type_hid);
@@ -362,7 +364,8 @@
 
     bool load_binary (std::istream& is, bool swap, mach_info::float_format fmt);
 
-    bool save_hdf5 (octave_hdf5_id loc_id, const char *name, bool save_as_floats);
+    bool save_hdf5 (octave_hdf5_id loc_id, const char *name,
+                    bool save_as_floats);
 
     bool load_hdf5 (octave_hdf5_id& group_hid, octave_hdf5_id& space_hid,
                     octave_hdf5_id& type_hid);
@@ -517,8 +520,7 @@
       if (m_fcn.is_defined ())
         return m_fcn.function_value ();
 
-      symbol_table& symtab
-        = __get_symbol_table__ ("class_simple_fcn_handle::function_value");
+      symbol_table& symtab = __get_symbol_table__ ();
 
       // FIXME: is caching the correct thing to do?
       // Cache this value so that the pointer will be valid as long as the
@@ -553,7 +555,8 @@
 
     bool load_binary (std::istream& is, bool swap, mach_info::float_format fmt);
 
-    bool save_hdf5 (octave_hdf5_id loc_id, const char *name, bool save_as_floats);
+    bool save_hdf5 (octave_hdf5_id loc_id, const char *name,
+                    bool save_as_floats);
 
     bool load_hdf5 (octave_hdf5_id& group_hid, octave_hdf5_id& space_hid,
                     octave_hdf5_id& type_hid);
@@ -657,7 +660,8 @@
 
     bool load_binary (std::istream& is, bool swap, mach_info::float_format fmt);
 
-    bool save_hdf5 (octave_hdf5_id loc_id, const char *name, bool save_as_floats);
+    bool save_hdf5 (octave_hdf5_id loc_id, const char *name,
+                    bool save_as_floats);
 
     bool load_hdf5 (octave_hdf5_id& group_hid, octave_hdf5_id& space_hid,
                     octave_hdf5_id& type_hid);
@@ -912,7 +916,7 @@
   octave_value_list
   internal_fcn_handle::call (int nargout, const octave_value_list& args)
   {
-    interpreter& interp = __get_interpreter__ ("internal_fcn_handle::call");
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.feval (m_fcn, args, nargout);
   }
@@ -945,7 +949,7 @@
     // it is a classdef meta object, then build TYPE and IDX arguments and
     // make a subsref call using them.
 
-    interpreter& interp = __get_interpreter__ ("simple_fcn_handle::call");
+    interpreter& interp = __get_interpreter__ ();
 
     octave_value fcn_to_call;
 
@@ -1132,8 +1136,7 @@
     if (m_fcn.is_defined ())
       return m_fcn.function_value ();
 
-    symbol_table& symtab
-      = __get_symbol_table__ ("simple_fcn_handle::function_value");
+    symbol_table& symtab = __get_symbol_table__ ();
 
     // FIXME: is caching the correct thing to do?
     // Cache this value so that the pointer will be valid as long as the
@@ -1152,8 +1155,7 @@
     if (m_fcn.is_defined ())
       return m_fcn.user_function_value ();
 
-    symbol_table& symtab
-      = __get_symbol_table__ ("simple_fcn_handle::user_function_value");
+    symbol_table& symtab = __get_symbol_table__ ();
 
     // FIXME: is caching the correct thing to do?
     // Cache this value so that the pointer will be valid as long as the
@@ -1169,8 +1171,7 @@
     if (m_fcn.is_defined ())
       return m_fcn;
 
-    symbol_table& symtab
-      = __get_symbol_table__ ("simple_fcn_handle::user_function_value");
+    symbol_table& symtab = __get_symbol_table__ ();
 
     // FIXME: is caching the correct thing to do?
     // Cache this value so that the pointer will be valid as long as the
@@ -1360,7 +1361,8 @@
     a_id = H5Acreate (group_hid, "FILE", type_hid, space_hid,
                       octave_H5P_DEFAULT, octave_H5P_DEFAULT);
 #else
-    a_id = H5Acreate (group_hid, "FILE", type_hid, space_hid, octave_H5P_DEFAULT);
+    a_id = H5Acreate (group_hid, "FILE", type_hid, space_hid,
+                      octave_H5P_DEFAULT);
 #endif
 
     if (a_id >= 0)
@@ -1459,7 +1461,7 @@
   {
     // FIXME: we aren't really using the scope yet.  Hmm.
 
-    interpreter& interp = __get_interpreter__ ("simple_fcn_handle::call");
+    interpreter& interp = __get_interpreter__ ();
 
     if (! m_fcn.is_defined ())
       {
@@ -1636,8 +1638,7 @@
     // It is not an error if this fails.  We can report later that the
     // handle is invalid.
 
-    symbol_table& symtab
-      = __get_symbol_table__ ("scoped_fcn_handle::find_function");
+    symbol_table& symtab = __get_symbol_table__ ();
 
     if (m_parentage.size () == 1)
       {
@@ -1678,10 +1679,10 @@
                 if (file_name.substr (0, oct_home.size ()) == oct_home)
                   file_name = file_name.substr (oct_home.size ());
 
-                octave_value subfun = fcn->find_subfunction (m_name);
-
-                if (subfun.is_defined ())
-                  m_fcn = subfun;
+                octave_value subfcn = fcn->find_subfunction (m_name);
+
+                if (subfcn.is_defined ())
+                  m_fcn = subfcn;
               }
           }
       }
@@ -1815,7 +1816,7 @@
   octave_value_list
   nested_fcn_handle::call (int nargout, const octave_value_list& args)
   {
-    tree_evaluator& tw = __get_evaluator__ ("nested_fcn_handle::call");
+    tree_evaluator& tw = __get_evaluator__ ();
 
     octave_user_function *oct_usr_fcn = m_fcn.user_function_value ();
 
@@ -1843,7 +1844,7 @@
   octave_value_list
   weak_nested_fcn_handle::call (int nargout, const octave_value_list& args)
   {
-    tree_evaluator& tw = __get_evaluator__ ("weak_nested_fcn_handle::call");
+    tree_evaluator& tw = __get_evaluator__ ();
 
     octave_user_function *oct_usr_fcn = m_fcn.user_function_value ();
 
@@ -1897,7 +1898,7 @@
   octave_value_list
   class_simple_fcn_handle::call (int nargout, const octave_value_list& args)
   {
-    interpreter& interp = __get_interpreter__ ("class_simple_fcn_handle::call");
+    interpreter& interp = __get_interpreter__ ();
 
     if (m_obj.is_defined ())
       {
@@ -2116,8 +2117,7 @@
     // Set up temporary scope to use for evaluating the text that
     // defines the anonymous function.
 
-    interpreter& interp
-      = __get_interpreter__ ("base_anonymous_fcn_handle::load_ascii");
+    interpreter& interp = __get_interpreter__ ();
 
     tree_evaluator& tw = interp.get_evaluator ();
 
@@ -2210,7 +2210,7 @@
         std::istringstream nm_is (m_name.substr (anl));
         nm_is >> len;
 
-        // Anonymous functons don't have names.  We just used this
+        // Anonymous functions don't have names.  We just used this
         // string as temporary storage to pass the number of local
         // variable values.
 
@@ -2233,8 +2233,7 @@
     // Set up temporary scope to use for evaluating the text that
     // defines the anonymous function.
 
-    interpreter& interp
-      = __get_interpreter__ ("base_anonymous_fcn_handle::load_binary");
+    interpreter& interp = __get_interpreter__ ();
 
     tree_evaluator& tw = interp.get_evaluator ();
 
@@ -2390,7 +2389,8 @@
           retval = false;
 #if defined (HAVE_HDF5_18)
         data_hid = H5Gcreate (group_hid, "symbol table",
-                              octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                              octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                              octave_H5P_DEFAULT);
 #else
         data_hid = H5Gcreate (group_hid, "symbol table", 0);
 #endif
@@ -2515,16 +2515,16 @@
     // HDF5 doesn't print out all sorts of error messages if we
     // call H5Aopen for a non-existing attribute
 
-    H5E_auto_t err_func;
-    void *err_func_data;
+    H5E_auto_t err_fcn;
+    void *err_fcn_data;
 
     // turn off error reporting temporarily, but save the error
     // reporting function:
 #if defined (HAVE_HDF5_18)
-    H5Eget_auto (octave_H5E_DEFAULT, &err_func, &err_func_data);
+    H5Eget_auto (octave_H5E_DEFAULT, &err_fcn, &err_fcn_data);
     H5Eset_auto (octave_H5E_DEFAULT, nullptr, nullptr);
 #else
-    H5Eget_auto (&err_func, &err_func_data);
+    H5Eget_auto (&err_fcn, &err_fcn_data);
     H5Eset_auto (nullptr, nullptr);
 #endif
 
@@ -2540,16 +2540,15 @@
 
     // restore error reporting:
 #if defined (HAVE_HDF5_18)
-    H5Eset_auto (octave_H5E_DEFAULT, err_func, err_func_data);
+    H5Eset_auto (octave_H5E_DEFAULT, err_fcn, err_fcn_data);
 #else
-    H5Eset_auto (err_func, err_func_data);
+    H5Eset_auto (err_fcn, err_fcn_data);
 #endif
 
     // Set up temporary scope to use for evaluating the text that
     // defines the anonymous function.
 
-    interpreter& interp
-      = __get_interpreter__ ("base_anonymous_fcn_handle::load_hdf5");
+    interpreter& interp = __get_interpreter__ ();
 
     tree_evaluator& tw = interp.get_evaluator ();
 
@@ -2622,14 +2621,14 @@
 
     tree_statement_list *b = f->body ();
 
-    assert (b->length () == 1);
+    panic_if (b->length () != 1);
 
     tree_statement *s = b->front ();
 
     if (! s)
       error ("invalid anonymous function handle");
 
-    assert (s->is_expression ());
+    panic_unless (s->is_expression ());
 
     tree_expression *e = s->expression ();
 
@@ -2647,8 +2646,7 @@
     // values to the object returned by eval_string?  This code is also is
     // duplicated in read_mat5_binary_element in ls-mat5.cc.
 
-    interpreter& interp
-      = __get_interpreter__ ("base_anonymous_fcn_handle::parse");
+    interpreter& interp = __get_interpreter__ ();
 
     // Set up temporary scope to use for evaluating the text that defines
     // the anonymous function so that we don't pick up values of random
@@ -2705,7 +2703,7 @@
   octave_value_list
   anonymous_fcn_handle::call (int nargout, const octave_value_list& args)
   {
-    tree_evaluator& tw = __get_evaluator__ ("anonymous_fcn_handle::call");
+    tree_evaluator& tw = __get_evaluator__ ();
 
     octave_user_function *oct_usr_fcn = m_fcn.user_function_value ();
 
@@ -2757,7 +2755,7 @@
   octave_value_list
   weak_anonymous_fcn_handle::call (int nargout, const octave_value_list& args)
   {
-    tree_evaluator& tw = __get_evaluator__ ("anonymous_fcn_handle::call");
+    tree_evaluator& tw = __get_evaluator__ ();
 
     octave_user_function *oct_usr_fcn = m_fcn.user_function_value ();
 
@@ -2958,14 +2956,16 @@
           std::string name;
           is >> name;
 
-          new_rep.reset (new octave::simple_fcn_handle (name, fpath, octaveroot));
+          new_rep.reset (new octave::simple_fcn_handle (name, fpath,
+                                                        octaveroot));
         }
       else if (subtype == "scopedfunction")
         {
           std::string name;
           is >> name;
 
-          new_rep.reset (new octave::scoped_fcn_handle (name, fpath, octaveroot));
+          new_rep.reset (new octave::scoped_fcn_handle (name, fpath,
+                                                        octaveroot));
         }
       else if (subtype == "anonymous")
         new_rep.reset (new octave::anonymous_fcn_handle ());
@@ -2974,14 +2974,16 @@
           std::string name;
           is >> name;
 
-          new_rep.reset (new octave::nested_fcn_handle (name, fpath, octaveroot));
+          new_rep.reset (new octave::nested_fcn_handle (name, fpath,
+                                                        octaveroot));
         }
       else if (subtype == "classsimple")
         {
           std::string name;
           is >> name;
 
-          new_rep.reset (new octave::class_simple_fcn_handle (name, fpath, octaveroot));
+          new_rep.reset (new octave::class_simple_fcn_handle (name, fpath,
+                                                              octaveroot));
         }
     }
 
@@ -3081,7 +3083,8 @@
       else if (subtype == "nested")
         new_rep.reset (new octave::nested_fcn_handle (name, fpath, octaveroot));
       else if (subtype == "classsimple")
-        new_rep.reset (new octave::class_simple_fcn_handle (name, fpath, octaveroot));
+        new_rep.reset (new octave::class_simple_fcn_handle (name, fpath,
+                                                            octaveroot));
     }
 
   if (! new_rep)
@@ -3234,7 +3237,8 @@
       else if (subtype == "nested")
         new_rep.reset (new octave::nested_fcn_handle (name, fpath, octaveroot));
       else if (subtype == "classsimple")
-        new_rep.reset (new octave::class_simple_fcn_handle (name, fpath, octaveroot));
+        new_rep.reset (new octave::class_simple_fcn_handle (name, fpath,
+                                                            octaveroot));
     }
 
   bool status = false;
@@ -3401,16 +3405,6 @@
 
 OCTAVE_NAMESPACE_BEGIN
 
-  // DEPRECATED in Octave 6.
-
-  octave_value
-  make_fcn_handle (interpreter& interp, const std::string& nm)
-  {
-    tree_evaluator& tw = interp.get_evaluator ();
-
-    return tw.make_fcn_handle (nm);
-  }
-
 DEFUN (functions, args, ,
        doc: /* -*- texinfo -*-
 @deftypefn {} {@var{s} =} functions (@var{fcn_handle})
@@ -3472,9 +3466,9 @@
 
 DEFUN (func2str, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} func2str (@var{fcn_handle})
-Return a string containing the name of the function referenced by the
-function handle @var{fcn_handle}.
+@deftypefn {} {@var{str} =} func2str (@var{fcn_handle})
+Return a string containing the name of the function referenced by the function
+handle @var{fcn_handle}.
 @seealso{str2func, functions}
 @end deftypefn */)
 {
@@ -3506,12 +3500,23 @@
 
 DEFMETHOD (str2func, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} str2func (@var{fcn_name})
-Return a function handle constructed from the string @var{fcn_name}.
-
-Previous versions of Octave accepted an optional second argument,
-@qcode{"global"}, that caused str2func to ignore locally visible
-functions.  This option is no longer supported.
+@deftypefn {} {@var{hfcn} =} str2func (@var{str})
+Return a function handle constructed from the string @var{str}.
+
+The input may be the name of a function such as @qcode{"sin"} or a string
+defining a function such as @qcode{"@@(x) sin (x + pi)"}.
+
+Programming Note: In most cases it will be better to use anonymous function
+syntax and let the Octave parser create the function handle rather than use
+@code{str2func}.  For example:
+
+@example
+@group
+hfcn = @@sin ;
+hfcn = @@(x) sin (x + pi) ;
+@end group
+@end example
+
 @seealso{func2str, functions}
 @end deftypefn */)
 {
@@ -3532,7 +3537,7 @@
       // temporary scope to use for evaluating the text that defines
       // the anonymous function.  Here we want
       //
-      //   str2fun ("@(args) expr")
+      //   str2func ("@(args) expr")
       //
       // to behave the same as if
       //
@@ -3577,7 +3582,7 @@
 */
 
 /*
-%!function y = __testrecursionfunc (f, x, n)
+%!function y = __testrecursionfcn (f, x, n)
 %!  if (nargin < 3)
 %!    n = 0;
 %!  endif
@@ -3585,16 +3590,16 @@
 %!    y = f (x);
 %!  else
 %!    n++;
-%!    y = __testrecursionfunc (@(x) f (2*x), x, n);
+%!    y = __testrecursionfcn (@(x) f (2*x), x, n);
 %!  endif
 %!endfunction
 %!
-%!assert (__testrecursionfunc (@(x) x, 1), 8)
+%!assert (__testrecursionfcn (@(x) x, 1), 8)
 */
 
 DEFUN (is_function_handle, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} is_function_handle (@var{x})
+@deftypefn {} {@var{tf} =} is_function_handle (@var{x})
 Return true if @var{x} is a function handle.
 @seealso{isa, typeinfo, class, functions}
 @end deftypefn */)
--- a/libinterp/octave-value/ov-fcn-handle.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-fcn-handle.h	Tue Nov 15 13:15:28 2022 -0800
@@ -373,14 +373,4 @@
 extern bool
 is_equal_to (const octave_fcn_handle& fh1, const octave_fcn_handle& fh2);
 
-OCTAVE_NAMESPACE_BEGIN
-
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-  OCTAVE_DEPRECATED (6, "use 'tree_evaluator::make_fcn_handle' instead")
-  extern octave_value
-  make_fcn_handle (interpreter& interp, const std::string& name);
 #endif
-
-OCTAVE_NAMESPACE_END
-
-#endif
--- a/libinterp/octave-value/ov-float.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-float.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -262,7 +262,8 @@
   if (space_hid < 0) return false;
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_FLOAT, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_FLOAT, space_hid,
                         octave_H5P_DEFAULT);
--- a/libinterp/octave-value/ov-flt-complex.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-flt-complex.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -326,7 +326,8 @@
     }
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, octave_H5P_DEFAULT);
 #endif
--- a/libinterp/octave-value/ov-flt-cx-diag.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-flt-cx-diag.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -148,8 +148,7 @@
       return ::imag (m_matrix);
     case umap_sqrt:
       {
-        FloatComplexColumnVector tmp = m_matrix.extract_diag ().map<FloatComplex>
-                                       (std::sqrt);
+        FloatComplexColumnVector tmp = m_matrix.extract_diag ().map<FloatComplex> (std::sqrt);
         FloatComplexDiagMatrix retval (tmp);
         retval.resize (m_matrix.rows (), m_matrix.columns ());
         return retval;
--- a/libinterp/octave-value/ov-flt-cx-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-flt-cx-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -79,17 +79,17 @@
 {
   octave_base_value *retval = nullptr;
 
-  if (matrix.numel () == 1)
+  if (m_matrix.numel () == 1)
     {
-      FloatComplex c = matrix (0);
+      FloatComplex c = m_matrix (0);
 
       if (c.imag () == 0.0)
         retval = new octave_float_scalar (c.real ());
       else
         retval = new octave_float_complex (c);
     }
-  else if (matrix.all_elements_are_real ())
-    retval = new octave_float_matrix (::real (matrix));
+  else if (m_matrix.all_elements_are_real ())
+    retval = new octave_float_matrix (::real (m_matrix));
 
   return retval;
 }
@@ -107,7 +107,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "complex matrix", "real scalar");
 
-  return std::real (matrix(0, 0));
+  return std::real (m_matrix(0, 0));
 }
 
 float
@@ -123,7 +123,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "complex matrix", "real scalar");
 
-  return std::real (matrix(0, 0));
+  return std::real (m_matrix(0, 0));
 }
 
 Matrix
@@ -135,7 +135,7 @@
     warn_implicit_conversion ("Octave:imag-to-real",
                               "complex matrix", "real matrix");
 
-  retval = ::real (FloatComplexMatrix (matrix));
+  retval = ::real (FloatComplexMatrix (m_matrix));
 
   return retval;
 }
@@ -149,7 +149,7 @@
     warn_implicit_conversion ("Octave:imag-to-real",
                               "complex matrix", "real matrix");
 
-  retval = ::real (FloatComplexMatrix (matrix));
+  retval = ::real (FloatComplexMatrix (m_matrix));
 
   return retval;
 }
@@ -163,7 +163,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "complex matrix", "complex scalar");
 
-  return matrix(0, 0);
+  return m_matrix(0, 0);
 }
 
 FloatComplex
@@ -179,7 +179,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "complex matrix", "complex scalar");
 
-  retval = matrix(0, 0);
+  retval = m_matrix(0, 0);
 
   return retval;
 }
@@ -187,25 +187,25 @@
 ComplexMatrix
 octave_float_complex_matrix::complex_matrix_value (bool) const
 {
-  return FloatComplexMatrix (matrix);
+  return FloatComplexMatrix (m_matrix);
 }
 
 FloatComplexMatrix
 octave_float_complex_matrix::float_complex_matrix_value (bool) const
 {
-  return FloatComplexMatrix (matrix);
+  return FloatComplexMatrix (m_matrix);
 }
 
 boolNDArray
 octave_float_complex_matrix::bool_array_value (bool warn) const
 {
-  if (matrix.any_element_is_nan ())
+  if (m_matrix.any_element_is_nan ())
     octave::err_nan_to_logical_conversion ();
-  if (warn && (! matrix.all_elements_are_real ()
-               || real (matrix).any_element_not_one_or_zero ()))
+  if (warn && (! m_matrix.all_elements_are_real ()
+               || real (m_matrix).any_element_not_one_or_zero ()))
     warn_logical_conversion ();
 
-  return mx_el_ne (matrix, FloatComplex (0.0));
+  return mx_el_ne (m_matrix, FloatComplex (0.0));
 }
 
 charNDArray
@@ -222,7 +222,7 @@
       octave_idx_type nel = numel ();
 
       for (octave_idx_type i = 0; i < nel; i++)
-        retval.elem (i) = static_cast<char> (std::real (matrix.elem (i)));
+        retval.elem (i) = static_cast<char> (std::real (m_matrix.elem (i)));
     }
 
   return retval;
@@ -231,7 +231,7 @@
 FloatComplexNDArray
 octave_float_complex_matrix::float_complex_array_value (bool) const
 {
-  return FloatComplexNDArray (matrix);
+  return FloatComplexNDArray (m_matrix);
 }
 
 SparseMatrix
@@ -257,22 +257,22 @@
 octave_value
 octave_float_complex_matrix::as_double (void) const
 {
-  return ComplexNDArray (matrix);
+  return ComplexNDArray (m_matrix);
 }
 
 octave_value
 octave_float_complex_matrix::as_single (void) const
 {
-  return matrix;
+  return m_matrix;
 }
 
 octave_value
 octave_float_complex_matrix::diag (octave_idx_type k) const
 {
   octave_value retval;
-  if (k == 0 && matrix.ndims () == 2
-      && (matrix.rows () == 1 || matrix.columns () == 1))
-    retval = FloatComplexDiagMatrix (DiagArray2<FloatComplex> (matrix));
+  if (k == 0 && m_matrix.ndims () == 2
+      && (m_matrix.rows () == 1 || m_matrix.columns () == 1))
+    retval = FloatComplexDiagMatrix (DiagArray2<FloatComplex> (m_matrix));
   else
     retval = octave_base_matrix<FloatComplexNDArray>::diag (k);
 
@@ -282,11 +282,11 @@
 octave_value
 octave_float_complex_matrix::diag (octave_idx_type m, octave_idx_type n) const
 {
-  if (matrix.ndims () != 2
-      || (matrix.rows () != 1 && matrix.columns () != 1))
+  if (m_matrix.ndims () != 2
+      || (m_matrix.rows () != 1 && m_matrix.columns () != 1))
     error ("diag: expecting vector argument");
 
-  FloatComplexMatrix mat (matrix);
+  FloatComplexMatrix mat (m_matrix);
 
   return mat.diag (m, n);
 }
@@ -366,7 +366,7 @@
       if (! is)
         error ("load: failed to load matrix constant");
 
-      matrix = tmp;
+      m_matrix = tmp;
     }
   else if (kw == "rows")
     {
@@ -383,10 +383,10 @@
           if (! is)
             error ("load: failed to load matrix constant");
 
-          matrix = tmp;
+          m_matrix = tmp;
         }
       else if (nr == 0 || nc == 0)
-        matrix = FloatComplexMatrix (nr, nc);
+        m_matrix = FloatComplexMatrix (nr, nc);
       else
         panic_impossible ();
     }
@@ -477,7 +477,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   else
     {
@@ -498,7 +498,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   return true;
 }
@@ -552,7 +552,8 @@
     }
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, octave_H5P_DEFAULT);
 #endif
@@ -603,7 +604,7 @@
   dim_vector dv;
   int empty = load_hdf5_empty (loc_id, name, dv);
   if (empty > 0)
-    matrix.resize (dv);
+    m_matrix.resize (dv);
   if (empty)
     return (empty > 0);
 
@@ -661,7 +662,7 @@
       >= 0)
     {
       retval = true;
-      matrix = m;
+      m_matrix = m;
     }
 
   H5Tclose (complex_type);
@@ -682,7 +683,7 @@
 octave_float_complex_matrix::print_raw (std::ostream& os,
                                         bool pr_as_read_syntax) const
 {
-  octave_print_internal (os, matrix, pr_as_read_syntax,
+  octave_print_internal (os, m_matrix, pr_as_read_syntax,
                          current_print_indent_level ());
 }
 
@@ -694,7 +695,7 @@
 
   mwSize nel = numel ();
 
-  const FloatComplex *pdata = matrix.data ();
+  const FloatComplex *pdata = m_matrix.data ();
 
   if (interleaved)
     {
@@ -729,20 +730,20 @@
     {
     // Mappers handled specially.
     case umap_real:
-      return ::real (matrix);
+      return ::real (m_matrix);
     case umap_imag:
-      return ::imag (matrix);
+      return ::imag (m_matrix);
     case umap_conj:
-      return ::conj (matrix);
+      return ::conj (m_matrix);
 
     // Special cases for Matlab compatibility.
     case umap_xtolower:
     case umap_xtoupper:
-      return matrix;
+      return m_matrix;
 
 #define ARRAY_METHOD_MAPPER(UMAP, FCN)        \
     case umap_ ## UMAP:                       \
-      return octave_value (matrix.FCN ())
+      return octave_value (m_matrix.FCN ())
 
     ARRAY_METHOD_MAPPER (abs, abs);
     ARRAY_METHOD_MAPPER (isnan, isnan);
@@ -751,7 +752,7 @@
 
 #define ARRAY_MAPPER(UMAP, TYPE, FCN)                 \
     case umap_ ## UMAP:                               \
-      return octave_value (matrix.map<TYPE> (FCN))
+      return octave_value (m_matrix.map<TYPE> (FCN))
 
     ARRAY_MAPPER (acos, FloatComplex, octave::math::acos);
     ARRAY_MAPPER (acosh, FloatComplex, octave::math::acosh);
--- a/libinterp/octave-value/ov-flt-cx-mat.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-flt-cx-mat.h	Tue Nov 15 13:15:28 2022 -0800
@@ -122,7 +122,7 @@
 
   FloatComplexMatrix float_complex_matrix_value (bool = false) const;
 
-  ComplexNDArray complex_array_value (bool = false) const { return matrix; }
+  ComplexNDArray complex_array_value (bool = false) const { return m_matrix; }
 
   FloatComplexNDArray float_complex_array_value (bool = false) const;
 
@@ -141,11 +141,11 @@
 
   octave_value diag (octave_idx_type m, octave_idx_type n) const;
 
-  void increment (void) { matrix += FloatComplex (1.0); }
+  void increment (void) { m_matrix += FloatComplex (1.0); }
 
-  void decrement (void) { matrix -= FloatComplex (1.0); }
+  void decrement (void) { m_matrix -= FloatComplex (1.0); }
 
-  void changesign (void) { matrix.changesign (); }
+  void changesign (void) { m_matrix.changesign (); }
 
   bool save_ascii (std::ostream& os);
 
--- a/libinterp/octave-value/ov-flt-re-diag.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-flt-re-diag.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -166,8 +166,7 @@
       return DiagMatrix (m_matrix.rows (), m_matrix.cols (), 0.0);
     case umap_sqrt:
       {
-        FloatComplexColumnVector tmp = m_matrix.extract_diag ().map<FloatComplex>
-                                       (octave::math::rc_sqrt);
+        FloatComplexColumnVector tmp = m_matrix.extract_diag ().map<FloatComplex> (octave::math::rc_sqrt);
         FloatComplexDiagMatrix retval (tmp);
         retval.resize (m_matrix.rows (), m_matrix.columns ());
         return retval;
--- a/libinterp/octave-value/ov-flt-re-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-flt-re-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -94,8 +94,8 @@
 {
   octave_base_value *retval = nullptr;
 
-  if (matrix.numel () == 1)
-    retval = new octave_float_scalar (matrix (0));
+  if (m_matrix.numel () == 1)
+    retval = new octave_float_scalar (m_matrix (0));
 
   return retval;
 }
@@ -109,7 +109,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "real matrix", "real scalar");
 
-  return matrix(0, 0);
+  return m_matrix(0, 0);
 }
 
 float
@@ -121,7 +121,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "real matrix", "real scalar");
 
-  return matrix(0, 0);
+  return m_matrix(0, 0);
 }
 
 // FIXME
@@ -129,13 +129,13 @@
 Matrix
 octave_float_matrix::matrix_value (bool) const
 {
-  return Matrix (FloatMatrix (matrix));
+  return Matrix (FloatMatrix (m_matrix));
 }
 
 FloatMatrix
 octave_float_matrix::float_matrix_value (bool) const
 {
-  return FloatMatrix (matrix);
+  return FloatMatrix (m_matrix);
 }
 
 Complex
@@ -147,7 +147,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "real matrix", "complex scalar");
 
-  return Complex (matrix(0, 0), 0);
+  return Complex (m_matrix(0, 0), 0);
 }
 
 FloatComplex
@@ -163,7 +163,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "real matrix", "complex scalar");
 
-  retval = matrix(0, 0);
+  retval = m_matrix(0, 0);
 
   return retval;
 }
@@ -173,42 +173,42 @@
 ComplexMatrix
 octave_float_matrix::complex_matrix_value (bool) const
 {
-  return ComplexMatrix (FloatMatrix (matrix));
+  return ComplexMatrix (FloatMatrix (m_matrix));
 }
 
 FloatComplexMatrix
 octave_float_matrix::float_complex_matrix_value (bool) const
 {
-  return FloatComplexMatrix (FloatMatrix (matrix));
+  return FloatComplexMatrix (FloatMatrix (m_matrix));
 }
 
 ComplexNDArray
 octave_float_matrix::complex_array_value (bool) const
 {
-  return ComplexNDArray (matrix);
+  return ComplexNDArray (m_matrix);
 }
 
 FloatComplexNDArray
 octave_float_matrix::float_complex_array_value (bool) const
 {
-  return FloatComplexNDArray (matrix);
+  return FloatComplexNDArray (m_matrix);
 }
 
 NDArray
 octave_float_matrix::array_value (bool) const
 {
-  return NDArray (matrix);
+  return NDArray (m_matrix);
 }
 
 boolNDArray
 octave_float_matrix::bool_array_value (bool warn) const
 {
-  if (matrix.any_element_is_nan ())
+  if (m_matrix.any_element_is_nan ())
     octave::err_nan_to_logical_conversion ();
-  if (warn && matrix.any_element_not_one_or_zero ())
+  if (warn && m_matrix.any_element_not_one_or_zero ())
     warn_logical_conversion ();
 
-  return boolNDArray (matrix);
+  return boolNDArray (m_matrix);
 }
 
 charNDArray
@@ -219,7 +219,7 @@
   octave_idx_type nel = numel ();
 
   for (octave_idx_type i = 0; i < nel; i++)
-    retval.elem (i) = static_cast<char> (matrix.elem (i));
+    retval.elem (i) = static_cast<char> (m_matrix.elem (i));
 
   return retval;
 }
@@ -242,70 +242,70 @@
 octave_value
 octave_float_matrix::as_double (void) const
 {
-  return NDArray (matrix);
+  return NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_single (void) const
 {
-  return FloatNDArray (matrix);
+  return FloatNDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_int8 (void) const
 {
-  return int8NDArray (matrix);
+  return int8NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_int16 (void) const
 {
-  return int16NDArray (matrix);
+  return int16NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_int32 (void) const
 {
-  return int32NDArray (matrix);
+  return int32NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_int64 (void) const
 {
-  return int64NDArray (matrix);
+  return int64NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_uint8 (void) const
 {
-  return uint8NDArray (matrix);
+  return uint8NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_uint16 (void) const
 {
-  return uint16NDArray (matrix);
+  return uint16NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_uint32 (void) const
 {
-  return uint32NDArray (matrix);
+  return uint32NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::as_uint64 (void) const
 {
-  return uint64NDArray (matrix);
+  return uint64NDArray (m_matrix);
 }
 
 octave_value
 octave_float_matrix::diag (octave_idx_type k) const
 {
   octave_value retval;
-  if (k == 0 && matrix.ndims () == 2
-      && (matrix.rows () == 1 || matrix.columns () == 1))
-    retval = FloatDiagMatrix (DiagArray2<float> (matrix));
+  if (k == 0 && m_matrix.ndims () == 2
+      && (m_matrix.rows () == 1 || m_matrix.columns () == 1))
+    retval = FloatDiagMatrix (DiagArray2<float> (m_matrix));
   else
     retval = octave_base_matrix<FloatNDArray>::diag (k);
 
@@ -315,11 +315,11 @@
 octave_value
 octave_float_matrix::diag (octave_idx_type m, octave_idx_type n) const
 {
-  if (matrix.ndims () != 2
-      || (matrix.rows () != 1 && matrix.columns () != 1))
+  if (m_matrix.ndims () != 2
+      || (m_matrix.rows () != 1 && m_matrix.columns () != 1))
     error ("diag: expecting vector argument");
 
-  FloatMatrix mat (matrix);
+  FloatMatrix mat (m_matrix);
 
   return mat.diag (m, n);
 }
@@ -339,7 +339,7 @@
     {
       octave_quit ();
 
-      float d = matrix(i);
+      float d = m_matrix(i);
 
       if (octave::math::isnan (d))
         octave::err_nan_to_character_conversion ();
@@ -442,7 +442,7 @@
       if (! is)
         error ("load: failed to load matrix constant");
 
-      matrix = tmp;
+      m_matrix = tmp;
     }
   else if (kw == "rows")
     {
@@ -459,10 +459,10 @@
           if (! is)
             error ("load: failed to load matrix constant");
 
-          matrix = tmp;
+          m_matrix = tmp;
         }
       else if (nr == 0 || nc == 0)
-        matrix = FloatMatrix (nr, nc);
+        m_matrix = FloatMatrix (nr, nc);
       else
         panic_impossible ();
     }
@@ -552,7 +552,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   else
     {
@@ -572,7 +572,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   return true;
 }
@@ -619,7 +619,8 @@
 #endif
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid,
                         octave_H5P_DEFAULT);
@@ -657,7 +658,7 @@
   dim_vector dv;
   int empty = load_hdf5_empty (loc_id, name, dv);
   if (empty > 0)
-    matrix.resize (dv);
+    m_matrix.resize (dv);
   if (empty)
     return (empty > 0);
 
@@ -702,7 +703,7 @@
                octave_H5P_DEFAULT, re) >= 0)
     {
       retval = true;
-      matrix = m;
+      m_matrix = m;
     }
 
   H5Sclose (space_id);
@@ -722,7 +723,7 @@
 octave_float_matrix::print_raw (std::ostream& os,
                                 bool pr_as_read_syntax) const
 {
-  octave_print_internal (os, matrix, pr_as_read_syntax,
+  octave_print_internal (os, m_matrix, pr_as_read_syntax,
                          current_print_indent_level ());
 }
 
@@ -735,7 +736,7 @@
 
   mwSize nel = numel ();
 
-  const float *pdata = matrix.data ();
+  const float *pdata = m_matrix.data ();
 
   for (mwIndex i = 0; i < nel; i++)
     pd[i] = pdata[i];
@@ -788,16 +789,16 @@
   switch (umap)
     {
     case umap_imag:
-      return FloatNDArray (matrix.dims (), 0.0);
+      return FloatNDArray (m_matrix.dims (), 0.0);
 
     case umap_real:
     case umap_conj:
-      return matrix;
+      return m_matrix;
 
     // Mappers handled specially.
 #define ARRAY_METHOD_MAPPER(UMAP, FCN)        \
     case umap_ ## UMAP:                       \
-      return octave_value (matrix.FCN ())
+      return octave_value (m_matrix.FCN ())
 
     ARRAY_METHOD_MAPPER (abs, abs);
     ARRAY_METHOD_MAPPER (isnan, isnan);
@@ -806,11 +807,11 @@
 
 #define ARRAY_MAPPER(UMAP, TYPE, FCN)                 \
     case umap_ ## UMAP:                               \
-      return octave_value (matrix.map<TYPE> (FCN))
+      return octave_value (m_matrix.map<TYPE> (FCN))
 
 #define RC_ARRAY_MAPPER(UMAP, TYPE, FCN)      \
     case umap_ ## UMAP:                       \
-      return do_rc_map (matrix, FCN)
+      return do_rc_map (m_matrix, FCN)
 
     RC_ARRAY_MAPPER (acos, FloatComplex, octave::math::rc_acos);
     RC_ARRAY_MAPPER (acosh, FloatComplex, octave::math::rc_acosh);
@@ -855,7 +856,7 @@
     // Special cases for Matlab compatibility.
     case umap_xtolower:
     case umap_xtoupper:
-      return matrix;
+      return m_matrix;
 
     case umap_xisalnum:
     case umap_xisalpha:
--- a/libinterp/octave-value/ov-flt-re-mat.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-flt-re-mat.h	Tue Nov 15 13:15:28 2022 -0800
@@ -92,7 +92,8 @@
 
   octave::idx_vector index_vector (bool /* require_integers */ = false) const
   {
-    return idx_cache ? *idx_cache : set_idx_cache (octave::idx_vector (matrix));
+    return m_idx_cache ? *m_idx_cache
+                       : set_idx_cache (octave::idx_vector (m_matrix));
   }
 
   builtin_type_t builtin_type (void) const { return btyp_float; }
@@ -106,28 +107,28 @@
   bool isfloat (void) const { return true; }
 
   int8NDArray
-  int8_array_value (void) const { return int8NDArray (matrix); }
+  int8_array_value (void) const { return int8NDArray (m_matrix); }
 
   int16NDArray
-  int16_array_value (void) const { return int16NDArray (matrix); }
+  int16_array_value (void) const { return int16NDArray (m_matrix); }
 
   int32NDArray
-  int32_array_value (void) const { return int32NDArray (matrix); }
+  int32_array_value (void) const { return int32NDArray (m_matrix); }
 
   int64NDArray
-  int64_array_value (void) const { return int64NDArray (matrix); }
+  int64_array_value (void) const { return int64NDArray (m_matrix); }
 
   uint8NDArray
-  uint8_array_value (void) const { return uint8NDArray (matrix); }
+  uint8_array_value (void) const { return uint8NDArray (m_matrix); }
 
   uint16NDArray
-  uint16_array_value (void) const { return uint16NDArray (matrix); }
+  uint16_array_value (void) const { return uint16NDArray (m_matrix); }
 
   uint32NDArray
-  uint32_array_value (void) const { return uint32NDArray (matrix); }
+  uint32_array_value (void) const { return uint32NDArray (m_matrix); }
 
   uint64NDArray
-  uint64_array_value (void) const { return uint64NDArray (matrix); }
+  uint64_array_value (void) const { return uint64NDArray (m_matrix); }
 
   double double_value (bool = false) const;
 
@@ -161,7 +162,7 @@
 
   NDArray array_value (bool = false) const;
 
-  FloatNDArray float_array_value (bool = false) const { return matrix; }
+  FloatNDArray float_array_value (bool = false) const { return m_matrix; }
 
   SparseMatrix sparse_matrix_value (bool = false) const;
 
@@ -211,7 +212,7 @@
   int write (octave::stream& os, int block_size,
              oct_data_conv::data_type output_type, int skip,
              octave::mach_info::float_format flt_fmt) const
-  { return os.write (matrix, block_size, output_type, skip, flt_fmt); }
+  { return os.write (m_matrix, block_size, output_type, skip, flt_fmt); }
 
   mxArray * as_mxArray (bool interleaved) const;
 
--- a/libinterp/octave-value/ov-int16.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-int16.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -56,8 +56,8 @@
 #include "ls-utils.h"
 #include "ls-hdf5.h"
 
-octave_hdf5_id octave_int16_matrix::hdf5_save_type = HDF5_SAVE_TYPE;
-octave_hdf5_id octave_int16_scalar::hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_int16_matrix::s_hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_int16_scalar::s_hdf5_save_type = HDF5_SAVE_TYPE;
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
--- a/libinterp/octave-value/ov-int32.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-int32.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -56,8 +56,8 @@
 #include "ls-utils.h"
 #include "ls-hdf5.h"
 
-octave_hdf5_id octave_int32_matrix::hdf5_save_type = HDF5_SAVE_TYPE;
-octave_hdf5_id octave_int32_scalar::hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_int32_matrix::s_hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_int32_scalar::s_hdf5_save_type = HDF5_SAVE_TYPE;
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
--- a/libinterp/octave-value/ov-int64.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-int64.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -56,8 +56,8 @@
 #include "ls-utils.h"
 #include "ls-hdf5.h"
 
-octave_hdf5_id octave_int64_matrix::hdf5_save_type = HDF5_SAVE_TYPE;
-octave_hdf5_id octave_int64_scalar::hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_int64_matrix::s_hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_int64_scalar::s_hdf5_save_type = HDF5_SAVE_TYPE;
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
--- a/libinterp/octave-value/ov-int8.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-int8.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -56,8 +56,8 @@
 #include "ls-utils.h"
 #include "ls-hdf5.h"
 
-octave_hdf5_id octave_int8_matrix::hdf5_save_type = HDF5_SAVE_TYPE;
-octave_hdf5_id octave_int8_scalar::hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_int8_matrix::s_hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_int8_scalar::s_hdf5_save_type = HDF5_SAVE_TYPE;
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
--- a/libinterp/octave-value/ov-intx.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-intx.h	Tue Nov 15 13:15:28 2022 -0800
@@ -83,28 +83,28 @@
 public:
 
   int8NDArray
-  int8_array_value (void) const { return int8NDArray (matrix); }
+  int8_array_value (void) const { return int8NDArray (m_matrix); }
 
   int16NDArray
-  int16_array_value (void) const { return int16NDArray (matrix); }
+  int16_array_value (void) const { return int16NDArray (m_matrix); }
 
   int32NDArray
-  int32_array_value (void) const { return int32NDArray (matrix); }
+  int32_array_value (void) const { return int32NDArray (m_matrix); }
 
   int64NDArray
-  int64_array_value (void) const { return int64NDArray (matrix); }
+  int64_array_value (void) const { return int64NDArray (m_matrix); }
 
   uint8NDArray
-  uint8_array_value (void) const { return uint8NDArray (matrix); }
+  uint8_array_value (void) const { return uint8NDArray (m_matrix); }
 
   uint16NDArray
-  uint16_array_value (void) const { return uint16NDArray (matrix); }
+  uint16_array_value (void) const { return uint16NDArray (m_matrix); }
 
   uint32NDArray
-  uint32_array_value (void) const { return uint32NDArray (matrix); }
+  uint32_array_value (void) const { return uint32NDArray (m_matrix); }
 
   uint64NDArray
-  uint64_array_value (void) const { return uint64NDArray (matrix); }
+  uint64_array_value (void) const { return uint64NDArray (m_matrix); }
 
   double
   double_value (bool = false) const
@@ -117,7 +117,7 @@
     warn_implicit_conversion ("Octave:array-to-scalar",
                               type_name (), "real scalar");
 
-    retval = matrix(0).double_value ();
+    retval = m_matrix(0).double_value ();
 
     return retval;
   }
@@ -133,7 +133,7 @@
     warn_implicit_conversion ("Octave:array-to-scalar",
                               type_name (), "real scalar");
 
-    retval = matrix(0).float_value ();
+    retval = m_matrix(0).float_value ();
 
     return retval;
   }
@@ -152,9 +152,9 @@
 
     retval = Matrix (dv(0), dv(1));
     double *vec = retval.fortran_vec ();
-    octave_idx_type nel = matrix.numel ();
+    octave_idx_type nel = m_matrix.numel ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = matrix(i).double_value ();
+      vec[i] = m_matrix(i).double_value ();
 
     return retval;
   }
@@ -169,9 +169,9 @@
 
     retval = FloatMatrix (dv(0), dv(1));
     float *vec = retval.fortran_vec ();
-    octave_idx_type nel = matrix.numel ();
+    octave_idx_type nel = m_matrix.numel ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = matrix(i).float_value ();
+      vec[i] = m_matrix(i).float_value ();
 
     return retval;
   }
@@ -186,9 +186,9 @@
 
     retval = ComplexMatrix (dv(0), dv(1));
     Complex *vec = retval.fortran_vec ();
-    octave_idx_type nel = matrix.numel ();
+    octave_idx_type nel = m_matrix.numel ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = Complex (matrix(i).double_value ());
+      vec[i] = Complex (m_matrix(i).double_value ());
 
     return retval;
   }
@@ -203,9 +203,9 @@
 
     retval = FloatComplexMatrix (dv(0), dv(1));
     FloatComplex *vec = retval.fortran_vec ();
-    octave_idx_type nel = matrix.numel ();
+    octave_idx_type nel = m_matrix.numel ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = FloatComplex (matrix(i).float_value ());
+      vec[i] = FloatComplex (m_matrix(i).float_value ());
 
     return retval;
   }
@@ -213,44 +213,44 @@
   NDArray
   array_value (bool = false) const
   {
-    NDArray retval (matrix.dims ());
+    NDArray retval (m_matrix.dims ());
     double *vec = retval.fortran_vec ();
-    octave_idx_type nel = matrix.numel ();
+    octave_idx_type nel = m_matrix.numel ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = matrix(i).double_value ();
+      vec[i] = m_matrix(i).double_value ();
     return retval;
   }
 
   FloatNDArray
   float_array_value (bool = false) const
   {
-    FloatNDArray retval (matrix.dims ());
+    FloatNDArray retval (m_matrix.dims ());
     float *vec = retval.fortran_vec ();
-    octave_idx_type nel = matrix.numel ();
+    octave_idx_type nel = m_matrix.numel ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = matrix(i).float_value ();
+      vec[i] = m_matrix(i).float_value ();
     return retval;
   }
 
   ComplexNDArray
   complex_array_value (bool = false) const
   {
-    ComplexNDArray retval (matrix.dims ());
+    ComplexNDArray retval (m_matrix.dims ());
     Complex *vec = retval.fortran_vec ();
-    octave_idx_type nel = matrix.numel ();
+    octave_idx_type nel = m_matrix.numel ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = Complex (matrix(i).double_value ());
+      vec[i] = Complex (m_matrix(i).double_value ());
     return retval;
   }
 
   FloatComplexNDArray
   float_complex_array_value (bool = false) const
   {
-    FloatComplexNDArray retval (matrix.dims ());
+    FloatComplexNDArray retval (m_matrix.dims ());
     FloatComplex *vec = retval.fortran_vec ();
-    octave_idx_type nel = matrix.numel ();
+    octave_idx_type nel = m_matrix.numel ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = FloatComplex (matrix(i).float_value ());
+      vec[i] = FloatComplex (m_matrix(i).float_value ());
     return retval;
   }
 
@@ -261,12 +261,12 @@
 
     octave_idx_type nel = numel ();
 
-    if (warn && matrix.any_element_not_one_or_zero ())
+    if (warn && m_matrix.any_element_not_one_or_zero ())
       warn_logical_conversion ();
 
     bool *vec = retval.fortran_vec ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = matrix(i).bool_value ();
+      vec[i] = m_matrix(i).bool_value ();
 
     return retval;
   }
@@ -280,7 +280,7 @@
 
     char *vec = retval.fortran_vec ();
     for (octave_idx_type i = 0; i < nel; i++)
-      vec[i] = matrix(i).char_value ();
+      vec[i] = m_matrix(i).char_value ();
 
     return retval;
   }
@@ -303,13 +303,14 @@
 
   octave::idx_vector index_vector (bool /* require_integers */ = false) const
   {
-    return idx_cache ? *idx_cache : set_idx_cache (octave::idx_vector (matrix));
+    return m_idx_cache ? *m_idx_cache
+                       : set_idx_cache (octave::idx_vector (m_matrix));
   }
 
   int write (octave::stream& os, int block_size,
              oct_data_conv::data_type output_type, int skip,
              octave::mach_info::float_format flt_fmt) const
-  { return os.write (matrix, block_size, output_type, skip, flt_fmt); }
+  { return os.write (m_matrix, block_size, output_type, skip, flt_fmt); }
 
   mxArray * as_mxArray (bool interleaved) const
   {
@@ -321,7 +322,7 @@
 
     mwSize nel = numel ();
 
-    const OCTAVE_INT_T *pdata = matrix.data ();
+    const OCTAVE_INT_T *pdata = m_matrix.data ();
 
     for (mwIndex i = 0; i < nel; i++)
       pd[i] = pdata[i].value ();
@@ -334,29 +335,29 @@
     switch (umap)
       {
       case umap_abs:
-        return matrix.abs ();
+        return m_matrix.abs ();
       case umap_signum:
-        return matrix.signum ();
+        return m_matrix.signum ();
       case umap_ceil:
       case umap_conj:
       case umap_fix:
       case umap_floor:
       case umap_real:
       case umap_round:
-        return matrix;
+        return m_matrix;
       case umap_imag:
-        return intNDArray<OCTAVE_INT_T> (matrix.dims (), OCTAVE_INT_T ());
+        return intNDArray<OCTAVE_INT_T> (m_matrix.dims (), OCTAVE_INT_T ());
       case umap_isnan:
       case umap_isna:
       case umap_isinf:
-        return boolNDArray (matrix.dims (), false);
+        return boolNDArray (m_matrix.dims (), false);
       case umap_isfinite:
-        return boolNDArray (matrix.dims (), true);
+        return boolNDArray (m_matrix.dims (), true);
 
       // Special cases for Matlab compatibility.
       case umap_xtolower:
       case umap_xtoupper:
-        return matrix;
+        return m_matrix;
 
       default:
         {
@@ -370,17 +371,17 @@
 
   bool save_hdf5 (octave_hdf5_id loc_id, const char *name, bool flag)
   {
-    return save_hdf5_internal (loc_id, hdf5_save_type, name, flag);
+    return save_hdf5_internal (loc_id, s_hdf5_save_type, name, flag);
   }
 
   bool load_hdf5 (octave_hdf5_id loc_id, const char *name)
   {
-    return load_hdf5_internal (loc_id, hdf5_save_type, name);
+    return load_hdf5_internal (loc_id, s_hdf5_save_type, name);
   }
 
 private:
 
-  static octave_hdf5_id hdf5_save_type;
+  static octave_hdf5_id s_hdf5_save_type;
 
   DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA
 };
@@ -683,17 +684,17 @@
 
   bool save_hdf5 (octave_hdf5_id loc_id, const char *name, bool flag)
   {
-    return save_hdf5_internal (loc_id, hdf5_save_type, name, flag);
+    return save_hdf5_internal (loc_id, s_hdf5_save_type, name, flag);
   }
 
   bool load_hdf5 (octave_hdf5_id loc_id, const char *name)
   {
-    return load_hdf5_internal (loc_id, hdf5_save_type, name);
+    return load_hdf5_internal (loc_id, s_hdf5_save_type, name);
   }
 
 private:
 
-  static octave_hdf5_id hdf5_save_type;
+  static octave_hdf5_id s_hdf5_save_type;
 
   DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA
 };
--- a/libinterp/octave-value/ov-java.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-java.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1265,7 +1265,8 @@
 }
 
 static octave_value
-convert_to_string (JNIEnv *jni_env, jobject m_java_object, bool force, char type)
+convert_to_string (JNIEnv *jni_env, jobject m_java_object, bool force,
+                   char type)
 {
   octave_value retval;
 
@@ -1274,7 +1275,8 @@
       jclass_ref cls (jni_env, jni_env->FindClass ("java/lang/String"));
 
       if (jni_env->IsInstanceOf (m_java_object, cls))
-        retval = octave_value (jstring_to_string (jni_env, m_java_object), type);
+        retval = octave_value (jstring_to_string (jni_env, m_java_object),
+                               type);
       else if (force)
         {
           cls = jni_env->FindClass ("[Ljava/lang/String;");
@@ -2026,10 +2028,10 @@
 }
 
 JNIEXPORT jboolean JNICALL
-Java_org_octave_Octave_call (JNIEnv *env, jclass, jstring funcName,
+Java_org_octave_Octave_call (JNIEnv *env, jclass, jstring fcnName,
                              jobjectArray argin, jobjectArray argout)
 {
-  std::string fname = jstring_to_string (env, funcName);
+  std::string fname = jstring_to_string (env, fcnName);
 
   int nargout = env->GetArrayLength (argout);
   int nargin = env->GetArrayLength (argin);
@@ -2095,8 +2097,7 @@
 JNIEXPORT void JNICALL
 Java_org_octave_Octave_doEvalString (JNIEnv *env, jclass, jstring cmd)
 {
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("Java_org_octave_Octave_doEvalString");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   std::string s = jstring_to_string (env, cmd);
   int pstatus;
@@ -2366,7 +2367,8 @@
   JNIEnv *current_env = thread_jni_env ();
 
   if (current_env)
-    return convert_to_string (current_env, TO_JOBJECT (to_java ()), force, type);
+    return convert_to_string (current_env, TO_JOBJECT (to_java ()), force,
+                              type);
   else
     return octave_value ("");
 
@@ -3034,10 +3036,14 @@
 
 DEFUN (__java_init__, , ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __java_init__ ()
-Internal function used @strong{only} when debugging Java interface.
-
-Function will directly call initialize_java to create an instance of a JVM.
+@deftypefn {} {@var{status} =} __java_init__ ()
+Internal function used @strong{only} when debugging the Java interface.
+
+This function will directly call @code{initialize_java} to create an instance
+of a JVM.
+
+The return variable @var{status} is 1 if the Java interface has been created,
+and 0 otherwise.
 @end deftypefn */)
 {
 #if defined (HAVE_JAVA)
@@ -3062,8 +3068,7 @@
 @deftypefn {} {} __java_exit__ ()
 Internal function used @strong{only} when debugging Java interface.
 
-Function will directly call terminate_jvm to destroy the current JVM
-instance.
+Function will directly call terminate_jvm to destroy the current JVM instance.
 @end deftypefn */)
 {
 #if defined (HAVE_JAVA)
@@ -3334,7 +3339,7 @@
 
 DEFUN (__java2mat__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} __java2mat__ (@var{javaobj})
+@deftypefn {} {@var{mat} =} __java2mat__ (@var{javaobj})
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -3372,7 +3377,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} java_matrix_autoconversion ()
 @deftypefnx {} {@var{old_val} =} java_matrix_autoconversion (@var{new_val})
-@deftypefnx {} {} java_matrix_autoconversion (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} java_matrix_autoconversion (@var{new_val}, "local")
 Query or set the internal variable that controls whether Java arrays are
 automatically converted to Octave matrices.
 
@@ -3403,7 +3408,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} java_unsigned_autoconversion ()
 @deftypefnx {} {@var{old_val} =} java_unsigned_autoconversion (@var{new_val})
-@deftypefnx {} {} java_unsigned_autoconversion (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} java_unsigned_autoconversion (@var{new_val}, "local")
 Query or set the internal variable that controls how integer classes are
 converted when @code{java_matrix_autoconversion} is enabled.
 
@@ -3435,7 +3440,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} debug_java ()
 @deftypefnx {} {@var{old_val} =} debug_java (@var{new_val})
-@deftypefnx {} {} debug_java (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} debug_java (@var{new_val}, "local")
 Query or set the internal variable that determines whether extra debugging
 information regarding the initialization of the JVM and any Java exceptions
 is printed.
@@ -3466,7 +3471,7 @@
 
 DEFUN (isjava, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isjava (@var{x})
+@deftypefn {} {@var{tf} =} isjava (@var{x})
 Return true if @var{x} is a Java object.
 @seealso{class, typeinfo, isa, javaObject}
 @end deftypefn */)
@@ -3494,14 +3499,22 @@
 
 ## Check we can create objects that wrap java literals
 %!testif HAVE_JAVA; usejava ("jvm") <*38821>
-%! assert (class (javaObject ("java.lang.Byte",     uint8 (1))), "java.lang.Byte");
-%! assert (class (javaObject ("java.lang.Byte",      int8 (1))), "java.lang.Byte");
-%! assert (class (javaObject ("java.lang.Short",   uint16 (1))), "java.lang.Short");
-%! assert (class (javaObject ("java.lang.Short",    int16 (1))), "java.lang.Short");
-%! assert (class (javaObject ("java.lang.Integer", uint32 (1))), "java.lang.Integer");
-%! assert (class (javaObject ("java.lang.Integer",  int32 (1))), "java.lang.Integer");
-%! assert (class (javaObject ("java.lang.Long",    uint64 (1))), "java.lang.Long");
-%! assert (class (javaObject ("java.lang.Long",     int64 (1))), "java.lang.Long");
+%! assert (class (javaObject ("java.lang.Byte",     uint8 (1))),
+%!         "java.lang.Byte");
+%! assert (class (javaObject ("java.lang.Byte",      int8 (1))),
+%!         "java.lang.Byte");
+%! assert (class (javaObject ("java.lang.Short",   uint16 (1))),
+%!         "java.lang.Short");
+%! assert (class (javaObject ("java.lang.Short",    int16 (1))),
+%!         "java.lang.Short");
+%! assert (class (javaObject ("java.lang.Integer", uint32 (1))),
+%!         "java.lang.Integer");
+%! assert (class (javaObject ("java.lang.Integer",  int32 (1))),
+%!         "java.lang.Integer");
+%! assert (class (javaObject ("java.lang.Long",    uint64 (1))),
+%!         "java.lang.Long");
+%! assert (class (javaObject ("java.lang.Long",     int64 (1))),
+%!         "java.lang.Long");
 
 ## More checks of java numeric and boolean class instances
 %!testif HAVE_JAVA; usejava ("jvm")
@@ -3559,8 +3572,10 @@
 %! assert (javaMethod ("valueOf", "java.lang.Long",    int64 (1)), 1)
 %! assert (javaMethod ("valueOf", "java.lang.Float",  single (1)), 1)
 %! assert (javaMethod ("valueOf", "java.lang.Double", double (1)), 1)
-%! assert (class (javaMethod ("valueOf", "java.math.BigDecimal", double (1))), "java.math.BigDecimal")
-%! assert (class (javaMethod ("valueOf", "java.math.BigInteger",  int64 (1))), "java.math.BigInteger")
+%! assert (class (javaMethod ("valueOf", "java.math.BigDecimal", double (1))),
+%!         "java.math.BigDecimal")
+%! assert (class (javaMethod ("valueOf", "java.math.BigInteger",  int64 (1))),
+%!         "java.math.BigInteger")
 
 ## Automatic conversion from string cell array into String[]
 %!testif HAVE_JAVA; usejava ("jvm") <*45290>
--- a/libinterp/octave-value/ov-lazy-idx.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-lazy-idx.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -99,7 +99,8 @@
 octave_value
 octave_lazy_index::squeeze (void) const
 {
-  return octave::idx_vector (m_index.as_array ().squeeze (), m_index.extent (0));
+  return octave::idx_vector (m_index.as_array ().squeeze (),
+                             m_index.extent (0));
 }
 
 octave_value
--- a/libinterp/octave-value/ov-lazy-idx.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-lazy-idx.h	Tue Nov 15 13:15:28 2022 -0800
@@ -60,7 +60,8 @@
 
   octave_value fast_elem_extract (octave_idx_type n) const;
 
-  std::size_t byte_size (void) const { return numel () * sizeof (octave_idx_type); }
+  std::size_t byte_size (void) const
+  { return numel () * sizeof (octave_idx_type); }
 
   octave_value squeeze (void) const;
 
--- a/libinterp/octave-value/ov-mex-fcn.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-mex-fcn.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -73,8 +73,7 @@
   if (m_exit_fcn_ptr)
     (*m_exit_fcn_ptr) ();
 
-  octave::dynamic_loader& dyn_loader
-    = octave::__get_dynamic_loader__ ("~octave_mex_function");
+  octave::dynamic_loader& dyn_loader = octave::__get_dynamic_loader__ ();
 
   dyn_loader.remove_mex (m_name, m_sh_lib);
 }
@@ -91,25 +90,9 @@
   return m_sh_lib.time_loaded ();
 }
 
-// FIXME: shouldn't this declaration be a header file somewhere?
-extern octave_value_list
-call_mex (octave_mex_function& curr_mex_fcn, const octave_value_list& args,
-          int nargout);
-
 octave_value_list
 octave_mex_function::execute (octave::tree_evaluator& tw, int nargout,
                               const octave_value_list& args)
 {
-  octave_value_list retval;
-
-  if (args.has_magic_colon ())
-    error ("invalid use of colon in function argument list");
-
-  octave::profiler& profiler = tw.get_profiler ();
-
-  octave::profiler::enter<octave_mex_function> block (profiler, *this);
-
-  retval = call_mex (*this, args, nargout);
-
-  return retval;
+  return tw.execute_mex_function (*this, nargout, args);
 }
--- a/libinterp/octave-value/ov-mex-fcn.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-mex-fcn.h	Tue Nov 15 13:15:28 2022 -0800
@@ -63,9 +63,9 @@
 
   // No copying!
 
-  octave_mex_function (const octave_mex_function& fn) = delete;
+  octave_mex_function (const octave_mex_function& fcn) = delete;
 
-  octave_mex_function& operator = (const octave_mex_function& fn) = delete;
+  octave_mex_function& operator = (const octave_mex_function& fcn) = delete;
 
   ~octave_mex_function (void);
 
--- a/libinterp/octave-value/ov-null-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-null-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -100,7 +100,7 @@
 
 DEFUN (isnull, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isnull (@var{x})
+@deftypefn {} {@var{tf} =} isnull (@var{x})
 Return true if @var{x} is a special null matrix, string, or single quoted
 string.
 
--- a/libinterp/octave-value/ov-oncleanup.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-oncleanup.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -164,8 +164,7 @@
   frame.protect_var (quit_allowed);
   quit_allowed = false;
 
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("octave_oncleanup::call_object_destructor");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   octave::interpreter_try (frame);
 
--- a/libinterp/octave-value/ov-range.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-range.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1079,7 +1079,8 @@
     }
 #  if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #  else
   data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, octave_H5P_DEFAULT);
 #  endif
--- a/libinterp/octave-value/ov-re-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-re-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -110,8 +110,8 @@
 {
   octave_base_value *retval = nullptr;
 
-  if (matrix.numel () == 1)
-    retval = new octave_scalar (matrix (0));
+  if (m_matrix.numel () == 1)
+    retval = new octave_scalar (m_matrix (0));
 
   return retval;
 }
@@ -125,7 +125,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "real matrix", "real scalar");
 
-  return matrix(0, 0);
+  return m_matrix(0, 0);
 }
 
 float
@@ -137,7 +137,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "real matrix", "real scalar");
 
-  return matrix(0, 0);
+  return m_matrix(0, 0);
 }
 
 // FIXME
@@ -145,13 +145,13 @@
 Matrix
 octave_matrix::matrix_value (bool) const
 {
-  return Matrix (matrix);
+  return Matrix (m_matrix);
 }
 
 FloatMatrix
 octave_matrix::float_matrix_value (bool) const
 {
-  return FloatMatrix (Matrix (matrix));
+  return FloatMatrix (Matrix (m_matrix));
 }
 
 Complex
@@ -163,7 +163,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "real matrix", "complex scalar");
 
-  return Complex (matrix(0, 0), 0);
+  return Complex (m_matrix(0, 0), 0);
 }
 
 FloatComplex
@@ -179,7 +179,7 @@
   warn_implicit_conversion ("Octave:array-to-scalar",
                             "real matrix", "complex scalar");
 
-  retval = matrix(0, 0);
+  retval = m_matrix(0, 0);
 
   return retval;
 }
@@ -189,36 +189,36 @@
 ComplexMatrix
 octave_matrix::complex_matrix_value (bool) const
 {
-  return ComplexMatrix (Matrix (matrix));
+  return ComplexMatrix (Matrix (m_matrix));
 }
 
 FloatComplexMatrix
 octave_matrix::float_complex_matrix_value (bool) const
 {
-  return FloatComplexMatrix (Matrix (matrix));
+  return FloatComplexMatrix (Matrix (m_matrix));
 }
 
 ComplexNDArray
 octave_matrix::complex_array_value (bool) const
 {
-  return ComplexNDArray (matrix);
+  return ComplexNDArray (m_matrix);
 }
 
 FloatComplexNDArray
 octave_matrix::float_complex_array_value (bool) const
 {
-  return FloatComplexNDArray (matrix);
+  return FloatComplexNDArray (m_matrix);
 }
 
 boolNDArray
 octave_matrix::bool_array_value (bool warn) const
 {
-  if (matrix.any_element_is_nan ())
+  if (m_matrix.any_element_is_nan ())
     octave::err_nan_to_logical_conversion ();
-  if (warn && matrix.any_element_not_one_or_zero ())
+  if (warn && m_matrix.any_element_not_one_or_zero ())
     warn_logical_conversion ();
 
-  return boolNDArray (matrix);
+  return boolNDArray (m_matrix);
 }
 
 charNDArray
@@ -229,7 +229,7 @@
   octave_idx_type nel = numel ();
 
   for (octave_idx_type i = 0; i < nel; i++)
-    retval.elem (i) = static_cast<char> (matrix.elem (i));
+    retval.elem (i) = static_cast<char> (m_matrix.elem (i));
 
   return retval;
 }
@@ -237,7 +237,7 @@
 SparseMatrix
 octave_matrix::sparse_matrix_value (bool) const
 {
-  return SparseMatrix (Matrix (matrix));
+  return SparseMatrix (Matrix (m_matrix));
 }
 
 SparseComplexMatrix
@@ -252,70 +252,70 @@
 octave_value
 octave_matrix::as_double (void) const
 {
-  return NDArray (matrix);
+  return NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_single (void) const
 {
-  return FloatNDArray (matrix);
+  return FloatNDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_int8 (void) const
 {
-  return int8NDArray (matrix);
+  return int8NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_int16 (void) const
 {
-  return int16NDArray (matrix);
+  return int16NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_int32 (void) const
 {
-  return int32NDArray (matrix);
+  return int32NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_int64 (void) const
 {
-  return int64NDArray (matrix);
+  return int64NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_uint8 (void) const
 {
-  return uint8NDArray (matrix);
+  return uint8NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_uint16 (void) const
 {
-  return uint16NDArray (matrix);
+  return uint16NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_uint32 (void) const
 {
-  return uint32NDArray (matrix);
+  return uint32NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::as_uint64 (void) const
 {
-  return uint64NDArray (matrix);
+  return uint64NDArray (m_matrix);
 }
 
 octave_value
 octave_matrix::diag (octave_idx_type k) const
 {
   octave_value retval;
-  if (k == 0 && matrix.ndims () == 2
-      && (matrix.rows () == 1 || matrix.columns () == 1))
-    retval = DiagMatrix (DiagArray2<double> (matrix));
+  if (k == 0 && m_matrix.ndims () == 2
+      && (m_matrix.rows () == 1 || m_matrix.columns () == 1))
+    retval = DiagMatrix (DiagArray2<double> (m_matrix));
   else
     retval = octave_base_matrix<NDArray>::diag (k);
 
@@ -325,11 +325,11 @@
 octave_value
 octave_matrix::diag (octave_idx_type m, octave_idx_type n) const
 {
-  if (matrix.ndims () != 2
-      || (matrix.rows () != 1 && matrix.columns () != 1))
+  if (m_matrix.ndims () != 2
+      || (m_matrix.rows () != 1 && m_matrix.columns () != 1))
     error ("diag: expecting vector argument");
 
-  Matrix mat (matrix);
+  Matrix mat (m_matrix);
 
   return mat.diag (m, n);
 }
@@ -339,11 +339,11 @@
 octave_value
 octave_matrix::reshape (const dim_vector& new_dims) const
 {
-  if (idx_cache)
+  if (m_idx_cache)
     {
-      return new octave_matrix (matrix.reshape (new_dims),
-                                octave::idx_vector (idx_cache->as_array ().reshape (new_dims),
-                                                    idx_cache->extent (0)));
+      return new octave_matrix (m_matrix.reshape (new_dims),
+                                octave::idx_vector (m_idx_cache->as_array ().reshape (new_dims),
+                                                    m_idx_cache->extent (0)));
     }
   else
     return octave_base_matrix<NDArray>::reshape (new_dims);
@@ -352,11 +352,11 @@
 octave_value
 octave_matrix::squeeze (void) const
 {
-  if (idx_cache)
+  if (m_idx_cache)
     {
-      return new octave_matrix (matrix.squeeze (),
-                                octave::idx_vector (idx_cache->as_array ().squeeze (),
-                                                    idx_cache->extent (0)));
+      return new octave_matrix (m_matrix.squeeze (),
+                                octave::idx_vector (m_idx_cache->as_array ().squeeze (),
+                                                    m_idx_cache->extent (0)));
     }
   else
     return octave_base_matrix<NDArray>::squeeze ();
@@ -365,11 +365,11 @@
 octave_value
 octave_matrix::sort (octave_idx_type dim, sortmode mode) const
 {
-  if (idx_cache)
+  if (m_idx_cache)
     {
       // This is a valid index matrix, so sort via integers because it's
       // generally more efficient.
-      return octave_lazy_index (*idx_cache).sort (dim, mode);
+      return octave_lazy_index (*m_idx_cache).sort (dim, mode);
     }
   else
     return octave_base_matrix<NDArray>::sort (dim, mode);
@@ -379,11 +379,11 @@
 octave_matrix::sort (Array<octave_idx_type>& sidx, octave_idx_type dim,
                      sortmode mode) const
 {
-  if (idx_cache)
+  if (m_idx_cache)
     {
       // This is a valid index matrix, so sort via integers because it's
       // generally more efficient.
-      return octave_lazy_index (*idx_cache).sort (sidx, dim, mode);
+      return octave_lazy_index (*m_idx_cache).sort (sidx, dim, mode);
     }
   else
     return octave_base_matrix<NDArray>::sort (sidx, dim, mode);
@@ -392,11 +392,11 @@
 sortmode
 octave_matrix::issorted (sortmode mode) const
 {
-  if (idx_cache)
+  if (m_idx_cache)
     {
       // This is a valid index matrix, so check via integers because it's
       // generally more efficient.
-      return idx_cache->as_array ().issorted (mode);
+      return m_idx_cache->as_array ().issorted (mode);
     }
   else
     return octave_base_matrix<NDArray>::issorted (mode);
@@ -404,11 +404,11 @@
 Array<octave_idx_type>
 octave_matrix::sort_rows_idx (sortmode mode) const
 {
-  if (idx_cache)
+  if (m_idx_cache)
     {
       // This is a valid index matrix, so sort via integers because it's
       // generally more efficient.
-      return octave_lazy_index (*idx_cache).sort_rows_idx (mode);
+      return octave_lazy_index (*m_idx_cache).sort_rows_idx (mode);
     }
   else
     return octave_base_matrix<NDArray>::sort_rows_idx (mode);
@@ -417,11 +417,11 @@
 sortmode
 octave_matrix::is_sorted_rows (sortmode mode) const
 {
-  if (idx_cache)
+  if (m_idx_cache)
     {
       // This is a valid index matrix, so check via integers because it's
       // generally more efficient.
-      return idx_cache->as_array ().is_sorted_rows (mode);
+      return m_idx_cache->as_array ().is_sorted_rows (mode);
     }
   else
     return octave_base_matrix<NDArray>::is_sorted_rows (mode);
@@ -442,7 +442,7 @@
     {
       octave_quit ();
 
-      double d = matrix(i);
+      double d = m_matrix(i);
 
       if (octave::math::isnan (d))
         octave::err_nan_to_character_conversion ();
@@ -545,7 +545,7 @@
       if (! is)
         error ("load: failed to load matrix constant");
 
-      matrix = tmp;
+      m_matrix = tmp;
     }
   else if (kw == "rows")
     {
@@ -562,10 +562,10 @@
           if (! is)
             error ("load: failed to load matrix constant");
 
-          matrix = tmp;
+          m_matrix = tmp;
         }
       else if (nr == 0 || nc == 0)
-        matrix = Matrix (nr, nc);
+        m_matrix = Matrix (nr, nc);
       else
         panic_impossible ();
     }
@@ -666,7 +666,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   else
     {
@@ -686,7 +686,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   return true;
 }
@@ -745,7 +745,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid,
                         octave_H5P_DEFAULT);
@@ -757,8 +758,8 @@
     }
 
   double *mtmp = m.fortran_vec ();
-  retval = H5Dwrite (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL, octave_H5S_ALL,
-                     octave_H5P_DEFAULT, mtmp) >= 0;
+  retval = H5Dwrite (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL,
+                     octave_H5S_ALL, octave_H5P_DEFAULT, mtmp) >= 0;
 
   H5Dclose (data_hid);
   H5Sclose (space_hid);
@@ -784,7 +785,7 @@
   dim_vector dv;
   int empty = load_hdf5_empty (loc_id, name, dv);
   if (empty > 0)
-    matrix.resize (dv);
+    m_matrix.resize (dv);
   if (empty)
     return (empty > 0);
 
@@ -829,7 +830,7 @@
                octave_H5P_DEFAULT, re) >= 0)
     {
       retval = true;
-      matrix = m;
+      m_matrix = m;
     }
 
   H5Sclose (space_id);
@@ -849,7 +850,7 @@
 octave_matrix::print_raw (std::ostream& os,
                           bool pr_as_read_syntax) const
 {
-  octave_print_internal (os, matrix, pr_as_read_syntax,
+  octave_print_internal (os, m_matrix, pr_as_read_syntax,
                          current_print_indent_level ());
 }
 
@@ -862,7 +863,7 @@
 
   mwSize nel = numel ();
 
-  const double *pdata = matrix.data ();
+  const double *pdata = m_matrix.data ();
 
   for (mwIndex i = 0; i < nel; i++)
     pd[i] = pdata[i];
@@ -915,16 +916,16 @@
   switch (umap)
     {
     case umap_imag:
-      return NDArray (matrix.dims (), 0.0);
+      return NDArray (m_matrix.dims (), 0.0);
 
     case umap_real:
     case umap_conj:
-      return matrix;
+      return m_matrix;
 
     // Mappers handled specially.
 #define ARRAY_METHOD_MAPPER(UMAP, FCN)        \
     case umap_ ## UMAP:                       \
-      return octave_value (matrix.FCN ())
+      return octave_value (m_matrix.FCN ())
 
     ARRAY_METHOD_MAPPER (abs, abs);
     ARRAY_METHOD_MAPPER (isnan, isnan);
@@ -933,11 +934,11 @@
 
 #define ARRAY_MAPPER(UMAP, TYPE, FCN)                 \
     case umap_ ## UMAP:                               \
-      return octave_value (matrix.map<TYPE> (FCN))
+      return octave_value (m_matrix.map<TYPE> (FCN))
 
 #define RC_ARRAY_MAPPER(UMAP, TYPE, FCN)      \
     case umap_ ## UMAP:                       \
-      return do_rc_map (matrix, FCN)
+      return do_rc_map (m_matrix, FCN)
 
     RC_ARRAY_MAPPER (acos, Complex, octave::math::rc_acos);
     RC_ARRAY_MAPPER (acosh, Complex, octave::math::rc_acosh);
@@ -982,7 +983,7 @@
     // Special cases for Matlab compatibility.
     case umap_xtolower:
     case umap_xtoupper:
-      return matrix;
+      return m_matrix;
 
     case umap_xisalnum:
     case umap_xisalpha:
--- a/libinterp/octave-value/ov-re-mat.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-re-mat.h	Tue Nov 15 13:15:28 2022 -0800
@@ -106,7 +106,10 @@
   octave_base_value * try_narrowing_conversion (void);
 
   octave::idx_vector index_vector (bool /* require_integers */ = false) const
-  { return idx_cache ? *idx_cache : set_idx_cache (octave::idx_vector (matrix)); }
+  {
+    return m_idx_cache ? *m_idx_cache
+                     : set_idx_cache (octave::idx_vector (m_matrix));
+  }
 
   builtin_type_t builtin_type (void) const { return btyp_double; }
 
@@ -119,28 +122,28 @@
   bool isfloat (void) const { return true; }
 
   int8NDArray
-  int8_array_value (void) const { return int8NDArray (matrix); }
+  int8_array_value (void) const { return int8NDArray (m_matrix); }
 
   int16NDArray
-  int16_array_value (void) const { return int16NDArray (matrix); }
+  int16_array_value (void) const { return int16NDArray (m_matrix); }
 
   int32NDArray
-  int32_array_value (void) const { return int32NDArray (matrix); }
+  int32_array_value (void) const { return int32NDArray (m_matrix); }
 
   int64NDArray
-  int64_array_value (void) const { return int64NDArray (matrix); }
+  int64_array_value (void) const { return int64NDArray (m_matrix); }
 
   uint8NDArray
-  uint8_array_value (void) const { return uint8NDArray (matrix); }
+  uint8_array_value (void) const { return uint8NDArray (m_matrix); }
 
   uint16NDArray
-  uint16_array_value (void) const { return uint16NDArray (matrix); }
+  uint16_array_value (void) const { return uint16NDArray (m_matrix); }
 
   uint32NDArray
-  uint32_array_value (void) const { return uint32NDArray (matrix); }
+  uint32_array_value (void) const { return uint32NDArray (m_matrix); }
 
   uint64NDArray
-  uint64_array_value (void) const { return uint64NDArray (matrix); }
+  uint64_array_value (void) const { return uint64NDArray (m_matrix); }
 
   double double_value (bool = false) const;
 
@@ -169,9 +172,9 @@
 
   charNDArray char_array_value (bool = false) const;
 
-  NDArray array_value (bool = false) const { return matrix; }
+  NDArray array_value (bool = false) const { return m_matrix; }
 
-  FloatNDArray float_array_value (bool = false) const { return matrix; }
+  FloatNDArray float_array_value (bool = false) const { return m_matrix; }
 
   SparseMatrix sparse_matrix_value (bool = false) const;
 
@@ -235,7 +238,7 @@
   int write (octave::stream& os, int block_size,
              oct_data_conv::data_type output_type, int skip,
              octave::mach_info::float_format flt_fmt) const
-  { return os.write (matrix, block_size, output_type, skip, flt_fmt); }
+  { return os.write (m_matrix, block_size, output_type, skip, flt_fmt); }
 
   mxArray * as_mxArray (bool interleaved) const;
 
--- a/libinterp/octave-value/ov-re-sparse.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-re-sparse.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -69,32 +69,6 @@
     }
 }
 
-octave_base_value *
-octave_sparse_matrix::try_narrowing_conversion (void)
-{
-  octave_base_value *retval = nullptr;
-
-  if (Vsparse_auto_mutate)
-    {
-      // Don't use numel, since it can overflow for very large matrices
-      // Note that for the second test, this means it becomes approximative
-      // since it involves a cast to double to avoid issues of overflow
-      if (matrix.rows () == 1 && matrix.cols () == 1)
-        {
-          // Const copy of the matrix, so the right version of () operator used
-          const SparseMatrix tmp (matrix);
-
-          retval = new octave_scalar (tmp (0));
-        }
-      else if (matrix.cols () > 0 && matrix.rows () > 0
-               && (double (matrix.byte_size ()) > double (matrix.rows ())
-                   * double (matrix.cols ()) * sizeof (double)))
-        retval = new octave_matrix (matrix.matrix_value ());
-    }
-
-  return retval;
-}
-
 double
 octave_sparse_matrix::double_value (bool) const
 {
@@ -421,7 +395,8 @@
     }
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -445,7 +420,8 @@
     }
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -470,7 +446,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -508,7 +485,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -545,7 +523,8 @@
     }
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid,
                         octave_H5P_DEFAULT);
@@ -594,7 +573,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (group_hid, "data", save_type_hid, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (group_hid, "data", save_type_hid, space_hid,
                         octave_H5P_DEFAULT);
@@ -607,8 +587,8 @@
     }
 
   double *dtmp = m.xdata ();
-  retval = H5Dwrite (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL, octave_H5S_ALL,
-                     octave_H5P_DEFAULT, dtmp) >= 0;
+  retval = H5Dwrite (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL,
+                     octave_H5S_ALL, octave_H5P_DEFAULT, dtmp) >= 0;
   H5Dclose (data_hid);
   H5Sclose (space_hid);
   H5Gclose (group_hid);
--- a/libinterp/octave-value/ov-re-sparse.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-re-sparse.h	Tue Nov 15 13:15:28 2022 -0800
@@ -91,8 +91,6 @@
   octave_base_value * empty_clone (void) const
   { return new octave_sparse_matrix (); }
 
-  octave_base_value * try_narrowing_conversion (void);
-
   octave::idx_vector index_vector (bool require_integers = false) const;
 
   builtin_type_t builtin_type (void) const { return btyp_double; }
--- a/libinterp/octave-value/ov-scalar.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-scalar.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -283,7 +283,8 @@
 
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_DOUBLE, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_DOUBLE, space_hid,
                         octave_H5P_DEFAULT);
@@ -295,8 +296,8 @@
     }
 
   double tmp = double_value ();
-  retval = H5Dwrite (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL, octave_H5S_ALL,
-                     octave_H5P_DEFAULT, &tmp) >= 0;
+  retval = H5Dwrite (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL,
+                     octave_H5S_ALL, octave_H5P_DEFAULT, &tmp) >= 0;
 
   H5Dclose (data_hid);
   H5Sclose (space_hid);
--- a/libinterp/octave-value/ov-str-mat.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-str-mat.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -105,14 +105,14 @@
       switch (len)
         {
         case 0:
-          retval = octave_value (matrix, type);
+          retval = octave_value (m_matrix, type);
           break;
 
         case 1:
           {
             octave::idx_vector i = idx (0).index_vector ();
 
-            retval = octave_value (charNDArray (matrix.index (i, resize_ok)),
+            retval = octave_value (charNDArray (m_matrix.index (i, resize_ok)),
                                    type);
           }
           break;
@@ -123,7 +123,7 @@
             k = 1;
             octave::idx_vector j = idx (1).index_vector ();
 
-            retval = octave_value (charNDArray (matrix.index (i, j, resize_ok)),
+            retval = octave_value (charNDArray (m_matrix.index (i, j, resize_ok)),
                                    type);
           }
           break;
@@ -135,7 +135,7 @@
             for (k = 0; k < len; k++)
               idx_vec(k) = idx(k).index_vector ();
 
-            retval = octave_value (charNDArray (matrix.index (idx_vec, resize_ok)), type);
+            retval = octave_value (charNDArray (m_matrix.index (idx_vec, resize_ok)), type);
           }
           break;
         }
@@ -153,7 +153,7 @@
 octave_value
 octave_char_matrix_str::resize (const dim_vector& dv, bool fill) const
 {
-  charNDArray retval (matrix);
+  charNDArray retval (m_matrix);
   if (fill)
     retval.resize (dv, 0);
   else
@@ -211,10 +211,10 @@
 {
   string_vector retval;
 
-  if (matrix.ndims () != 2)
+  if (m_matrix.ndims () != 2)
     error ("invalid conversion of charNDArray to string_vector");
 
-  charMatrix chm (matrix);
+  charMatrix chm (m_matrix);
 
   octave_idx_type n = chm.rows ();
 
@@ -229,10 +229,10 @@
 std::string
 octave_char_matrix_str::string_value (bool) const
 {
-  if (matrix.ndims () != 2)
+  if (m_matrix.ndims () != 2)
     error ("invalid conversion of charNDArray to string");
 
-  charMatrix chm (matrix);
+  charMatrix chm (m_matrix);
 
   if (chm.rows () > 1)
     warning_with_id ("Octave:charmat-truncated",
@@ -256,10 +256,10 @@
 {
   Array<std::string> retval;
 
-  if (matrix.ndims () != 2)
+  if (m_matrix.ndims () != 2)
     error ("cellstr: cannot convert multidimensional arrays");
 
-  const charMatrix chm (matrix);
+  const charMatrix chm (m_matrix);
   octave_idx_type nr = chm.rows ();
   retval.clear (nr, 1);
   for (octave_idx_type i = 0; i < nr; i++)
@@ -272,16 +272,16 @@
 octave_char_matrix_str::print_raw (std::ostream& os,
                                    bool pr_as_read_syntax) const
 {
-  octave_print_internal (os, matrix, pr_as_read_syntax,
+  octave_print_internal (os, m_matrix, pr_as_read_syntax,
                          current_print_indent_level (), true);
 }
 
 void
 octave_char_matrix_str::short_disp (std::ostream& os) const
 {
-  if (matrix.ndims () == 2 && numel () > 0)
+  if (m_matrix.ndims () == 2 && numel () > 0)
     {
-      charMatrix chm (matrix);
+      charMatrix chm (m_matrix);
       std::string tmp = chm.row_as_string (0);
 
       // FIXME: should this be configurable?
@@ -312,7 +312,7 @@
     }
 
   std::string tname = type_name ();
-  dim_vector dv = matrix.dims ();
+  dim_vector dv = m_matrix.dims ();
   std::string dimstr = dv.str ();
   return "[" + dimstr + " " + tname + "]";
 }
@@ -388,7 +388,7 @@
       charNDArray tmp(dv);
 
       if (tmp.isempty ())
-        matrix = tmp;
+        m_matrix = tmp;
       else
         {
           char *ftmp = tmp.fortran_vec ();
@@ -398,7 +398,7 @@
           if (! is.read (ftmp, dv.numel ()) || ! is)
             error ("load: failed to load string constant");
 
-          matrix = tmp;
+          m_matrix = tmp;
         }
     }
   else if (kw == "elements")
@@ -437,7 +437,7 @@
           chm.insert (tmp, i, 0);
         }
 
-      matrix = chm;
+      m_matrix = chm;
     }
   else if (kw == "length")
     {
@@ -459,7 +459,7 @@
           if (! is)
             error ("load: failed to load string constant");
 
-          matrix = tmp;
+          m_matrix = tmp;
         }
     }
   else
@@ -535,7 +535,7 @@
       if (! is)
         return false;
 
-      matrix = m;
+      m_matrix = m;
     }
   else
     {
@@ -559,7 +559,7 @@
             }
           chm.insert (btmp, i, 0);
         }
-      matrix = chm;
+      m_matrix = chm;
     }
   return true;
 }
@@ -593,7 +593,8 @@
     return false;
 #if defined (HAVE_HDF5_18)
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_CHAR, space_hid,
-                        octave_H5P_DEFAULT, octave_H5P_DEFAULT, octave_H5P_DEFAULT);
+                        octave_H5P_DEFAULT, octave_H5P_DEFAULT,
+                        octave_H5P_DEFAULT);
 #else
   data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_CHAR, space_hid,
                         octave_H5P_DEFAULT);
@@ -635,7 +636,7 @@
   dim_vector dv;
   int empty = load_hdf5_empty (loc_id, name, dv);
   if (empty > 0)
-    matrix.resize (dv);
+    m_matrix.resize (dv);
   if (empty)
     return (empty > 0);
 
@@ -684,7 +685,7 @@
                    octave_H5P_DEFAULT, str) >= 0)
         {
           retval = true;
-          matrix = m;
+          m_matrix = m;
         }
 
       H5Tclose (type_hid);
@@ -722,7 +723,7 @@
                   return false;
                 }
 
-              matrix = charMatrix (s);
+              m_matrix = charMatrix (s);
 
               H5Tclose (st_id);
               H5Tclose (type_hid);
@@ -773,7 +774,7 @@
                   chm.insert (s + i*(slen+1), i, 0);
                 }
 
-              matrix = chm;
+              m_matrix = chm;
 
               H5Tclose (st_id);
               H5Tclose (type_hid);
--- a/libinterp/octave-value/ov-str-mat.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-str-mat.h	Tue Nov 15 13:15:28 2022 -0800
@@ -98,13 +98,13 @@
   { return do_index_op_internal (idx, resize_ok); }
 
   octave_value squeeze (void) const
-  { return octave_value (charNDArray (matrix.squeeze ())); }
+  { return octave_value (charNDArray (m_matrix.squeeze ())); }
 
   octave_value reshape (const dim_vector& new_dims) const
-  { return octave_value (charNDArray (matrix.reshape (new_dims))); }
+  { return octave_value (charNDArray (m_matrix.reshape (new_dims))); }
 
   octave_value permute (const Array<int>& vec, bool inv = false) const
-  { return octave_value (charNDArray (matrix.permute (vec, inv))); }
+  { return octave_value (charNDArray (m_matrix.permute (vec, inv))); }
 
   octave_value resize (const dim_vector& dv, bool fill = false) const;
 
@@ -114,7 +114,7 @@
   using octave_char_matrix::diag;
 
   octave_value diag (octave_idx_type k = 0) const
-  { return octave_value (matrix.diag (k)); }
+  { return octave_value (m_matrix.diag (k)); }
 
   bool is_string (void) const { return true; }
 
@@ -141,11 +141,11 @@
   Array<std::string> cellstr_value (void) const;
 
   octave_value sort (octave_idx_type dim = 0, sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (dim, mode)); }
+  { return octave_value (m_matrix.sort (dim, mode)); }
 
   octave_value sort (Array<octave_idx_type>& sidx, octave_idx_type dim = 0,
                      sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (sidx, dim, mode)); }
+  { return octave_value (m_matrix.sort (sidx, dim, mode)); }
 
   bool print_as_scalar (void) const { return (rows () <= 1); }
 
@@ -172,7 +172,7 @@
   int write (octave::stream& os, int block_size,
              oct_data_conv::data_type output_type, int skip,
              octave::mach_info::float_format flt_fmt) const
-  { return os.write (matrix, block_size, output_type, skip, flt_fmt); }
+  { return os.write (m_matrix, block_size, output_type, skip, flt_fmt); }
 
 protected:
 
@@ -229,17 +229,17 @@
   { return new octave_char_matrix_sq_str (); }
 
   octave_value squeeze (void) const
-  { return octave_value (charNDArray (matrix.squeeze ()), '\''); }
+  { return octave_value (charNDArray (m_matrix.squeeze ()), '\''); }
 
   octave_value reshape (const dim_vector& new_dims) const
-  { return octave_value (charNDArray (matrix.reshape (new_dims)), '\''); }
+  { return octave_value (charNDArray (m_matrix.reshape (new_dims)), '\''); }
 
   octave_value permute (const Array<int>& vec, bool inv = false) const
-  { return octave_value (charNDArray (matrix.permute (vec, inv)), '\''); }
+  { return octave_value (charNDArray (m_matrix.permute (vec, inv)), '\''); }
 
   octave_value resize (const dim_vector& dv, bool = false) const
   {
-    charNDArray retval (matrix);
+    charNDArray retval (m_matrix);
     retval.resize (dv);
     return octave_value (retval, '\'');
   }
@@ -250,7 +250,7 @@
   using octave_char_matrix_str::diag;
 
   octave_value diag (octave_idx_type k = 0) const
-  { return octave_value (matrix.diag (k), '\''); }
+  { return octave_value (m_matrix.diag (k), '\''); }
 
   bool is_sq_string (void) const { return true; }
 
@@ -259,11 +259,11 @@
   { return do_index_op_internal (idx, resize_ok, '\''); }
 
   octave_value sort (octave_idx_type dim = 0, sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (dim, mode), '\''); }
+  { return octave_value (m_matrix.sort (dim, mode), '\''); }
 
   octave_value sort (Array<octave_idx_type>& sidx, octave_idx_type dim = 0,
                      sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (sidx, dim, mode), '\''); }
+  { return octave_value (m_matrix.sort (sidx, dim, mode), '\''); }
 
 private:
 
--- a/libinterp/octave-value/ov-struct.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-struct.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -91,7 +91,7 @@
 {
   Cell retval;
 
-  assert (idx.length () == 1);
+  panic_if (idx.length () != 1);
 
   std::string nm = idx(0).string_value ();
 
@@ -321,7 +321,7 @@
 
                 octave_value_list key_idx = *++p;
 
-                assert (key_idx.length () == 1);
+                panic_if (key_idx.length () != 1);
 
                 std::string key = key_idx(0).string_value ();
 
@@ -377,7 +377,7 @@
           {
             octave_value_list key_idx = idx.front ();
 
-            assert (key_idx.length () == 1);
+            panic_if (key_idx.length () != 1);
 
             std::string key = key_idx(0).string_value ();
 
@@ -443,7 +443,7 @@
             octave_value_list key_idx = *++p;
             octave_value_list idxf = idx.front ();
 
-            assert (key_idx.length () == 1);
+            panic_if (key_idx.length () != 1);
 
             std::string key = key_idx(0).string_value ();
 
@@ -514,7 +514,7 @@
       {
         octave_value_list key_idx = idx.front ();
 
-        assert (key_idx.length () == 1);
+        panic_if (key_idx.length () != 1);
 
         std::string key = key_idx(0).string_value ();
 
@@ -1107,7 +1107,7 @@
 {
   octave_value retval;
 
-  assert (idx.length () == 1);
+  panic_if (idx.length () != 1);
 
   std::string nm = idx(0).string_value ();
 
@@ -1228,7 +1228,7 @@
 
       octave_value_list key_idx = idx.front ();
 
-      assert (key_idx.length () == 1);
+      panic_if (key_idx.length () != 1);
 
       std::string key = key_idx(0).string_value ();
 
@@ -1885,14 +1885,16 @@
 %!assert (size (x), [0,0])
 %!assert (isstruct (x))
 %!assert (isempty (fieldnames (x)))
-%!fail ('struct ("a",{1,2},"b",{1,2,3})', 'dimensions of parameter 2 do not match those of parameter 4')
+%!fail ('struct ("a",{1,2},"b",{1,2,3})',
+%!      'dimensions of parameter 2 do not match those of parameter 4')
 %!error <arguments must occur as "field", VALUE pairs> struct (1,2,3,4)
-%!fail ('struct ("1",2,"3")', 'struct: additional arguments must occur as "field", VALUE pairs')
+%!fail ('struct ("1",2,"3")',
+%!      'struct: additional arguments must occur as "field", VALUE pairs')
 */
 
 DEFUN (isstruct, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isstruct (@var{x})
+@deftypefn {} {@var{tf} =} isstruct (@var{x})
 Return true if @var{x} is a structure or a structure array.
 @seealso{ismatrix, iscell, isa}
 @end deftypefn */)
@@ -1905,8 +1907,8 @@
 
 DEFUN (__fieldnames__, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} __fieldnames__ (@var{struct})
-@deftypefnx {} {} __fieldnames__ (@var{obj})
+@deftypefn  {} {@var{names} =} __fieldnames__ (@var{struct})
+@deftypefnx {} {@var{names} =} __fieldnames__ (@var{obj})
 Internal function.
 
 Implements @code{fieldnames()} for structures and Octave objects.
@@ -1932,8 +1934,8 @@
 
 DEFUN (isfield, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} isfield (@var{x}, "@var{name}")
-@deftypefnx {} {} isfield (@var{x}, @var{name})
+@deftypefn  {} {@var{tf} =} isfield (@var{x}, "@var{name}")
+@deftypefnx {} {@var{tf} =} isfield (@var{x}, @var{name})
 Return true if the @var{x} is a structure and it includes an element named
 @var{name}.
 
@@ -1949,7 +1951,7 @@
 
   if (args(0).isstruct ())
     {
-      octave_map m = args(0).map_value ();
+      octave_value m = args(0);
 
       // FIXME: should this work for all types that can do
       // structure reference operations?
@@ -1986,7 +1988,7 @@
 
 DEFUN (numfields, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} numfields (@var{s})
+@deftypefn {} {@var{n} =} numfields (@var{s})
 Return the number of fields of the structure @var{s}.
 @seealso{fieldnames}
 @end deftypefn */)
@@ -2054,8 +2056,8 @@
 
 DEFUN (cell2struct, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn  {} {} cell2struct (@var{cell}, @var{fields})
-@deftypefnx {} {} cell2struct (@var{cell}, @var{fields}, @var{dim})
+@deftypefn  {} {@var{S} =} cell2struct (@var{cell}, @var{fields})
+@deftypefnx {} {@var{S} =} cell2struct (@var{cell}, @var{fields}, @var{dim})
 Convert @var{cell} to a structure.
 
 The number of fields in @var{fields} must match the number of elements in
@@ -2065,10 +2067,10 @@
 
 @example
 @group
-A = cell2struct (@{"Peter", "Hannah", "Robert";
+S = cell2struct (@{"Peter", "Hannah", "Robert";
                    185, 170, 168@},
                  @{"Name","Height"@}, 1);
-A(1)
+S(1)
    @result{}
       @{
         Name   = Peter
@@ -2112,7 +2114,7 @@
   // result dimensions.
   dim_vector rdv = vals.dims ().redim (nd);
 
-  assert (ext == rdv(dim));
+  panic_unless (ext == rdv(dim));
   if (nd == 2)
     {
       rdv(0) = rdv(1-dim);
@@ -2213,7 +2215,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} struct_levels_to_print ()
 @deftypefnx {} {@var{old_val} =} struct_levels_to_print (@var{new_val})
-@deftypefnx {} {} struct_levels_to_print (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} struct_levels_to_print (@var{new_val}, "local")
 Query or set the internal variable that specifies the number of
 structure levels to display.
 
@@ -2232,7 +2234,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} print_struct_array_contents ()
 @deftypefnx {} {@var{old_val} =} print_struct_array_contents (@var{new_val})
-@deftypefnx {} {} print_struct_array_contents (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} print_struct_array_contents (@var{new_val}, "local")
 Query or set the internal variable that specifies whether to print struct
 array contents.
 
--- a/libinterp/octave-value/ov-struct.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-struct.h	Tue Nov 15 13:15:28 2022 -0800
@@ -130,6 +130,9 @@
 
   string_vector map_keys (void) const { return m_map.fieldnames (); }
 
+  bool isfield (const std::string& field_name) const
+  { return m_map.isfield (field_name); }
+
   void print (std::ostream& os, bool pr_as_read_syntax = false);
 
   void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;
@@ -256,6 +259,9 @@
 
   string_vector map_keys (void) const { return m_map.fieldnames (); }
 
+  bool isfield (const std::string& field_name) const
+  { return m_map.isfield (field_name); }
+
   void print (std::ostream& os, bool pr_as_read_syntax = false);
 
   void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;
--- a/libinterp/octave-value/ov-typeinfo.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-typeinfo.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -645,7 +645,8 @@
   {
     octave_scalar_map retval;
 
-    int len = std::min (static_cast<int> (m_binary_ops.columns ()), m_num_types);
+    int len = std::min (static_cast<int> (m_binary_ops.columns ()),
+                        m_num_types);
 
     dim_vector tab_dims (len, len);
 
@@ -697,7 +698,8 @@
   {
     octave_scalar_map retval;
 
-    int len = std::min (static_cast<int> (m_assign_ops.columns ()), m_num_types);
+    int len = std::min (static_cast<int> (m_assign_ops.columns ()),
+                        m_num_types);
 
     dim_vector tab_dims (len, len);
 
@@ -722,7 +724,8 @@
   {
     octave_scalar_map retval;
 
-    int len = std::min (static_cast<int> (m_assignany_ops.columns ()), m_num_types);
+    int len = std::min (static_cast<int> (m_assignany_ops.columns ()),
+                        m_num_types);
 
     dim_vector tab_dims (1, len);
 
@@ -767,32 +770,28 @@
   int register_type (const std::string& t_name, const std::string& c_name,
                      const octave_value& val)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("register_type");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.register_type (t_name, c_name, val);
   }
 
   octave_value lookup_type (const std::string& nm)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_type");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_type (nm);
   }
 
   unary_class_op_fcn lookup_unary_class_op (octave_value::unary_op op)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_unary_class_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_unary_class_op (op);
   }
 
   unary_op_fcn lookup_unary_op (octave_value::unary_op op, int t)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_unary_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_unary_op (op, t);
   }
@@ -800,8 +799,7 @@
   non_const_unary_op_fcn
   lookup_non_const_unary_op (octave_value::unary_op op, int t)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_non_const_unary_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_non_const_unary_op (op, t);
   }
@@ -809,8 +807,7 @@
   binary_class_op_fcn
   lookup_binary_class_op (octave_value::binary_op op)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_binary_class_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_binary_class_op (op);
   }
@@ -818,8 +815,7 @@
   binary_op_fcn
   lookup_binary_op (octave_value::binary_op op, int t1, int t2)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_binary_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_binary_op (op, t1, t2);
   }
@@ -827,8 +823,7 @@
   binary_class_op_fcn
   lookup_binary_class_op (octave_value::compound_binary_op op)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_binary_class_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_binary_class_op (op);
   }
@@ -836,16 +831,14 @@
   binary_op_fcn
   lookup_binary_op (octave_value::compound_binary_op op, int t1, int t2)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_binary_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_binary_op (op, t1, t2);
   }
 
   cat_op_fcn lookup_cat_op (int t1, int t2)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_cat_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_cat_op (t1, t2);
   }
@@ -853,8 +846,7 @@
   assign_op_fcn
   lookup_assign_op (octave_value::assign_op op, int t_lhs, int t_rhs)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_assign_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_assign_op (op, t_lhs, t_rhs);
   }
@@ -862,16 +854,14 @@
   assignany_op_fcn
   lookup_assignany_op (octave_value::assign_op op, int t_lhs)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_assignany_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_assignany_op (op, t_lhs);
   }
 
   int lookup_pref_assign_conv (int t_lhs, int t_rhs)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_pref_assign_conv");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_pref_assign_conv (t_lhs, t_rhs);
   }
@@ -879,24 +869,21 @@
   octave_base_value::type_conv_fcn
   lookup_widening_op (int t, int t_result)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("lookup_widening_op");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.lookup_widening_op (t, t_result);
   }
 
   string_vector installed_type_names (void)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("installed_type_names");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.installed_type_names ();
   }
 
   octave_scalar_map installed_type_info (void)
   {
-    octave::type_info& type_info
-      = octave::__get_type_info__ ("installed_type_info");
+    octave::type_info& type_info = octave::__get_type_info__ ();
 
     return type_info.installed_type_info ();
   }
@@ -906,8 +893,8 @@
 
 DEFMETHOD (typeinfo, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} typeinfo ()
-@deftypefnx {} {} typeinfo (@var{expr})
+@deftypefn  {} {@var{typestr} =} typeinfo (@var{expr})
+@deftypefnx {} {@var{cstr} =} typeinfo ()
 
 Return the type of the expression @var{expr}, as a string.
 
--- a/libinterp/octave-value/ov-uint16.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-uint16.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -57,8 +57,8 @@
 #include "ls-utils.h"
 #include "ls-hdf5.h"
 
-octave_hdf5_id octave_uint16_matrix::hdf5_save_type = HDF5_SAVE_TYPE;
-octave_hdf5_id octave_uint16_scalar::hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_uint16_matrix::s_hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_uint16_scalar::s_hdf5_save_type = HDF5_SAVE_TYPE;
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
--- a/libinterp/octave-value/ov-uint32.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-uint32.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -56,8 +56,8 @@
 #include "ls-utils.h"
 #include "ls-hdf5.h"
 
-octave_hdf5_id octave_uint32_matrix::hdf5_save_type = HDF5_SAVE_TYPE;
-octave_hdf5_id octave_uint32_scalar::hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_uint32_matrix::s_hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_uint32_scalar::s_hdf5_save_type = HDF5_SAVE_TYPE;
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
--- a/libinterp/octave-value/ov-uint64.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-uint64.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -56,8 +56,8 @@
 #include "ls-utils.h"
 #include "ls-hdf5.h"
 
-octave_hdf5_id octave_uint64_matrix::hdf5_save_type = HDF5_SAVE_TYPE;
-octave_hdf5_id octave_uint64_scalar::hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_uint64_matrix::s_hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_uint64_scalar::s_hdf5_save_type = HDF5_SAVE_TYPE;
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
--- a/libinterp/octave-value/ov-uint8.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-uint8.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -56,8 +56,8 @@
 #include "ls-utils.h"
 #include "ls-hdf5.h"
 
-octave_hdf5_id octave_uint8_matrix::hdf5_save_type = HDF5_SAVE_TYPE;
-octave_hdf5_id octave_uint8_scalar::hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_uint8_matrix::s_hdf5_save_type = HDF5_SAVE_TYPE;
+octave_hdf5_id octave_uint8_scalar::s_hdf5_save_type = HDF5_SAVE_TYPE;
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
--- a/libinterp/octave-value/ov-usr-fcn.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-usr-fcn.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -75,8 +75,7 @@
   // FIXME: shouldn't this happen automatically when deleting cmd_list?
   if (m_cmd_list)
     {
-      octave::event_manager& evmgr
-        = octave::__get_event_manager__ ("octave_user_code::~octave_user_code");
+      octave::event_manager& evmgr = octave::__get_event_manager__ ();
 
       m_cmd_list->remove_all_breakpoints (evmgr, m_file_name);
     }
@@ -410,35 +409,35 @@
   return m_scope.subfunctions ();
 }
 
-// Find definition of final subfunction in list of subfuns:
+// Find definition of final subfunction in list of subfcns:
 //
 //  sub1>sub2>...>subN
 
 octave_value
-octave_user_function::find_subfunction (const std::string& subfuns_arg) const
+octave_user_function::find_subfunction (const std::string& subfcns_arg) const
 {
-  std::string subfuns = subfuns_arg;
+  std::string subfcns = subfcns_arg;
 
-  std::string first_fun = subfuns;
+  std::string first_fcn = subfcns;
 
-  std::size_t pos = subfuns.find ('>');
+  std::size_t pos = subfcns.find ('>');
 
   if (pos == std::string::npos)
-    subfuns = "";
+    subfcns = "";
   else
     {
-      first_fun = subfuns.substr (0, pos-1);
-      subfuns = subfuns.substr (pos+1);
+      first_fcn = subfcns.substr (0, pos-1);
+      subfcns = subfcns.substr (pos+1);
     }
 
-  octave_value ov_fcn = m_scope.find_subfunction (first_fun);
+  octave_value ov_fcn = m_scope.find_subfunction (first_fcn);
 
-  if (subfuns.empty ())
+  if (subfcns.empty ())
     return ov_fcn;
 
   octave_user_function *fcn = ov_fcn.user_function_value ();
 
-  return fcn->find_subfunction (subfuns);
+  return fcn->find_subfunction (subfcns);
 }
 
 bool
@@ -504,8 +503,8 @@
 octave::tree_expression *
 octave_user_function::special_expr (void)
 {
-  assert (is_special_expr ());
-  assert (m_cmd_list->length () == 1);
+  panic_unless (is_special_expr ());
+  panic_if (m_cmd_list->length () != 1);
 
   octave::tree_statement *stmt = m_cmd_list->front ();
   return stmt->expression ();
@@ -622,8 +621,7 @@
 void
 octave_user_function::restore_warning_states (void)
 {
-  octave::interpreter& interp
-    = octave::__get_interpreter__ ("octave_user_function::restore_warning_states");
+  octave::interpreter& interp = octave::__get_interpreter__ ();
 
   octave::tree_evaluator& tw = interp.get_evaluator ();
 
@@ -652,8 +650,8 @@
 
 DEFMETHOD (nargin, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} nargin ()
-@deftypefnx {} {} nargin (@var{fcn})
+@deftypefn  {} {@var{n} =} nargin ()
+@deftypefnx {} {@var{n} =} nargin (@var{fcn})
 Report the number of input arguments to a function.
 
 Called from within a function, return the number of arguments passed to the
@@ -692,25 +690,25 @@
 
   if (nargin == 1)
     {
-      octave_value func = args(0);
+      octave_value fcn = args(0);
 
-      if (func.is_string ())
+      if (fcn.is_string ())
         {
           symbol_table& symtab = interp.get_symbol_table ();
 
-          std::string name = func.string_value ();
-          func = symtab.find_function (name);
-          if (func.is_undefined ())
+          std::string name = fcn.string_value ();
+          fcn = symtab.find_function (name);
+          if (fcn.is_undefined ())
             error ("nargin: invalid function name: %s", name.c_str ());
         }
 
-      octave_function *fcn_val = func.function_value (true);
+      octave_function *fcn_val = fcn.function_value (true);
       if (! fcn_val)
         error ("nargin: FCN must be a string or function handle");
 
-      octave_user_function *fcn = fcn_val->user_function_value (true);
+      octave_user_function *ufcn = fcn_val->user_function_value (true);
 
-      if (! fcn)
+      if (! ufcn)
         {
           // Matlab gives up for histc, so maybe it's ok that we
           // give up sometimes too?
@@ -720,10 +718,10 @@
                  type.c_str ());
         }
 
-      tree_parameter_list *m_param_list = fcn->parameter_list ();
+      tree_parameter_list *m_param_list = ufcn->parameter_list ();
 
       retval = (m_param_list ? m_param_list->length () : 0);
-      if (fcn->takes_varargs ())
+      if (ufcn->takes_varargs ())
         retval = -1 - retval;
     }
   else
@@ -741,8 +739,8 @@
 
 DEFMETHOD (nargout, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn  {} {} nargout ()
-@deftypefnx {} {} nargout (@var{fcn})
+@deftypefn  {} {@var{n} =} nargout ()
+@deftypefnx {} {@var{n} =} nargout (@var{fcn})
 Report the number of output arguments from a function.
 
 Called from within a function, return the number of values the caller
@@ -803,36 +801,36 @@
 
   if (nargin == 1)
     {
-      octave_value func = args(0);
+      octave_value fcn = args(0);
 
-      if (func.is_string ())
+      if (fcn.is_string ())
         {
           symbol_table& symtab = interp.get_symbol_table ();
 
-          std::string name = func.string_value ();
-          func = symtab.find_function (name);
-          if (func.is_undefined ())
+          std::string name = fcn.string_value ();
+          fcn = symtab.find_function (name);
+          if (fcn.is_undefined ())
             error ("nargout: invalid function name: %s", name.c_str ());
         }
 
-      if (func.is_inline_function ())
+      if (fcn.is_inline_function ())
         return ovl (1);
 
-      if (func.is_function_handle ())
+      if (fcn.is_function_handle ())
         {
-          octave_fcn_handle *fh = func.fcn_handle_value ();
+          octave_fcn_handle *fh = fcn.fcn_handle_value ();
 
           if (fh->is_anonymous ())
             return ovl (-1);
         }
 
-      octave_function *fcn_val = func.function_value (true);
+      octave_function *fcn_val = fcn.function_value (true);
       if (! fcn_val)
         error ("nargout: FCN must be a string or function handle");
 
-      octave_user_function *fcn = fcn_val->user_function_value (true);
+      octave_user_function *ufcn = fcn_val->user_function_value (true);
 
-      if (! fcn)
+      if (! ufcn)
         {
           // Matlab gives up for histc, so maybe it's ok that we
           // give up sometimes too?
@@ -842,11 +840,11 @@
                  type.c_str ());
         }
 
-      tree_parameter_list *m_ret_list = fcn->return_list ();
+      tree_parameter_list *m_ret_list = ufcn->return_list ();
 
       retval = (m_ret_list ? m_ret_list->length () : 0);
 
-      if (fcn->takes_var_return ())
+      if (ufcn->takes_var_return ())
         retval = -1 - retval;
     }
   else
@@ -869,7 +867,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} optimize_subsasgn_calls ()
 @deftypefnx {} {@var{old_val} =} optimize_subsasgn_calls (@var{new_val})
-@deftypefnx {} {} optimize_subsasgn_calls (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} optimize_subsasgn_calls (@var{new_val}, "local")
 Query or set the internal flag for @code{subsasgn} method call
 optimizations.
 
@@ -905,7 +903,7 @@
 
 DEFMETHOD (isargout, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} isargout (@var{k})
+@deftypefn {} {@var{tf} =} isargout (@var{k})
 Within a function, return a logical value indicating whether the argument
 @var{k} will be assigned to a variable on output.
 
--- a/libinterp/octave-value/ov-usr-fcn.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov-usr-fcn.h	Tue Nov 15 13:15:28 2022 -0800
@@ -216,9 +216,9 @@
 
   // No copying!
 
-  octave_user_function (const octave_user_function& fn) = delete;
+  octave_user_function (const octave_user_function& fcn) = delete;
 
-  octave_user_function& operator = (const octave_user_function& fn) = delete;
+  octave_user_function& operator = (const octave_user_function& fcn) = delete;
 
   ~octave_user_function (void);
 
--- a/libinterp/octave-value/ov.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1306,7 +1306,7 @@
 
 DEFUN (double, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} double (@var{x})
+@deftypefn {} {@var{y} =} double (@var{x})
 Convert @var{x} to double precision type.
 @seealso{single}
 @end deftypefn */)
@@ -1350,7 +1350,7 @@
 
 DEFUN (single, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} single (@var{x})
+@deftypefn {} {@var{y} =} single (@var{x})
 Convert @var{x} to single precision type.
 @seealso{double}
 @end deftypefn */)
@@ -1391,7 +1391,7 @@
 
 DEFUN (int8, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} int8 (@var{x})
+@deftypefn {} {@var{y} =} int8 (@var{x})
 Convert @var{x} to 8-bit integer type.
 @seealso{uint8, int16, uint16, int32, uint32, int64, uint64}
 @end deftypefn */)
@@ -1413,7 +1413,7 @@
 
 DEFUN (int16, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} int16 (@var{x})
+@deftypefn {} {@var{y} =} int16 (@var{x})
 Convert @var{x} to 16-bit integer type.
 @seealso{int8, uint8, uint16, int32, uint32, int64, uint64}
 @end deftypefn */)
@@ -1435,7 +1435,7 @@
 
 DEFUN (int32, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} int32 (@var{x})
+@deftypefn {} {@var{y} =} int32 (@var{x})
 Convert @var{x} to 32-bit integer type.
 @seealso{int8, uint8, int16, uint16, uint32, int64, uint64}
 @end deftypefn */)
@@ -1457,7 +1457,7 @@
 
 DEFUN (int64, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} int64 (@var{x})
+@deftypefn {} {@var{y} =} int64 (@var{x})
 Convert @var{x} to 64-bit integer type.
 @seealso{int8, uint8, int16, uint16, int32, uint32, uint64}
 @end deftypefn */)
@@ -1479,7 +1479,7 @@
 
 DEFUN (uint8, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} uint8 (@var{x})
+@deftypefn {} {@var{y} =} uint8 (@var{x})
 Convert @var{x} to unsigned 8-bit integer type.
 @seealso{int8, int16, uint16, int32, uint32, int64, uint64}
 @end deftypefn */)
@@ -1501,7 +1501,7 @@
 
 DEFUN (uint16, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} uint16 (@var{x})
+@deftypefn {} {@var{y} =} uint16 (@var{x})
 Convert @var{x} to unsigned 16-bit integer type.
 @seealso{int8, uint8, int16, int32, uint32, int64, uint64}
 @end deftypefn */)
@@ -1523,7 +1523,7 @@
 
 DEFUN (uint32, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} uint32 (@var{x})
+@deftypefn {} {@var{y} =} uint32 (@var{x})
 Convert @var{x} to unsigned 32-bit integer type.
 @seealso{int8, uint8, int16, uint16, int32, int64, uint64}
 @end deftypefn */)
@@ -1545,7 +1545,7 @@
 
 DEFUN (uint64, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} uint64 (@var{x})
+@deftypefn {} {@var{y} =} uint64 (@var{x})
 Convert @var{x} to unsigned 64-bit integer type.
 @seealso{int8, uint8, int16, uint16, int32, uint32, int64}
 @end deftypefn */)
@@ -1691,8 +1691,7 @@
           int tthis = this->type_id ();
           int trhs = rhs.type_id ();
 
-          octave::type_info& ti
-            = octave::__get_type_info__ ("octave_value::assign");
+          octave::type_info& ti = octave::__get_type_info__ ();
 
           f = ti.lookup_assign_op (op, tthis, trhs);
         }
@@ -2495,7 +2494,7 @@
       // Genuine.
       int t = type_id ();
 
-      octave::type_info& ti = octave::__get_type_info__ ("non_const_unary_op");
+      octave::type_info& ti = octave::__get_type_info__ ();
 
       octave::type_info::non_const_unary_op_fcn f
         = ti.lookup_non_const_unary_op (op, t);
@@ -2558,8 +2557,7 @@
       // Only attempt to operate in-place if this variable is unshared.
       if (m_rep->count == 1)
         {
-          octave::type_info& ti
-            = octave::__get_type_info__ ("non_const_unary_op");
+          octave::type_info& ti = octave::__get_type_info__ ();
 
           f = ti.lookup_non_const_unary_op (op, t);
         }
@@ -2843,7 +2841,7 @@
   binary_op (octave_value::binary_op op, const octave_value& v1,
              const octave_value& v2)
   {
-    type_info& ti = __get_type_info__ ("binary_op");
+    type_info& ti = __get_type_info__ ();
 
     return binary_op (ti, op, v1, v2);
   }
@@ -2937,7 +2935,7 @@
   binary_op (octave_value::compound_binary_op op,
              const octave_value& v1, const octave_value& v2)
   {
-    type_info& ti = __get_type_info__ ("binary_op");
+    type_info& ti = __get_type_info__ ();
 
     return binary_op (ti, op, v1, v2);
   }
@@ -3024,7 +3022,7 @@
   cat_op (const octave_value& v1, const octave_value& v2,
           const Array<octave_idx_type>& ra_idx)
   {
-    type_info& ti = __get_type_info__ ("cat_op");
+    type_info& ti = __get_type_info__ ();
 
     return cat_op (ti, v1, v2, ra_idx);
   }
@@ -3489,7 +3487,7 @@
             tmp1(0) = base;
           }
 
-        interpreter& interp = __get_interpreter__ ("colon_op");
+        interpreter& interp = __get_interpreter__ ();
 
         symbol_table& symtab = interp.get_symbol_table ();
 
@@ -3630,7 +3628,7 @@
   octave_value
   unary_op (octave_value::unary_op op, const octave_value& v)
   {
-    type_info& ti = __get_type_info__ ("unary_op");
+    type_info& ti = __get_type_info__ ();
 
     return unary_op (ti, op, v);
   }
@@ -3724,7 +3722,7 @@
 
 DEFUN (sizeof, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} sizeof (@var{val})
+@deftypefn {} {@var{sz} =} sizeof (@var{val})
 Return the size of @var{val} in bytes.
 @seealso{whos}
 @end deftypefn */)
@@ -3802,7 +3800,7 @@
 
 DEFUN (subsref, args, nargout,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} subsref (@var{val}, @var{idx})
+@deftypefn {} {@var{newval} =} subsref (@var{val}, @var{idx})
 Perform the subscripted element selection operation on @var{val} according
 to the subscript specified by @var{idx}.
 
@@ -3854,7 +3852,7 @@
 
 DEFUN (subsasgn, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} subsasgn (@var{val}, @var{idx}, @var{rhs})
+@deftypefn {} {@var{newval} =} subsasgn (@var{val}, @var{idx}, @var{rhs})
 Perform the subscripted assignment operation according to the subscript
 specified by @var{idx}.
 
@@ -3986,7 +3984,7 @@
 
 DEFUN (is_sq_string, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} is_sq_string (@var{x})
+@deftypefn {} {@var{tf} =} is_sq_string (@var{x})
 Return true if @var{x} is a single-quoted character string.
 @seealso{is_dq_string, ischar}
 @end deftypefn */)
@@ -4009,7 +4007,7 @@
 
 DEFUN (is_dq_string, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} is_dq_string (@var{x})
+@deftypefn {} {@var{tf} =} is_dq_string (@var{x})
 Return true if @var{x} is a double-quoted character string.
 @seealso{is_sq_string, ischar}
 @end deftypefn */)
@@ -4034,7 +4032,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} optimize_permutation_matrix ()
 @deftypefnx {} {@var{old_val} =} optimize_permutation_matrix (@var{new_val})
-@deftypefnx {} {} optimize_permutation_matrix (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} optimize_permutation_matrix (@var{new_val}, "local")
 Query or set whether a special space-efficient format is used for storing
 permutation matrices.
 
@@ -4065,7 +4063,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} optimize_diagonal_matrix ()
 @deftypefnx {} {@var{old_val} =} optimize_diagonal_matrix (@var{new_val})
-@deftypefnx {} {} optimize_diagonal_matrix (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} optimize_diagonal_matrix (@var{new_val}, "local")
 Query or set whether a special space-efficient format is used for storing
 diagonal matrices.
 
@@ -4110,7 +4108,7 @@
        doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} optimize_range ()
 @deftypefnx {} {@var{old_val} =} optimize_range (@var{new_val})
-@deftypefnx {} {} optimize_range (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} optimize_range (@var{new_val}, "local")
 Query or set whether a special space-efficient format is used for storing
 ranges.
 
--- a/libinterp/octave-value/ov.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ov.h	Tue Nov 15 13:15:28 2022 -0800
@@ -1070,6 +1070,9 @@
   string_vector map_keys (void) const
   { return m_rep->map_keys (); }
 
+  bool isfield (const std::string& field_name) const
+  { return m_rep->isfield (field_name); }
+
   std::size_t nparents (void) const
   { return m_rep->nparents (); }
 
@@ -1901,6 +1904,8 @@
 extern OCTINTERP_API void install_types (octave::type_info&);
 
 // Templated value extractors.
+// FIXME: would be more consistent to use panic_impossible(), rather than
+//        assert(), but including "error.h" leads to compilation errors.
 template <typename Value>
 inline Value octave_value_extract (const octave_value&)
 { assert (false); }
--- a/libinterp/octave-value/ovl.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave-value/ovl.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -71,7 +71,7 @@
             m_data[k++] = ovl(i);
         }
 
-      assert (k == nel);
+      panic_unless (k == nel);
     }
 
 }
--- a/libinterp/octave.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -159,7 +159,9 @@
             break;
 
           case EXPERIMENTAL_TERMINAL_WIDGET_OPTION:
+#if defined (HAVE_QSCINTILLA)
             m_experimental_terminal_widget = true;
+#endif
             break;
 
           case GUI_OPTION:
@@ -242,7 +244,7 @@
     octave_scalar_map m;
 
     m.assign ("sys_argc", sys_argc ());
-    m.assign ("sys_argv", string_vector (sys_argv ()));
+    m.assign ("sys_argv", Cell (string_vector (sys_argv ())));
     m.assign ("echo_commands", echo_commands ());
     m.assign ("forced_interactive", forced_interactive ());
     m.assign ("forced_line_editing", forced_line_editing ());
@@ -267,8 +269,8 @@
     m.assign ("info_file", info_file ());
     m.assign ("info_program", info_program ());
     m.assign ("texi_macros_file", texi_macros_file ());
-    m.assign ("all_args", all_args ());
-    m.assign ("remaining_args", remaining_args ());
+    m.assign ("all_args", Cell (all_args ()));
+    m.assign ("remaining_args", Cell (remaining_args ()));
 
     return m;
   }
@@ -429,7 +431,7 @@
 
 DEFUN (isguirunning, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} isguirunning ()
+@deftypefn {} {@var{tf} =} isguirunning ()
 Return true if Octave is running in GUI mode and false otherwise.
 @seealso{have_window_system}
 @end deftypefn */)
@@ -450,7 +452,7 @@
 
 DEFUN (argv, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} argv ()
+@deftypefn {} {@var{args} =} argv ()
 Return the command line arguments passed to Octave.
 
 For example, if you invoked Octave using the command
@@ -481,9 +483,9 @@
 
 DEFUN (cmdline_options, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} argv ()
-Return a structure containing info about the command line arguments
-passed to Octave.
+@deftypefn {} {@var{opt_struct} =} cmdline_options ()
+Return a structure containing info about the command line arguments passed to
+Octave.
 @end deftypefn */)
 {
   if (args.length () != 0)
@@ -501,13 +503,13 @@
 
 DEFUN (program_invocation_name, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} program_invocation_name ()
+@deftypefn {} {@var{name} =} program_invocation_name ()
 Return the name that was typed at the shell prompt to run Octave.
 
-If executing a script from the command line (e.g., @code{octave foo.m})
-or using an executable Octave script, the program name is set to the
-name of the script.  @xref{Executable Octave Programs}, for an example of
-how to create an executable Octave script.
+If executing a script from the command line (e.g., @code{octave foo.m}) or
+using an executable Octave script, the program name is set to the name of the
+script.  @xref{Executable Octave Programs}, for an example of how to create an
+executable Octave script.
 @seealso{program_name}
 @end deftypefn */)
 {
@@ -524,7 +526,7 @@
 
 DEFUN (program_name, args, ,
        doc: /* -*- texinfo -*-
-@deftypefn {} {} program_name ()
+@deftypefn {} {@var{name} =} program_name ()
 Return the last component of the value returned by
 @code{program_invocation_name}.
 @seealso{program_invocation_name}
--- a/libinterp/octave.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/octave.h	Tue Nov 15 13:15:28 2022 -0800
@@ -57,11 +57,13 @@
 
     bool echo_commands (void) const { return m_echo_commands; }
 
-    bool experimental_terminal_widget (void) const { return m_experimental_terminal_widget; }
+    bool experimental_terminal_widget (void) const
+    { return m_experimental_terminal_widget; }
     bool forced_interactive (void) const { return m_forced_interactive; }
     bool forced_line_editing (void) const { return m_forced_line_editing; }
     bool gui (void) const { return m_gui; }
-    bool inhibit_startup_message (void) const { return m_inhibit_startup_message; }
+    bool inhibit_startup_message (void) const
+    { return m_inhibit_startup_message; }
     bool line_editing (void) const { return m_line_editing; }
 
     bool no_window_system (void) const { return m_no_window_system; }
@@ -74,7 +76,8 @@
     bool traditional (void) const { return m_traditional; }
     bool verbose_flag (void) const { return m_verbose_flag; }
     std::string code_to_eval (void) const { return m_code_to_eval; }
-    std::list<std::string> command_line_path (void) const { return m_command_line_path; }
+    std::list<std::string> command_line_path (void) const
+    { return m_command_line_path; }
     std::string docstrings_file (void) const { return m_docstrings_file; }
     std::string doc_cache_file (void) const { return m_doc_cache_file; }
     std::string exec_path (void) const { return m_exec_path; }
@@ -87,7 +90,8 @@
 
     void echo_commands (bool arg) { m_echo_commands = arg; }
 
-    void experimental_terminal_widget (bool arg) { m_experimental_terminal_widget = arg; }
+    void experimental_terminal_widget (bool arg)
+    { m_experimental_terminal_widget = arg; }
     void forced_line_editing (bool arg) { m_forced_line_editing = arg; }
     void forced_interactive (bool arg) { m_forced_interactive = arg; }
     void gui (bool arg) { m_gui = arg; }
@@ -104,7 +108,8 @@
     void traditional (bool arg) { m_traditional = arg; }
     void verbose_flag (bool arg) { m_verbose_flag = arg; }
     void code_to_eval (const std::string& arg) { m_code_to_eval = arg; }
-    void command_line_path (const std::list<std::string>& arg) { m_command_line_path = arg; }
+    void command_line_path (const std::list<std::string>& arg)
+    { m_command_line_path = arg; }
     void docstrings_file (const std::string& arg) { m_docstrings_file = arg; }
     void doc_cache_file (const std::string& arg) { m_doc_cache_file = arg; }
     void exec_path (const std::string& arg) { m_exec_path = arg; }
@@ -282,7 +287,8 @@
     virtual bool gui_running (void) const { return false; }
     virtual void gui_running (bool) { }
 
-    void program_invocation_name (const std::string& nm) { m_program_invocation_name = nm; }
+    void program_invocation_name (const std::string& nm)
+    { m_program_invocation_name = nm; }
 
     void program_name (const std::string& nm) { m_program_name = nm; }
 
--- a/libinterp/operators/op-class.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/operators/op-class.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -55,9 +55,9 @@
 {
   std::string class_name = a.class_name ();
 
-  octave_value meth
-    = octave::__get_symbol_table__ ("oct_unop_" + opname)
-      .find_method (opname, class_name);
+  octave::symbol_table& symtab = octave::__get_symbol_table__ ();
+
+  octave_value meth = symtab.find_method (opname, class_name);
 
   if (meth.is_defined ())
     {
@@ -140,8 +140,7 @@
 oct_binop_default (const octave_value& a1, const octave_value& a2,
                    const std::string& opname)
 {
-  octave::symbol_table& symtab
-    = octave::__get_symbol_table__ ("oct_binop_" + opname);
+  octave::symbol_table& symtab = octave::__get_symbol_table__ ();
 
   // Dispatch to first (leftmost) operand by default.
   std::string dispatch_type = a1.class_name ();
--- a/libinterp/operators/ops.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/operators/ops.h	Tue Nov 15 13:15:28 2022 -0800
@@ -29,6 +29,7 @@
 #include "octave-config.h"
 
 #include "Array-util.h"
+#include "error.h"
 
 namespace octave
 {
@@ -130,7 +131,7 @@
     CONCAT2 (octave_, t1)& v1 = dynamic_cast<CONCAT2 (octave_, t1)&> (a1); \
     const CONCAT2 (octave_, t2)& v2 = dynamic_cast<const CONCAT2 (octave_, t2)&> (a2); \
                                                                         \
-    assert (idx.empty ());                                              \
+    error_unless (idx.empty ());                                        \
     v1.matrix_ref () op v2.CONCAT2 (f, _value) ();                      \
                                                                         \
     return octave_value ();                                             \
@@ -145,7 +146,7 @@
     CONCAT2 (octave_, t1)& v1 = dynamic_cast<CONCAT2 (octave_, t1)&> (a1); \
     const CONCAT2 (octave_, t2)& v2 = dynamic_cast<const CONCAT2 (octave_, t2)&> (a2); \
                                                                         \
-    assert (idx.empty ());                                              \
+    error_unless (idx.empty ());                                        \
     fnop (v1.matrix_ref (), v2.CONCAT2 (f, _value) ());                 \
                                                                         \
     return octave_value ();                                             \
--- a/libinterp/parse-tree/bp-table.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/bp-table.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -176,7 +176,7 @@
       {
         Array<octave_value> W = U.index (0);
         if (W.isempty () || W(0).isempty ())
-          es.debug_on_caught (true);    // like "dbstop if caught error" with no ID
+          es.debug_on_caught (true);  // like "dbstop if caught error" with no ID
         else if (! W(0).iscell ())
           fail = true;
         else
@@ -338,13 +338,13 @@
 
   void bp_table::parse_dbfunction_params (const char *who,
                                           const octave_value_list& args,
-                                          std::string& func_name,
+                                          std::string& fcn_name,
                                           std::string& class_name,
                                           bp_table::bp_lines& lines,
                                           std::string& cond)
   {
     int nargin = args.length ();
-    func_name = "";
+    fcn_name = "";
     class_name = "";
     lines = bp_table::bp_lines ();
 
@@ -395,10 +395,10 @@
         switch (tok)
           {
           case dbstop_in:
-            func_name = args(pos).string_value ();
+            fcn_name = args(pos).string_value ();
             if (seen_in)
               error ("%s: Too many function names specified -- %s",
-                     who, func_name.c_str ());
+                     who, fcn_name.c_str ());
             else if (seen_at || seen_if)
               error ("%s: function name must come before line number and 'if'",
                      who);
@@ -426,9 +426,9 @@
                 if (atoi (arg.c_str ()) == 0)
                   {
                     // We have class and function names but already
-                    // stored the class name in func_name.
-                    class_name = func_name;
-                    func_name = arg;
+                    // stored the class name in fcn_name.
+                    class_name = fcn_name;
+                    fcn_name = arg;
                     pos++;
                     break;
                   }
@@ -438,7 +438,7 @@
               {
                 // It was a line number.  Get function name from debugger.
                 if (m_evaluator.in_debug_repl ())
-                  func_name = m_evaluator.get_user_code ()->profiler_name ();
+                  fcn_name = m_evaluator.get_user_code ()->profiler_name ();
                 else
                   error ("%s: function name must come before line number "
                          "and 'if'", who);
@@ -538,14 +538,14 @@
 %! dbclear all;   # Clear out breakpoints before test
 %! dbstop help;
 %! dbstop in ls;
-%! dbstop help at 104;
-%! dbstop in ls 123;     ## 123 is a comment; code line is at 126
+%! dbstop help at 105;  # 105 is a comment; code line is at 106
+%! dbstop in ls 123;    # 123 is a comment; code line is at 126
 %! dbstop help 204 if a==5;
 %! dbstop if error Octave:undefined-function;
 %! s = dbstatus;
 %! dbclear all;
 %! assert ({s.bkpt(:).name}, {"help", "help", "help>do_contents", "ls", "ls"});
-%! assert ([s.bkpt(:).line], [55, 105, 207, 63, 126]);
+%! assert ([s.bkpt(:).line], [56, 106, 208, 63, 126]);
 %! assert (s.errs, {"Octave:undefined-function"});
 */
 
@@ -670,7 +670,8 @@
   // a breakpoint there.  Put the system into debug_mode.
   int bp_table::add_breakpoint_in_function (const std::string& fname,
                                             const std::string& class_name,
-                                            int line, const std::string& condition)
+                                            int line,
+                                            const std::string& condition)
   {
     bp_lines line_info;
     line_info.insert (line);
--- a/libinterp/parse-tree/bp-table.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/bp-table.h	Tue Nov 15 13:15:28 2022 -0800
@@ -208,9 +208,12 @@
 
     bool condition_valid (const std::string& cond);
 
-    void parse_dbfunction_params (const char *who, const octave_value_list& args,
-                                  std::string& func_name, std::string& class_name,
-                                  bp_table::bp_lines& lines, std::string& cond);
+    void parse_dbfunction_params (const char *who,
+                                  const octave_value_list& args,
+                                  std::string& fcn_name,
+                                  std::string& class_name,
+                                  bp_table::bp_lines& lines,
+                                  std::string& cond);
 
   private:
 
--- a/libinterp/parse-tree/lex.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/lex.h	Tue Nov 15 13:15:28 2022 -0800
@@ -294,7 +294,7 @@
         m_bracketflag (0),
         m_braceflag (0),
         m_looping (0),
-        m_defining_func (0),
+        m_defining_fcn (0),
         m_looking_at_function_handle (0),
         m_block_comment_nesting_level (0),
         m_command_arg_paren_count (0),
@@ -451,7 +451,7 @@
     int m_looping;
 
     // nonzero means we're in the middle of defining a function.
-    int m_defining_func;
+    int m_defining_fcn;
 
     // nonzero means we are parsing a function handle.
     int m_looking_at_function_handle;
@@ -777,7 +777,8 @@
     { }
 
     lexer (FILE *file, interpreter& interp, const std::string& encoding)
-      : base_lexer (interp), m_reader (interp, file, encoding), m_initial_input (true)
+      : base_lexer (interp), m_reader (interp, file, encoding),
+        m_initial_input (true)
     { }
 
     lexer (const std::string& eval_string, interpreter& interp)
--- a/libinterp/parse-tree/lex.ll	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/lex.ll	Tue Nov 15 13:15:28 2022 -0800
@@ -699,7 +699,7 @@
         curr_lexer->m_looking_for_object_index = false;
         curr_lexer->m_at_beginning_of_statement = false;
 
-        if (curr_lexer->m_defining_func
+        if (curr_lexer->m_defining_fcn
             && ! curr_lexer->m_parsed_function_name.top ())
           curr_lexer->m_looking_at_return_list = true;
         else
@@ -2256,7 +2256,7 @@
     m_bracketflag = 0;
     m_braceflag = 0;
     m_looping = 0;
-    m_defining_func = 0;
+    m_defining_fcn = 0;
     m_looking_at_function_handle = 0;
     m_block_comment_nesting_level = 0;
     m_command_arg_paren_count = 0;
@@ -2697,7 +2697,7 @@
 
       case end_kw:
         if (inside_any_object_index ()
-            || (m_defining_func
+            || (m_defining_fcn
                 && ! (m_looking_at_return_list
                       || m_parsed_function_name.top ())))
           {
@@ -2846,7 +2846,7 @@
         break;
 
       case function_kw:
-        m_defining_func++;
+        m_defining_fcn++;
         m_parsed_function_name.push (false);
 
         if (! m_force_script && m_token_count == 0 && input_from_file ())
--- a/libinterp/parse-tree/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -86,6 +86,7 @@
   %reldir%/pt-stmt.cc \
   %reldir%/pt-tm-const.cc \
   %reldir%/pt-unop.cc \
+  %reldir%/pt-vm-eval.cc \
   %reldir%/pt-walk.cc \
   %reldir%/pt.cc \
   %reldir%/token.cc
--- a/libinterp/parse-tree/oct-lvalue.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/oct-lvalue.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -237,8 +237,7 @@
         // could happen because there is an index is out of range
         // and we will be resizing a cell array.
 
-        interpreter& interp
-          = __get_interpreter__ ("octave_lvalue::eval_for_numel");
+        interpreter& interp = __get_interpreter__ ();
 
         interp.recover_from_exception ();
 
--- a/libinterp/parse-tree/oct-lvalue.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/oct-lvalue.h	Tue Nov 15 13:15:28 2022 -0800
@@ -68,7 +68,8 @@
 
     octave_idx_type numel (void) const;
 
-    void set_index (const std::string& t, const std::list<octave_value_list>& i);
+    void set_index (const std::string& t,
+                    const std::list<octave_value_list>& i);
 
     void clear_index (void) { m_type = ""; m_idx.clear (); }
 
@@ -105,8 +106,6 @@
     std::string m_type;
 
     std::list<octave_value_list> m_idx;
-
-    octave_idx_type m_nel;
   };
 }
 
--- a/libinterp/parse-tree/oct-parse.yy	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/oct-parse.yy	Tue Nov 15 13:15:28 2022 -0800
@@ -1100,7 +1100,7 @@
                   {
                     OCTAVE_YYUSE ($3);
 
-                    $1->mark_braindead_shortcircuit ();
+                    parser.maybe_convert_to_braindead_shortcircuit ($1);
 
                     $$ = parser.start_if_command ($1, $4);
                   }
@@ -1112,7 +1112,7 @@
                   {
                     OCTAVE_YYUSE ($3, $6);
 
-                    $4->mark_braindead_shortcircuit ();
+                    parser.maybe_convert_to_braindead_shortcircuit ($4);
 
                     $$ = parser.make_elseif_clause ($1, $4, $7, $2);
                   }
@@ -1182,7 +1182,7 @@
                   {
                     OCTAVE_YYUSE ($5);
 
-                    $3->mark_braindead_shortcircuit ();
+                    parser.maybe_convert_to_braindead_shortcircuit ($3);
 
                     if (! ($$ = parser.make_while_command ($1, $3, $6, $7, $2)))
                       {
@@ -2099,12 +2099,12 @@
                   {
                     OCTAVE_YYUSE ($3);
 
-                    lexer.m_defining_func++;
+                    lexer.m_defining_fcn++;
                     lexer.m_parsed_function_name.push (false);
                   }
                   method_decl1
                   {
-                    lexer.m_defining_func--;
+                    lexer.m_defining_fcn--;
                     lexer.m_parsed_function_name.pop ();
 
                     $$ = parser.finish_classdef_external_method ($5, $2, $1);
@@ -2996,7 +2996,7 @@
     if (base->is_constant () && limit->is_constant ()
         && (! incr || incr->is_constant ()))
       {
-        interpreter& interp = __get_interpreter__ ("finish_colon_expression");
+        interpreter& interp = __get_interpreter__ ();
 
         try
           {
@@ -3140,6 +3140,37 @@
     return maybe_compound_binary_expression (op1, op2, l, c, t);
   }
 
+  void
+  base_parser::maybe_convert_to_braindead_shortcircuit (tree_expression*& expr)
+  {
+    if (expr->is_binary_expression ())
+      {
+        tree_binary_expression *binexp
+          = dynamic_cast<tree_binary_expression *> (expr);
+
+        tree_expression *lhs = binexp->lhs ();
+        tree_expression *rhs = binexp->rhs ();
+
+        maybe_convert_to_braindead_shortcircuit (lhs);
+        maybe_convert_to_braindead_shortcircuit (rhs);
+
+        octave_value::binary_op op_type = binexp->op_type ();
+        if (op_type == octave_value::op_el_and
+            || op_type == octave_value::op_el_or)
+          {
+            binexp->preserve_operands ();
+
+            int line = expr->line ();
+            int column = expr->column ();
+
+            delete expr;
+
+            expr = new tree_braindead_shortcircuit_binary_expression
+              (lhs, rhs, line, column, op_type);
+          }
+      }
+  }
+
   // Build a boolean expression.
 
   tree_expression *
@@ -4271,7 +4302,7 @@
     m_curr_fcn_depth--;
     m_function_scopes.pop ();
 
-    m_lexer.m_defining_func--;
+    m_lexer.m_defining_fcn--;
     m_lexer.m_parsed_function_name.pop ();
     m_lexer.m_looking_at_return_list = false;
     m_lexer.m_looking_at_parameter_list = false;
@@ -4838,8 +4869,7 @@
 
     if (local_fcns)
       {
-        symbol_table& symtab
-          = __get_symbol_table__ ("base_parser::finish_classdef_file");
+        symbol_table& symtab = __get_symbol_table__ ();
 
         for (tree_statement *elt : *local_fcns)
           {
@@ -5129,8 +5159,7 @@
 
     if (e->is_constant ())
       {
-        tree_evaluator& tw
-          = __get_evaluator__ ("validate_matrix_for_assignment");
+        tree_evaluator& tw = __get_evaluator__ ();
 
         octave_value ov = e->evaluate (tw);
 
@@ -5193,7 +5222,7 @@
 
     if (array_list->all_elements_are_constant ())
       {
-        interpreter& interp = __get_interpreter__ ("finish_array_list");
+        interpreter& interp = __get_interpreter__ ();
 
         try
           {
@@ -5957,7 +5986,7 @@
 
     if (! file.empty ())
       {
-        interpreter& interp = __get_interpreter__ ("get_help_from_file");
+        interpreter& interp = __get_interpreter__ ();
 
         symbol_found = true;
 
@@ -6023,7 +6052,7 @@
 
     int len = file.length ();
 
-    interpreter& interp = __get_interpreter__ ("load_fcn_from_file");
+    interpreter& interp = __get_interpreter__ ();
 
     dynamic_loader& dyn_loader = interp.get_dynamic_loader ();
 
@@ -6190,7 +6219,7 @@
   source_file (const std::string& file_name, const std::string& context,
                bool verbose, bool require_file)
   {
-    interpreter& interp = __get_interpreter__ ("source_file");
+    interpreter& interp = __get_interpreter__ ();
 
     interp.source_file (file_name, context, verbose, require_file);
   }
@@ -6240,7 +6269,7 @@
   octave_value_list
   feval (const char *name, const octave_value_list& args, int nargout)
   {
-    interpreter& interp = __get_interpreter__ ("feval");
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.feval (name, args, nargout);
   }
@@ -6248,7 +6277,7 @@
   octave_value_list
   feval (const std::string& name, const octave_value_list& args, int nargout)
   {
-    interpreter& interp = __get_interpreter__ ("feval");
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.feval (name, args, nargout);
   }
@@ -6256,7 +6285,7 @@
   octave_value_list
   feval (octave_function *fcn, const octave_value_list& args, int nargout)
   {
-    interpreter& interp = __get_interpreter__ ("feval");
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.feval (fcn, args, nargout);
   }
@@ -6264,7 +6293,7 @@
   octave_value_list
   feval (const octave_value& val, const octave_value_list& args, int nargout)
   {
-    interpreter& interp = __get_interpreter__ ("feval");
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.feval (val, args, nargout);
   }
@@ -6272,7 +6301,7 @@
   octave_value_list
   feval (const octave_value_list& args, int nargout)
   {
-    interpreter& interp = __get_interpreter__ ("feval");
+    interpreter& interp = __get_interpreter__ ();
 
     return interp.feval (args, nargout);
   }
--- a/libinterp/parse-tree/parse.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/parse.h	Tue Nov 15 13:15:28 2022 -0800
@@ -273,6 +273,10 @@
     make_binary_op (int op, tree_expression *op1, token *tok_val,
                     tree_expression *op2);
 
+    // Maybe convert EXPR to a braindead_shortcircuit expression.
+    OCTINTERP_API void
+    maybe_convert_to_braindead_shortcircuit (tree_expression*& expr);
+
     // Build a boolean expression.
     OCTINTERP_API tree_expression *
     make_boolean_op (int op, tree_expression *op1, token *tok_val,
--- a/libinterp/parse-tree/profiler.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/profiler.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -52,8 +52,6 @@
     for (const auto& nm : list)
       retval(i++) = nm;
 
-    assert (i == n);
-
     return retval;
   }
 
@@ -88,10 +86,10 @@
   profiler::tree_node*
   profiler::tree_node::exit (octave_idx_type /* fcn */)
   {
-    // FIXME: These assert statements don't make sense if profile() is called
-    //        from within a function hierarchy to begin with.  See bug #39587.
-    //  assert (m_parent);
-    //  assert (m_fcn_id == fcn);
+    // FIXME: These panic_unless statements don't make sense if profile() is
+    //  called from within a function hierarchy to begin with.  See bug #39587.
+    //  panic_unless (m_parent);
+    //  panic_unless (m_fcn_id == fcn);
 
     return m_parent;
   }
@@ -99,7 +97,8 @@
   void
   profiler::tree_node::build_flat (flat_profile& data) const
   {
-    // If this is not the top-level node, update profile entry for this function.
+    // If this is not the top-level node,
+    // update profile entry for this function.
     if (m_fcn_id != 0)
       {
         stats& entry = data[m_fcn_id - 1];
@@ -107,7 +106,7 @@
         entry.m_time += m_time;
         entry.m_calls += m_calls;
 
-        assert (m_parent);
+        panic_unless (m_parent);
         if (m_parent->m_fcn_id != 0)
           {
             entry.m_parents.insert (m_parent->m_fcn_id);
@@ -161,7 +160,6 @@
 
         ++i;
       }
-    assert (i == n);
 
     octave_map retval;
 
@@ -195,8 +193,8 @@
   profiler::enter_function (const std::string& fcn)
   {
     // The enter class will check and only call us if the profiler is active.
-    assert (enabled ());
-    assert (m_call_tree);
+    panic_unless (enabled ());
+    panic_unless (m_call_tree);
 
     // If there is already an active function, add to its time before
     // pushing the new one.
@@ -229,21 +227,23 @@
   {
     if (m_active_fcn)
       {
-        assert (m_call_tree);
-        // FIXME: This assert statements doesn't make sense if profile() is called
-        //        from within a function hierarchy to begin with.  See bug #39587.
-        //assert (m_active_fcn != m_call_tree);
+        panic_unless (m_call_tree);
+        // FIXME: This panic_unless statements doesn't make sense if profile()
+        //        is called from within a function hierarchy to begin with.
+        //        See bug #39587.
+        // panic_unless (m_active_fcn != m_call_tree);
 
-        // Usually, if we are disabled this function is not even called.  But the
-        // call disabling the profiler is an exception.  So also check here
+        // Usually, if we are disabled this function is not even called.  But
+        // the call disabling the profiler is an exception.  So also check here
         // and only record the time if enabled.
         if (enabled ())
           add_current_time ();
 
         fcn_index_map::iterator pos = m_fcn_index.find (fcn);
-        // FIXME: This assert statements doesn't make sense if profile() is called
-        //        from within a function hierarchy to begin with.  See bug #39587.
-        //assert (pos != m_fcn_index.end ());
+        // FIXME: This panic_unless statements doesn't make sense if profile()
+        //        is called from within a function hierarchy to begin with.
+        //        See bug #39587.
+        // panic_unless (pos != m_fcn_index.end ());
         m_active_fcn = m_active_fcn->exit (pos->second);
 
         // If this was an "inner call", we resume executing the parent function
@@ -385,7 +385,7 @@
 // Enable or disable the profiler data collection.
 DEFMETHOD (__profiler_enable__, interp, args, ,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __profiler_enable__ ()
+@deftypefn {} {@var{state} =} __profiler_enable__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
@@ -431,7 +431,7 @@
 // Query the timings collected by the profiler.
 DEFMETHOD (__profiler_data__, interp, args, nargout,
            doc: /* -*- texinfo -*-
-@deftypefn {} {} __profiler_data__ ()
+@deftypefn {} {@var{data} =} __profiler_data__ ()
 Undocumented internal function.
 @end deftypefn */)
 {
--- a/libinterp/parse-tree/profiler.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/profiler.h	Tue Nov 15 13:15:28 2022 -0800
@@ -185,7 +185,8 @@
 
     // Each function we see in the profiler is given a unique index (which
     // simply counts starting from 1).  We thus have to map profiler-names to
-    // those indices.  For all other stuff, we identify functions by their index.
+    // those indices.  For all other stuff, we identify functions by their
+    // index.
 
     typedef std::vector<std::string> function_set;
     typedef std::map<std::string, octave_idx_type> fcn_index_map;
@@ -198,7 +199,8 @@
     tree_node *m_call_tree;
     tree_node *m_active_fcn;
 
-    // Store last timestamp we had, when the currently active function was called.
+    // Store last timestamp we had, when the currently active function was
+    // called.
     double m_last_time;
 
     // These are private as only the unwind-protecting inner class enter
--- a/libinterp/parse-tree/pt-binop.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-binop.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -45,8 +45,6 @@
     warning_with_id ("Octave:possible-matlab-short-circuit-operator",
                      "Matlab-style short-circuit operation performed for operator %s",
                      op);
-
-    m_braindead_shortcircuit_warning_issued = true;
   }
 
   std::string
@@ -71,49 +69,6 @@
   octave_value
   tree_binary_expression::evaluate (tree_evaluator& tw, int)
   {
-    octave_value val;
-
-    if (is_eligible_for_braindead_shortcircuit ())
-      {
-        if (m_lhs)
-          {
-            octave_value a = m_lhs->evaluate (tw);
-
-            if (a.ndims () == 2 && a.rows () == 1 && a.columns () == 1)
-              {
-                bool result = false;
-
-                bool a_true = a.is_true ();
-
-                if (a_true)
-                  {
-                    if (m_etype == octave_value::op_el_or)
-                      {
-                        matlab_style_short_circuit_warning ("|");
-                        return octave_value (true);
-                      }
-                  }
-                else
-                  {
-                    if (m_etype == octave_value::op_el_and)
-                      {
-                        matlab_style_short_circuit_warning ("&");
-                        return octave_value (false);
-                      }
-                  }
-
-                if (m_rhs)
-                  {
-                    octave_value b = m_rhs->evaluate (tw);
-
-                    result = b.is_true ();
-                  }
-
-                return octave_value (result);
-              }
-          }
-      }
-
     if (m_lhs)
       {
         octave_value a = m_lhs->evaluate (tw);
@@ -137,12 +92,73 @@
 
                 type_info& ti = interp.get_type_info ();
 
-                val = binary_op (ti, m_etype, a, b);
+                return binary_op (ti, m_etype, a, b);
               }
           }
       }
 
-    return val;
+    return octave_value ();
+  }
+
+  tree_expression *
+  tree_braindead_shortcircuit_binary_expression::dup (symbol_scope& scope) const
+  {
+    tree_braindead_shortcircuit_binary_expression *new_be
+      = new tree_braindead_shortcircuit_binary_expression
+          (m_lhs ? m_lhs->dup (scope) : nullptr,
+           m_rhs ? m_rhs->dup (scope) : nullptr,
+           line (), column (), op_type ());
+
+    new_be->copy_base (*this);
+
+    return new_be;
+  }
+
+  octave_value
+  tree_braindead_shortcircuit_binary_expression::evaluate (tree_evaluator& tw,
+                                                           int)
+  {
+    if (m_lhs)
+      {
+        octave_value a = m_lhs->evaluate (tw);
+
+        if (a.ndims () == 2 && a.rows () == 1 && a.columns () == 1)
+          {
+            bool result = false;
+
+            bool a_true = a.is_true ();
+
+            octave_value::binary_op oper_type = op_type ();
+
+            if (a_true)
+              {
+                if (oper_type == octave_value::op_el_or)
+                  {
+                    matlab_style_short_circuit_warning ("|");
+                    return octave_value (true);
+                  }
+              }
+            else
+              {
+                if (oper_type == octave_value::op_el_and)
+                  {
+                    matlab_style_short_circuit_warning ("&");
+                    return octave_value (false);
+                  }
+              }
+
+            if (m_rhs)
+              {
+                octave_value b = m_rhs->evaluate (tw);
+
+                result = b.is_true ();
+              }
+
+            return octave_value (result);
+          }
+      }
+
+    return octave_value ();
   }
 
   // Boolean expressions.
--- a/libinterp/parse-tree/pt-binop.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-binop.h	Tue Nov 15 13:15:28 2022 -0800
@@ -51,16 +51,16 @@
                             octave_value::binary_op t
                             = octave_value::unknown_binary_op)
       : tree_expression (l, c), m_lhs (nullptr), m_rhs (nullptr), m_etype (t),
-        m_eligible_for_braindead_shortcircuit (false),
-        m_braindead_shortcircuit_warning_issued (false) { }
+        m_preserve_operands (false)
+    { }
 
     tree_binary_expression (tree_expression *a, tree_expression *b,
                             int l = -1, int c = -1,
                             octave_value::binary_op t
                             = octave_value::unknown_binary_op)
       : tree_expression (l, c), m_lhs (a), m_rhs (b), m_etype (t),
-        m_eligible_for_braindead_shortcircuit (false),
-        m_braindead_shortcircuit_warning_issued (false) { }
+        m_preserve_operands (false)
+    { }
 
     // No copying!
 
@@ -70,20 +70,14 @@
 
     ~tree_binary_expression (void)
     {
-      delete m_lhs;
-      delete m_rhs;
+      if (! m_preserve_operands)
+        {
+          delete m_lhs;
+          delete m_rhs;
+        }
     }
 
-    void mark_braindead_shortcircuit (void)
-    {
-      if (m_etype == octave_value::op_el_and || m_etype == octave_value::op_el_or)
-        {
-          m_eligible_for_braindead_shortcircuit = true;
-
-          m_lhs->mark_braindead_shortcircuit ();
-          m_rhs->mark_braindead_shortcircuit ();
-        }
-    }
+    void preserve_operands (void) { m_preserve_operands = true; }
 
     bool is_binary_expression (void) const { return true; }
 
@@ -96,11 +90,6 @@
     tree_expression * lhs (void) { return m_lhs; }
     tree_expression * rhs (void) { return m_rhs; }
 
-    bool is_eligible_for_braindead_shortcircuit (void) const
-    {
-      return m_eligible_for_braindead_shortcircuit;
-    }
-
     tree_expression * dup (symbol_scope& scope) const;
 
     octave_value evaluate (tree_evaluator&, int nargout = 1);
@@ -130,13 +119,37 @@
     // The type of the expression.
     octave_value::binary_op m_etype;
 
-    // TRUE if this is an | or & expression in the condition of an IF
-    // or WHILE statement.
-    bool m_eligible_for_braindead_shortcircuit;
+    // If TRUE, don't delete m_lhs and m_rhs in destructor;
+    bool m_preserve_operands;
+  };
+
+  class tree_braindead_shortcircuit_binary_expression
+    : public tree_binary_expression
+  {
+  public:
+
+    tree_braindead_shortcircuit_binary_expression (tree_expression *a,
+                                                   tree_expression *b,
+                                                   int l, int c,
+                                                   octave_value::binary_op t)
+      : tree_binary_expression (a, b, l, c, t)
+    { }
 
-    // TRUE if we have already issued a warning about short circuiting
-    // for this operator.
-    bool m_braindead_shortcircuit_warning_issued;
+    // No copying!
+
+    tree_braindead_shortcircuit_binary_expression
+      (const tree_braindead_shortcircuit_binary_expression&) = delete;
+
+    tree_braindead_shortcircuit_binary_expression&
+    operator = (const tree_braindead_shortcircuit_binary_expression&) = delete;
+
+    ~tree_braindead_shortcircuit_binary_expression (void) = default;
+
+    tree_expression * dup (symbol_scope& scope) const;
+
+    octave_value evaluate (tree_evaluator&, int nargout = 1);
+
+    using tree_binary_expression::evaluate_n;
   };
 
   // Boolean expressions.
--- a/libinterp/parse-tree/pt-classdef.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-classdef.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -61,10 +61,9 @@
         // part of an index expression.  It is also not an identifier in
         // the syntax tree but we need to handle it as if it were.  So
         // call the function here.
-
         octave_function *f = tmp.function_value (true);
 
-        assert (f);
+        panic_unless (f);
 
         return f->call (tw, nargout);
       }
--- a/libinterp/parse-tree/pt-colon.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-colon.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -42,7 +42,8 @@
     tree_colon_expression *new_ce
       = new tree_colon_expression (m_base ? m_base->dup (scope) : nullptr,
                                    m_limit ? m_limit->dup (scope) : nullptr,
-                                   m_increment ? m_increment->dup (scope) : nullptr,
+                                   m_increment ? m_increment->dup (scope)
+                                               : nullptr,
                                    line (), column ());
 
     new_ce->copy_base (*this);
--- a/libinterp/parse-tree/pt-eval.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-eval.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -53,9 +53,11 @@
 #include "input.h"
 #include "interpreter-private.h"
 #include "interpreter.h"
+#include "mex-private.h"
 #include "octave.h"
 #include "ov-classdef.h"
 #include "ov-fcn-handle.h"
+#include "ov-mex-fcn.h"
 #include "ov-usr-fcn.h"
 #include "ov-re-sparse.h"
 #include "ov-cx-sparse.h"
@@ -107,7 +109,7 @@
       };
 
     debugger (interpreter& interp, std::size_t level)
-      : m_interpreter (interp), m_level (level), m_debug_frame (0),
+      : m_interpreter (interp), m_level (level),
         m_execution_mode (EX_NORMAL), m_in_debug_repl (false)
     { }
 
@@ -134,7 +136,6 @@
     interpreter& m_interpreter;
 
     std::size_t m_level;
-    std::size_t m_debug_frame;
     execution_mode m_execution_mode;
     bool m_in_debug_repl;
   };
@@ -3324,11 +3325,162 @@
       body->accept (*this);
   }
 
-  void
-  tree_evaluator::visit_octave_user_script (octave_user_script&)
-  {
-    // ??
-    panic_impossible ();
+  octave_value
+  tree_evaluator::evaluate_anon_fcn_handle (tree_anon_fcn_handle& afh)
+  {
+    // FIXME: should CMD_LIST be limited to a single expression?
+    // I think that is what Matlab does.
+
+    symbol_scope new_scope;
+    symbol_scope scope = afh.scope ();
+    if (scope)
+      new_scope = scope.dup ();
+
+    tree_parameter_list *param_list = afh.parameter_list ();
+    tree_parameter_list *param_list_dup
+      = param_list ? param_list->dup (new_scope) : nullptr;
+
+    tree_parameter_list *ret_list = nullptr;
+
+    tree_statement_list *stmt_list = nullptr;
+
+    symbol_scope parent_scope = get_current_scope ();
+
+    new_scope.set_parent (parent_scope);
+    new_scope.set_primary_parent (parent_scope);
+
+    tree_expression *expr = afh.expression ();
+    if (expr)
+      {
+        tree_expression *expr_dup = expr->dup (new_scope);
+        tree_statement *stmt = new tree_statement (expr_dup, nullptr);
+        stmt_list = new tree_statement_list (stmt);
+      }
+
+    tree_anon_scopes anon_fcn_ctx (afh);
+
+    std::set<std::string> free_vars = anon_fcn_ctx.free_variables ();
+
+    stack_frame::local_vars_map local_vars;
+
+    std::shared_ptr<stack_frame> frame
+      = m_call_stack.get_current_stack_frame ();
+
+    for (auto& name : free_vars)
+      {
+        octave_value val = frame->varval (name);
+
+        if (val.is_defined ())
+          local_vars[name] = val;
+      }
+
+    octave_user_function *af
+      = new octave_user_function (new_scope, param_list_dup, ret_list,
+                                  stmt_list);
+
+    octave_function *curr_fcn = m_call_stack.current_function ();
+
+    bool is_nested = false;
+
+    if (curr_fcn)
+      {
+        // FIXME: maybe it would be better to just stash curr_fcn
+        // instead of individual bits of info about it?
+
+        // An anonymous function defined inside another nested function
+        // or parent of a nested function also behaves like a nested
+        // function.
+
+        if (curr_fcn->is_parent_function () || curr_fcn->is_nested_function ())
+          {
+            is_nested = true;
+            af->mark_as_nested_function ();
+            new_scope.set_nesting_depth (parent_scope.nesting_depth () + 1);
+          }
+
+        af->stash_dir_name (curr_fcn->dir_name ());
+
+        new_scope.cache_fcn_file_name (curr_fcn->fcn_file_name ());
+        new_scope.cache_dir_name (curr_fcn->dir_name ());
+
+        // The following is needed so that class method dispatch works
+        // properly for anonymous functions that wrap class methods.
+
+        if (curr_fcn->is_class_method () || curr_fcn->is_class_constructor ())
+          af->stash_dispatch_class (curr_fcn->dispatch_class ());
+
+        af->stash_fcn_file_name (curr_fcn->fcn_file_name ());
+      }
+
+    af->mark_as_anonymous_function ();
+
+    octave_value ov_fcn (af);
+
+    return (is_nested
+            ? octave_value (new octave_fcn_handle (ov_fcn, local_vars, frame))
+            : octave_value (new octave_fcn_handle (ov_fcn, local_vars)));
+  }
+
+  octave_value_list
+  tree_evaluator::execute_builtin_function (octave_builtin& builtin_function,
+                                            int nargout,
+                                            const octave_value_list& args)
+  {
+    octave_value_list retval;
+
+    if (args.has_magic_colon ())
+      error ("invalid use of colon in function argument list");
+
+    profiler::enter<octave_builtin> block (m_profiler, builtin_function);
+
+    octave_builtin::fcn fcn = builtin_function.function ();
+
+    if (fcn)
+      retval = (*fcn) (args, nargout);
+    else
+      {
+        octave_builtin::meth meth = builtin_function.method ();
+
+        retval = (*meth) (m_interpreter, args, nargout);
+      }
+
+    // Do not allow null values to be returned from functions.
+    // FIXME: perhaps true builtins should be allowed?
+
+    retval.make_storable_values ();
+
+    // Fix the case of a single undefined value.
+    // This happens when a compiled function uses
+    //
+    //   octave_value retval;
+    //
+    // instead of
+    //
+    //   octave_value_list retval;
+    //
+    // the idiom is very common, so we solve that here.
+
+    if (retval.length () == 1 && retval.xelem (0).is_undefined ())
+      retval.clear ();
+
+    return retval;
+  }
+
+  octave_value_list
+  tree_evaluator::execute_mex_function (octave_mex_function& mex_function,
+                                        int nargout,
+                                        const octave_value_list& args)
+  {
+    octave_value_list retval;
+
+    if (args.has_magic_colon ())
+      error ("invalid use of colon in function argument list");
+
+    profiler::enter<octave_mex_function> block (m_profiler, mex_function);
+
+    retval = call_mex (mex_function, args, nargout);
+
+    return retval;
   }
 
   octave_value_list
@@ -3375,7 +3527,7 @@
   }
 
   void
-  tree_evaluator::visit_octave_user_function (octave_user_function&)
+  tree_evaluator::visit_octave_user_script (octave_user_script&)
   {
     // ??
     panic_impossible ();
@@ -3495,7 +3647,7 @@
 
         if (user_function.is_special_expr ())
           {
-            assert (cmd_list->length () == 1);
+            panic_if (cmd_list->length () != 1);
 
             tree_statement *stmt = cmd_list->front ();
 
@@ -3541,6 +3693,13 @@
   }
 
   void
+  tree_evaluator::visit_octave_user_function (octave_user_function&)
+  {
+    // ??
+    panic_impossible ();
+  }
+
+  void
   tree_evaluator::visit_octave_user_function_header (octave_user_function&)
   {
     panic_impossible ();
@@ -4309,11 +4468,11 @@
           {
             if (m_dbstep_flag == 1 || is_end_of_fcn_or_script)
               {
-                // We get here if we are doing a "dbstep" or a "dbstep N" and the
-                // count has reached 1 so that we must stop and return to debug
-                // prompt.  Alternatively, "dbstep N" has been used but the end
-                // of the frame has been reached so we stop at the last line and
-                // return to prompt.
+                // We get here if we are doing a "dbstep" or a "dbstep N" and
+                // the count has reached 1 so that we must stop and return to
+                // debug prompt.  Alternatively, "dbstep N" has been used but
+                // the end of the frame has been reached so we stop at the last
+                // line and return to prompt.
 
                 break_on_this_statement = true;
               }
@@ -4421,13 +4580,13 @@
 
   octave_map tree_evaluator::get_autoload_map (void) const
   {
-    Cell func_names (dim_vector (m_autoload_map.size (), 1));
+    Cell fcn_names (dim_vector (m_autoload_map.size (), 1));
     Cell file_names (dim_vector (m_autoload_map.size (), 1));
 
     octave_idx_type i = 0;
     for (const auto& fcn_fname : m_autoload_map)
       {
-        func_names(i) = fcn_fname.first;
+        fcn_names(i) = fcn_fname.first;
         file_names(i) = fcn_fname.second;
 
         i++;
@@ -4435,7 +4594,7 @@
 
     octave_map m;
 
-    m.assign ("function", func_names);
+    m.assign ("function", fcn_names);
     m.assign ("file", file_names);
 
     return m;
@@ -5120,7 +5279,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} max_recursion_depth ()
 @deftypefnx {} {@var{old_val} =} max_recursion_depth (@var{new_val})
-@deftypefnx {} {} max_recursion_depth (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} max_recursion_depth (@var{new_val}, "local")
 Query or set the internal limit on the number of times a function may
 be called recursively.
 
@@ -5155,7 +5314,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} whos_line_format ()
 @deftypefnx {} {@var{old_val} =} whos_line_format (@var{new_val})
-@deftypefnx {} {} whos_line_format (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} whos_line_format (@var{new_val}, "local")
 Query or set the format string used by the command @code{whos}.
 
 A full format string is:
@@ -5236,7 +5395,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} silent_functions ()
 @deftypefnx {} {@var{old_val} =} silent_functions (@var{new_val})
-@deftypefnx {} {} silent_functions (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} silent_functions (@var{new_val}, "local")
 Query or set the internal variable that controls whether internal
 output from a function is suppressed.
 
@@ -5270,7 +5429,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} string_fill_char ()
 @deftypefnx {} {@var{old_val} =} string_fill_char (@var{new_val})
-@deftypefnx {} {} string_fill_char (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} string_fill_char (@var{new_val}, "local")
 Query or set the internal variable used to pad all rows of a character
 matrix to the same length.
 
@@ -5319,7 +5478,7 @@
            doc: /* -*- texinfo -*-
 @deftypefn  {} {@var{val} =} PS4 ()
 @deftypefnx {} {@var{old_val} =} PS4 (@var{new_val})
-@deftypefnx {} {} PS4 (@var{new_val}, "local")
+@deftypefnx {} {@var{old_val} =} PS4 (@var{new_val}, "local")
 Query or set the character string used to prefix output produced
 when echoing commands is enabled.
 
--- a/libinterp/parse-tree/pt-eval.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-eval.h	Tue Nov 15 13:15:28 2022 -0800
@@ -44,7 +44,11 @@
 #include "pt-walk.h"
 #include "stack-frame.h"
 
+class octave_builtin;
+class octave_mex_function;
 class octave_user_code;
+class octave_user_function;
+class octave_user_script;
 
 OCTAVE_NAMESPACE_BEGIN
 
@@ -246,6 +250,15 @@
 
     void visit_spmd_command (tree_spmd_command&);
 
+    octave_value evaluate_anon_fcn_handle (tree_anon_fcn_handle& afh);
+
+    octave_value_list
+    execute_builtin_function (octave_builtin& builtin_function, int nargout,
+                              const octave_value_list& args);
+    octave_value_list
+    execute_mex_function (octave_mex_function& mex_function, int nargout,
+                          const octave_value_list& args);
+
     void visit_octave_user_script (octave_user_script&);
 
     octave_value_list
@@ -417,8 +430,6 @@
 
     profiler& get_profiler (void) { return m_profiler; }
 
-    call_stack& get_call_stack (void) { return m_call_stack; }
-
     void push_stack_frame (const symbol_scope& scope);
 
     void push_stack_frame (octave_user_function *fcn,
--- a/libinterp/parse-tree/pt-exp.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-exp.h	Tue Nov 15 13:15:28 2022 -0800
@@ -91,7 +91,8 @@
 
     int paren_count (void) const { return m_num_parens; }
 
-    bool is_postfix_indexed (void) const { return (m_postfix_index_type != '\0'); }
+    bool is_postfix_indexed (void) const
+    { return (m_postfix_index_type != '\0'); }
 
     char postfix_index (void) const { return m_postfix_index_type; }
 
@@ -106,8 +107,6 @@
 
     virtual std::string original_text (void) const;
 
-    virtual void mark_braindead_shortcircuit (void) { }
-
     void mark_as_for_cmd_expr (void) { m_for_cmd_expr = true; }
 
     bool is_for_cmd_expr (void) const { return m_for_cmd_expr; }
--- a/libinterp/parse-tree/pt-fcn-handle.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-fcn-handle.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -101,95 +101,7 @@
   octave_value
   tree_anon_fcn_handle::evaluate (tree_evaluator& tw, int)
   {
-    // FIXME: should CMD_LIST be limited to a single expression?
-    // I think that is what Matlab does.
-
-    symbol_scope new_scope;
-    if (m_scope)
-      new_scope = m_scope.dup ();
-
-    tree_parameter_list *param_list_dup
-      = m_parameter_list ? m_parameter_list->dup (new_scope) : nullptr;
-
-    tree_parameter_list *ret_list = nullptr;
-
-    tree_statement_list *stmt_list = nullptr;
-
-    symbol_scope parent_scope = tw.get_current_scope ();
-
-    new_scope.set_parent (parent_scope);
-    new_scope.set_primary_parent (parent_scope);
-
-    if (m_expression)
-      {
-        tree_expression *expr_dup = m_expression->dup (new_scope);
-        tree_statement *stmt = new tree_statement (expr_dup, nullptr);
-        stmt_list = new tree_statement_list (stmt);
-      }
-
-    tree_anon_scopes anon_fcn_ctx (*this);
-
-    std::set<std::string> free_vars = anon_fcn_ctx.free_variables ();
-
-    stack_frame::local_vars_map local_vars;
-
-    call_stack& cs = tw.get_call_stack ();
-
-    std::shared_ptr<stack_frame> frame = cs.get_current_stack_frame ();
-
-    for (auto& name : free_vars)
-      {
-        octave_value val = frame->varval (name);
-
-        if (val.is_defined ())
-          local_vars[name] = val;
-      }
-
-    octave_user_function *af
-      = new octave_user_function (new_scope, param_list_dup, ret_list,
-                                  stmt_list);
-
-    octave_function *curr_fcn = cs.current_function ();
-
-    bool is_nested = false;
-
-    if (curr_fcn)
-      {
-        // FIXME: maybe it would be better to just stash curr_fcn
-        // instead of individual bits of info about it?
-
-        // An anonymous function defined inside another nested function
-        // or parent of a nested function also behaves like a nested
-        // function.
-
-        if (curr_fcn->is_parent_function () || curr_fcn->is_nested_function ())
-          {
-            is_nested = true;
-            af->mark_as_nested_function ();
-            new_scope.set_nesting_depth (parent_scope.nesting_depth () + 1);
-          }
-
-        af->stash_dir_name (curr_fcn->dir_name ());
-
-        new_scope.cache_fcn_file_name (curr_fcn->fcn_file_name ());
-        new_scope.cache_dir_name (curr_fcn->dir_name ());
-
-        // The following is needed so that class method dispatch works
-        // properly for anonymous functions that wrap class methods.
-
-        if (curr_fcn->is_class_method () || curr_fcn->is_class_constructor ())
-          af->stash_dispatch_class (curr_fcn->dispatch_class ());
-
-        af->stash_fcn_file_name (curr_fcn->fcn_file_name ());
-      }
-
-    af->mark_as_anonymous_function ();
-
-    octave_value ov_fcn (af);
-
-    return (is_nested
-            ? octave_value (new octave_fcn_handle (ov_fcn, local_vars, frame))
-            : octave_value (new octave_fcn_handle (ov_fcn, local_vars)));
+    return tw.evaluate_anon_fcn_handle (*this);
   }
 }
 
--- a/libinterp/parse-tree/pt-idx.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-idx.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -346,7 +346,7 @@
   {
     octave_value_list retval;
 
-    assert (! m_args.empty ());
+    panic_if (m_args.empty ());
 
     auto p_args = m_args.begin ();
     auto p_arg_nm = m_arg_nm.begin ();
--- a/libinterp/parse-tree/pt-pr-code.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-pr-code.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1203,7 +1203,7 @@
   void
   tree_print_code::indent (void)
   {
-    assert (m_curr_print_indent_level >= 0);
+    panic_unless (m_curr_print_indent_level >= 0);
 
     if (m_beginning_of_line)
       {
--- a/libinterp/parse-tree/pt-select.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-select.h	Tue Nov 15 13:15:28 2022 -0800
@@ -45,7 +45,8 @@
   public:
 
     tree_if_clause (int l = -1, int c = -1)
-      : tree (l, c), m_expr (nullptr), m_list (nullptr), m_lead_comm (nullptr) { }
+      : tree (l, c), m_expr (nullptr), m_list (nullptr), m_lead_comm (nullptr)
+    { }
 
     tree_if_clause (tree_statement_list *sl, comment_list *lc = nullptr,
                     int l = -1, int c = -1)
@@ -130,7 +131,8 @@
 
     tree_if_command (tree_if_command_list *lst, comment_list *lc,
                      comment_list *tc, int l = -1, int c = -1)
-      : tree_command (l, c), m_list (lst), m_lead_comm (lc), m_trail_comm (tc) { }
+      : tree_command (l, c), m_list (lst), m_lead_comm (lc), m_trail_comm (tc)
+    { }
 
     // No copying!
 
@@ -170,7 +172,8 @@
   public:
 
     tree_switch_case (int l = -1, int c = -1)
-      : tree (l, c), m_label (nullptr), m_list (nullptr), m_lead_comm (nullptr) { }
+      : tree (l, c), m_label (nullptr), m_list (nullptr), m_lead_comm (nullptr)
+    { }
 
     tree_switch_case (tree_statement_list *sl, comment_list *lc = nullptr,
                       int l = -1, int c = -1)
--- a/libinterp/parse-tree/pt-tm-const.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/pt-tm-const.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -608,7 +608,8 @@
           {
             // Optimize all scalars case.
             TYPE result (m_dv);
-            assert (static_cast<std::size_t> (result.numel ()) == row.length ());
+            panic_unless (static_cast<std::size_t> (result.numel ())
+                          == row.length ());
             octave_idx_type i = 0;
             for (const auto& elt : row)
               result(i++) = octave_value_extract<ELT_T> (elt);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libinterp/parse-tree/pt-vm-eval.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,72 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+
+#include "defun.h"
+#include "variables.h"
+
+OCTAVE_NAMESPACE_BEGIN
+
+// If TRUE, use VM evaluator rather than tree walker.
+
+static bool V__enable_vm_eval__ = false;
+
+DEFUN (__enable_vm_eval__, args, nargout,
+       doc: /* -*- texinfo -*-
+@deftypefn  {} {@var{val} =} __enable_vm_eval__ ()
+@deftypefnx {} {@var{old_val} =} __enable_vm_eval__ (@var{new_val})
+@deftypefnx {} {@var{old_val} =} __enable_vm_eval__ (@var{new_val}, "local")
+Query or set whether Octave uses a virtual machine (VM) for evaluation of
+parsed statements.
+
+The default value is false.  When false, Octave uses a traditional tree walker
+to evaluate statements parsed from m-code.  When true, Octave translates parsed
+statements to an intermediate representation that is then evaluated by a
+virtual machine.
+
+When called from inside a function with the @qcode{"local"} option, the setting
+is changed locally for the function and any subroutines it calls.  The original
+setting is restored when exiting the function.
+@end deftypefn */)
+{
+#if defined (OCTAVE_ENABLE_VM_EVALUATOR)
+
+  return set_internal_variable (V__enable_vm_eval__, args, nargout,
+                                "__enable_vm_eval__");
+
+#else
+
+  octave_unused_parameter (args);
+
+  err_disabled_feature ("vm-evaluator",
+                        "using a Virtual Machine for statement evaluation");
+
+#endif
+}
+
+OCTAVE_NAMESPACE_END
--- a/libinterp/parse-tree/token.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/parse-tree/token.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -29,6 +29,7 @@
 
 #include <cassert>
 
+#include "error.h"
 #include "token.h"
 
 namespace octave
@@ -95,14 +96,14 @@
   std::string
   token::text (void) const
   {
-    assert (m_type_tag == string_token);
+    panic_if (m_type_tag != string_token);
     return *m_tok_info.m_str;
   }
 
   octave_value
   token::number (void) const
   {
-    assert (m_type_tag == numeric_token);
+    panic_if (m_type_tag != numeric_token);
     return *m_tok_info.m_num;
   }
 
@@ -115,21 +116,21 @@
   token::end_tok_type
   token::ettype (void) const
   {
-    assert (m_type_tag == ettype_token);
+    panic_if (m_type_tag != ettype_token);
     return m_tok_info.m_et;
   }
 
   std::string
   token::superclass_method_name (void) const
   {
-    assert (m_type_tag == scls_name_token);
+    panic_if (m_type_tag != scls_name_token);
     return m_tok_info.m_superclass_info->m_method_name;
   }
 
   std::string
   token::superclass_class_name (void) const
   {
-    assert (m_type_tag == scls_name_token);
+    panic_if (m_type_tag != scls_name_token);
     return m_tok_info.m_superclass_info->m_class_name;
   }
 
--- a/libinterp/template-inst/Array-tc.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/template-inst/Array-tc.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -29,8 +29,7 @@
 #  include "config.h"
 #endif
 
-#include "Array.h"
-#include "Array.cc"
+#include "Array-oct.cc"
 
 #include "ov.h"
 #include "cdef-class.h"
@@ -38,19 +37,6 @@
 
 #include "oct-sort.cc"
 
-// Prevent implicit instantiations on some systems (Windows, others?)
-// that can lead to duplicate definitions of static data members.
-
-extern template class Array<Complex>;
-extern template class Array<FloatComplex>;
-extern template class Array<bool>;
-extern template class Array<char>;
-extern template class Array<double>;
-extern template class Array<float>;
-extern template class Array<octave::idx_vector>;
-extern template class Array<octave_idx_type>;
-extern template class Array<std::string>;
-
 #if defined (HAVE_PRAGMA_GCC_VISIBILITY)
 // Visibility attributes are ignored on template instantiation.
 // As a work-around, set visibility to default overriding compiler options.
@@ -58,13 +44,13 @@
 #endif
 
 NO_INSTANTIATE_ARRAY_SORT_API (octave_value, OCTINTERP_API);
-INSTANTIATE_ARRAY (octave_value, OCTINTERP_API);
+INSTANTIATE_ARRAY (octave_value, OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API);
 
 NO_INSTANTIATE_ARRAY_SORT_API (octave_value *, OCTINTERP_API);
-INSTANTIATE_ARRAY (octave_value *, OCTINTERP_API);
+INSTANTIATE_ARRAY (octave_value *, OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API);
 
 NO_INSTANTIATE_ARRAY_SORT_API (octave::cdef_object, OCTINTERP_API);
-INSTANTIATE_ARRAY (octave::cdef_object, OCTINTERP_API);
+INSTANTIATE_ARRAY (octave::cdef_object, OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API);
 
 #if defined (HAVE_PRAGMA_GCC_VISIBILITY)
 #  pragma GCC visibility pop
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libinterp/template-inst/Array.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+
+// Include this file when instantiating the Array class with new types in
+// projects linking to "liboctinterp".
+
+#include "Array-oct.cc"
+
+// "Protect" Array<T> instantiations that are exported by liboctinterp from
+// being implicitly instantiated in compilation units including this file.
+
+// instantiated in Array-tc.cc
+extern template class OCTINTERP_EXTERN_TEMPLATE_API Array<octave_value>;
+extern template class OCTINTERP_EXTERN_TEMPLATE_API Array<octave_value *>;
+extern template class OCTINTERP_EXTERN_TEMPLATE_API Array<octave::cdef_object>;
--- a/libinterp/template-inst/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/libinterp/template-inst/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -1,2 +1,5 @@
 TEMPLATE_INST_SRC = \
   %reldir%/Array-tc.cc
+
+TEMPLATE_INST_INC = \
+  %reldir%/Array.cc
--- a/liboctave/array/Array-C.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-C.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -33,15 +33,16 @@
 #include "lo-mappers.h"
 
 #include "Array.h"
-#include "Array.cc"
-#include "oct-sort.cc"
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
 
-extern template class Array<octave::idx_vector>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
 extern template class Array<octave_idx_type>;
 
+#include "Array-base.cc"
+#include "oct-sort.cc"
+
 template <>
 inline bool
 sort_isnan<Complex> (const Complex& x)
@@ -94,7 +95,7 @@
 
 template class octave_sort<Complex>;
 
-INSTANTIATE_ARRAY (Complex, OCTAVE_API);
+INSTANTIATE_ARRAY (Complex, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 template OCTAVE_API std::ostream& operator << (std::ostream&,
                                                const Array<Complex>&);
--- a/liboctave/array/Array-b.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-b.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -30,18 +30,19 @@
 // Instantiate Arrays of bool values.
 
 #include "Array.h"
-#include "Array.cc"
+
+// Prevent implicit instantiations on some systems (Windows, others?)
+// that can lead to duplicate definitions of static data members.
+
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
+extern template class Array<octave_idx_type>;
+
+#include "Array-base.cc"
 
 #define INLINE_ASCENDING_SORT 1
 #define INLINE_DESCENDING_SORT 1
 #include "oct-sort.cc"
 
-// Prevent implicit instantiations on some systems (Windows, others?)
-// that can lead to duplicate definitions of static data members.
-
-extern template class Array<octave::idx_vector>;
-extern template class Array<octave_idx_type>;
-
 // Specialize bool sorting (aka stable partitioning).
 
 template <bool desc>
@@ -120,7 +121,7 @@
 
 template class octave_sort<bool>;
 
-INSTANTIATE_ARRAY (bool, OCTAVE_API);
+INSTANTIATE_ARRAY (bool, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 template OCTAVE_API std::ostream& operator << (std::ostream&,
                                                const Array<bool>&);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/array/Array-base.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,2889 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 1993-2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+// Do not include this file directly to instantiate the Array<T> template
+// class in code outside liboctave.  Include "Array-oct.cc" or "Array.cc"
+// instead.
+
+// This file should not include config.h.  It is only included in other
+// C++ source files that should have included config.h before including
+// this file.
+
+#include <ostream>
+
+#include "Array-util.h"
+#include "Array.h"
+#include "lo-mappers.h"
+#include "oct-locbuf.h"
+
+// One dimensional array class.  Handles the reference counting for
+// all the derived classes.
+
+template <typename T, typename Alloc>
+typename Array<T, Alloc>::ArrayRep *
+Array<T, Alloc>::nil_rep (void)
+{
+  static ArrayRep nr;
+  return &nr;
+}
+
+// This is similar to the template for containers but specialized for Array.
+// Note we can't specialize a member without also specializing the class.
+template <typename T, typename Alloc>
+Array<T, Alloc>::Array (const Array<T, Alloc>& a, const dim_vector& dv)
+  : m_dimensions (dv), m_rep (a.m_rep),
+    m_slice_data (a.m_slice_data), m_slice_len (a.m_slice_len)
+{
+  bool invalid_size = false;
+
+  octave_idx_type new_numel = 0;
+
+  try
+    {
+      // Safe numel may throw a bad_alloc error because the new
+      // dimensions are too large to allocate.  Trap that here so
+      // we can issue a more helpful diagnostic that is consistent
+      // with other size mismatch failures.
+
+      new_numel = m_dimensions.safe_numel ();
+    }
+  catch (const std::bad_alloc&)
+    {
+      invalid_size = true;
+    }
+
+  if (invalid_size || new_numel != a.numel ())
+    {
+      std::string dimensions_str = a.m_dimensions.str ();
+      std::string new_dims_str = m_dimensions.str ();
+
+      (*current_liboctave_error_handler)
+        ("reshape: can't reshape %s array to %s array",
+         dimensions_str.c_str (), new_dims_str.c_str ());
+    }
+
+  // This goes here because if an exception is thrown by the above,
+  // destructor will be never called.
+  m_rep->m_count++;
+  m_dimensions.chop_trailing_singletons ();
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::fill (const T& val)
+{
+  if (m_rep->m_count > 1)
+    {
+      --m_rep->m_count;
+      m_rep = new ArrayRep (numel (), val);
+      m_slice_data = m_rep->m_data;
+    }
+  else
+    std::fill_n (m_slice_data, m_slice_len, val);
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::clear (void)
+{
+  if (--m_rep->m_count == 0)
+    delete m_rep;
+
+  m_rep = nil_rep ();
+  m_rep->m_count++;
+  m_slice_data = m_rep->m_data;
+  m_slice_len = m_rep->m_len;
+
+  m_dimensions = dim_vector ();
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::clear (const dim_vector& dv)
+{
+  if (--m_rep->m_count == 0)
+    delete m_rep;
+
+  m_rep = new ArrayRep (dv.safe_numel ());
+  m_slice_data = m_rep->m_data;
+  m_slice_len = m_rep->m_len;
+
+  m_dimensions = dv;
+  m_dimensions.chop_trailing_singletons ();
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::squeeze (void) const
+{
+  Array<T, Alloc> retval = *this;
+
+  if (ndims () > 2)
+    {
+      bool dims_changed = false;
+
+      dim_vector new_dimensions = m_dimensions;
+
+      int k = 0;
+
+      for (int i = 0; i < ndims (); i++)
+        {
+          if (m_dimensions(i) == 1)
+            dims_changed = true;
+          else
+            new_dimensions(k++) = m_dimensions(i);
+        }
+
+      if (dims_changed)
+        {
+          switch (k)
+            {
+            case 0:
+              new_dimensions = dim_vector (1, 1);
+              break;
+
+            case 1:
+              {
+                octave_idx_type tmp = new_dimensions(0);
+
+                new_dimensions.resize (2);
+
+                new_dimensions(0) = tmp;
+                new_dimensions(1) = 1;
+              }
+              break;
+
+            default:
+              new_dimensions.resize (k);
+              break;
+            }
+        }
+
+      retval = Array<T, Alloc> (*this, new_dimensions);
+    }
+
+  return retval;
+}
+
+template <typename T, typename Alloc>
+octave_idx_type
+Array<T, Alloc>::compute_index (octave_idx_type i, octave_idx_type j) const
+{
+  return ::compute_index (i, j, m_dimensions);
+}
+
+template <typename T, typename Alloc>
+octave_idx_type
+Array<T, Alloc>::compute_index (octave_idx_type i, octave_idx_type j,
+                         octave_idx_type k) const
+{
+  return ::compute_index (i, j, k, m_dimensions);
+}
+
+template <typename T, typename Alloc>
+octave_idx_type
+Array<T, Alloc>::compute_index (const Array<octave_idx_type>& ra_idx) const
+{
+  return ::compute_index (ra_idx, m_dimensions);
+}
+
+template <typename T, typename Alloc>
+T&
+Array<T, Alloc>::checkelem (octave_idx_type n)
+{
+  // Do checks directly to avoid recomputing m_slice_len.
+  if (n < 0)
+    octave::err_invalid_index (n);
+  if (n >= m_slice_len)
+    octave::err_index_out_of_range (1, 1, n+1, m_slice_len, m_dimensions);
+
+  return elem (n);
+}
+
+template <typename T, typename Alloc>
+T&
+Array<T, Alloc>::checkelem (octave_idx_type i, octave_idx_type j)
+{
+  return elem (compute_index (i, j));
+}
+
+template <typename T, typename Alloc>
+T&
+Array<T, Alloc>::checkelem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
+{
+  return elem (compute_index (i, j, k));
+}
+
+template <typename T, typename Alloc>
+T&
+Array<T, Alloc>::checkelem (const Array<octave_idx_type>& ra_idx)
+{
+  return elem (compute_index (ra_idx));
+}
+
+template <typename T, typename Alloc>
+typename Array<T, Alloc>::crefT
+Array<T, Alloc>::checkelem (octave_idx_type n) const
+{
+  // Do checks directly to avoid recomputing m_slice_len.
+  if (n < 0)
+    octave::err_invalid_index (n);
+  if (n >= m_slice_len)
+    octave::err_index_out_of_range (1, 1, n+1, m_slice_len, m_dimensions);
+
+  return elem (n);
+}
+
+template <typename T, typename Alloc>
+typename Array<T, Alloc>::crefT
+Array<T, Alloc>::checkelem (octave_idx_type i, octave_idx_type j) const
+{
+  return elem (compute_index (i, j));
+}
+
+template <typename T, typename Alloc>
+typename Array<T, Alloc>::crefT
+Array<T, Alloc>::checkelem (octave_idx_type i, octave_idx_type j,
+                     octave_idx_type k) const
+{
+  return elem (compute_index (i, j, k));
+}
+
+template <typename T, typename Alloc>
+typename Array<T, Alloc>::crefT
+Array<T, Alloc>::checkelem (const Array<octave_idx_type>& ra_idx) const
+{
+  return elem (compute_index (ra_idx));
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::column (octave_idx_type k) const
+{
+  octave_idx_type r = m_dimensions(0);
+
+  return Array<T, Alloc> (*this, dim_vector (r, 1), k*r, k*r + r);
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::page (octave_idx_type k) const
+{
+  octave_idx_type r = m_dimensions(0);
+  octave_idx_type c = m_dimensions(1);
+  octave_idx_type p = r*c;
+
+  return Array<T, Alloc> (*this, dim_vector (r, c), k*p, k*p + p);
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::linear_slice (octave_idx_type lo, octave_idx_type up) const
+{
+  if (up < lo)
+    up = lo;
+
+  return Array<T, Alloc> (*this, dim_vector (up - lo, 1), lo, up);
+}
+
+// Helper class for multi-d dimension permuting (generalized transpose).
+class rec_permute_helper
+{
+public:
+  rec_permute_helper (const dim_vector& dv, const Array<octave_idx_type>& perm)
+
+    : m_n (dv.ndims ()), m_top (0), m_dim (new octave_idx_type [2*m_n]),
+      m_stride (m_dim + m_n), m_use_blk (false)
+  {
+    assert (m_n == perm.numel ());
+
+    // Get cumulative dimensions.
+    OCTAVE_LOCAL_BUFFER (octave_idx_type, cdim, m_n+1);
+    cdim[0] = 1;
+    for (int i = 1; i < m_n+1; i++) cdim[i] = cdim[i-1] * dv(i-1);
+
+    // Setup the permuted strides.
+    for (int k = 0; k < m_n; k++)
+      {
+        int kk = perm(k);
+        m_dim[k] = dv(kk);
+        m_stride[k] = cdim[kk];
+      }
+
+    // Reduce contiguous runs.
+    for (int k = 1; k < m_n; k++)
+      {
+        if (m_stride[k] == m_stride[m_top]*m_dim[m_top])
+          m_dim[m_top] *= m_dim[k];
+        else
+          {
+            m_top++;
+            m_dim[m_top] = m_dim[k];
+            m_stride[m_top] = m_stride[k];
+          }
+      }
+
+    // Determine whether we can use block transposes.
+    m_use_blk = m_top >= 1 && m_stride[1] == 1 && m_stride[0] == m_dim[1];
+
+  }
+
+  // No copying!
+
+  rec_permute_helper (const rec_permute_helper&) = delete;
+
+  rec_permute_helper& operator = (const rec_permute_helper&) = delete;
+
+  ~rec_permute_helper (void) { delete [] m_dim; }
+
+  template <typename T>
+  void permute (const T *src, T *dest) const { do_permute (src, dest, m_top); }
+
+  // Helper method for fast blocked transpose.
+  template <typename T>
+  static T *
+  blk_trans (const T *src, T *dest, octave_idx_type nr, octave_idx_type nc)
+  {
+    static const octave_idx_type m = 8;
+    OCTAVE_LOCAL_BUFFER (T, blk, m*m);
+    for (octave_idx_type kr = 0; kr < nr; kr += m)
+      for (octave_idx_type kc = 0; kc < nc; kc += m)
+        {
+          octave_idx_type lr = std::min (m, nr - kr);
+          octave_idx_type lc = std::min (m, nc - kc);
+          if (lr == m && lc == m)
+            {
+              const T *ss = src + kc * nr + kr;
+              for (octave_idx_type j = 0; j < m; j++)
+                for (octave_idx_type i = 0; i < m; i++)
+                  blk[j*m+i] = ss[j*nr + i];
+              T *dd = dest + kr * nc + kc;
+              for (octave_idx_type j = 0; j < m; j++)
+                for (octave_idx_type i = 0; i < m; i++)
+                  dd[j*nc+i] = blk[i*m+j];
+            }
+          else
+            {
+              const T *ss = src + kc * nr + kr;
+              for (octave_idx_type j = 0; j < lc; j++)
+                for (octave_idx_type i = 0; i < lr; i++)
+                  blk[j*m+i] = ss[j*nr + i];
+              T *dd = dest + kr * nc + kc;
+              for (octave_idx_type j = 0; j < lr; j++)
+                for (octave_idx_type i = 0; i < lc; i++)
+                  dd[j*nc+i] = blk[i*m+j];
+            }
+        }
+
+    return dest + nr*nc;
+  }
+
+private:
+
+  // Recursive N-D generalized transpose
+  template <typename T>
+  T * do_permute (const T *src, T *dest, int lev) const
+  {
+    if (lev == 0)
+      {
+        octave_idx_type step = m_stride[0];
+        octave_idx_type len = m_dim[0];
+        if (step == 1)
+          {
+            std::copy_n (src, len, dest);
+            dest += len;
+          }
+        else
+          {
+            for (octave_idx_type i = 0, j = 0; i < len; i++, j += step)
+              dest[i] = src[j];
+
+            dest += len;
+          }
+      }
+    else if (m_use_blk && lev == 1)
+      dest = blk_trans (src, dest, m_dim[1], m_dim[0]);
+    else
+      {
+        octave_idx_type step = m_stride[lev];
+        octave_idx_type len = m_dim[lev];
+        for (octave_idx_type i = 0, j = 0; i < len; i++, j+= step)
+          dest = do_permute (src + i * step, dest, lev-1);
+      }
+
+    return dest;
+  }
+
+  //--------
+
+  // STRIDE occupies the last half of the space allocated for dim to
+  // avoid a double allocation.
+
+  int m_n;
+  int m_top;
+  octave_idx_type *m_dim;
+  octave_idx_type *m_stride;
+  bool m_use_blk;
+};
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::permute (const Array<octave_idx_type>& perm_vec_arg, bool inv) const
+{
+  Array<T, Alloc> retval;
+
+  Array<octave_idx_type> perm_vec = perm_vec_arg;
+
+  dim_vector dv = dims ();
+
+  int perm_vec_len = perm_vec_arg.numel ();
+
+  if (perm_vec_len < dv.ndims ())
+    (*current_liboctave_error_handler)
+      ("%s: invalid permutation vector", inv ? "ipermute" : "permute");
+
+  dim_vector dv_new = dim_vector::alloc (perm_vec_len);
+
+  // Append singleton dimensions as needed.
+  dv.resize (perm_vec_len, 1);
+
+  // Need this array to check for identical elements in permutation array.
+  OCTAVE_LOCAL_BUFFER_INIT (bool, checked, perm_vec_len, false);
+
+  bool identity = true;
+
+  // Find dimension vector of permuted array.
+  for (int i = 0; i < perm_vec_len; i++)
+    {
+      octave_idx_type perm_elt = perm_vec.elem (i);
+      if (perm_elt >= perm_vec_len || perm_elt < 0)
+        (*current_liboctave_error_handler)
+          ("%s: permutation vector contains an invalid element",
+           inv ? "ipermute" : "permute");
+
+      if (checked[perm_elt])
+        (*current_liboctave_error_handler)
+          ("%s: permutation vector cannot contain identical elements",
+           inv ? "ipermute" : "permute");
+      else
+        {
+          checked[perm_elt] = true;
+          identity = identity && perm_elt == i;
+        }
+    }
+
+  if (identity)
+    return *this;
+
+  if (inv)
+    {
+      for (int i = 0; i < perm_vec_len; i++)
+        perm_vec(perm_vec_arg(i)) = i;
+    }
+
+  for (int i = 0; i < perm_vec_len; i++)
+    dv_new(i) = dv(perm_vec(i));
+
+  retval = Array<T, Alloc> (dv_new);
+
+  if (numel () > 0)
+    {
+      rec_permute_helper rh (dv, perm_vec);
+      rh.permute (data (), retval.fortran_vec ());
+    }
+
+  return retval;
+}
+
+// Helper class for multi-d index reduction and recursive
+// indexing/indexed assignment.  Rationale: we could avoid recursion
+// using a state machine instead.  However, using recursion is much
+// more amenable to possible parallelization in the future.
+// Also, the recursion solution is cleaner and more understandable.
+
+class rec_index_helper
+{
+public:
+  rec_index_helper (const dim_vector& dv, const Array<octave::idx_vector>& ia)
+    : m_n (ia.numel ()), m_top (0), m_dim (new octave_idx_type [2*m_n]),
+      m_cdim (m_dim + m_n), m_idx (new octave::idx_vector [m_n])
+  {
+    assert (m_n > 0 && (dv.ndims () == std::max (m_n, 2)));
+
+    m_dim[0] = dv(0);
+    m_cdim[0] = 1;
+    m_idx[0] = ia(0);
+
+    for (int i = 1; i < m_n; i++)
+      {
+        // Try reduction...
+        if (m_idx[m_top].maybe_reduce (m_dim[m_top], ia(i), dv(i)))
+          {
+            // Reduction successful, fold dimensions.
+            m_dim[m_top] *= dv(i);
+          }
+        else
+          {
+            // Unsuccessful, store index & cumulative m_dim.
+            m_top++;
+            m_idx[m_top] = ia(i);
+            m_dim[m_top] = dv(i);
+            m_cdim[m_top] = m_cdim[m_top-1] * m_dim[m_top-1];
+          }
+      }
+  }
+
+  // No copying!
+
+  rec_index_helper (const rec_index_helper&) = delete;
+
+  rec_index_helper& operator = (const rec_index_helper&) = delete;
+
+  ~rec_index_helper (void) { delete [] m_idx; delete [] m_dim; }
+
+  template <typename T>
+  void index (const T *src, T *dest) const { do_index (src, dest, m_top); }
+
+  template <typename T>
+  void assign (const T *src, T *dest) const { do_assign (src, dest, m_top); }
+
+  template <typename T>
+  void fill (const T& val, T *dest) const { do_fill (val, dest, m_top); }
+
+  bool is_cont_range (octave_idx_type& l, octave_idx_type& u) const
+  {
+    return m_top == 0 && m_idx[0].is_cont_range (m_dim[0], l, u);
+  }
+
+private:
+
+  // Recursive N-D indexing
+  template <typename T>
+  T * do_index (const T *src, T *dest, int lev) const
+  {
+    if (lev == 0)
+      dest += m_idx[0].index (src, m_dim[0], dest);
+    else
+      {
+        octave_idx_type nn = m_idx[lev].length (m_dim[lev]);
+        octave_idx_type d = m_cdim[lev];
+        for (octave_idx_type i = 0; i < nn; i++)
+          dest = do_index (src + d*m_idx[lev].xelem (i), dest, lev-1);
+      }
+
+    return dest;
+  }
+
+  // Recursive N-D indexed assignment
+  template <typename T>
+  const T * do_assign (const T *src, T *dest, int lev) const
+  {
+    if (lev == 0)
+      src += m_idx[0].assign (src, m_dim[0], dest);
+    else
+      {
+        octave_idx_type nn = m_idx[lev].length (m_dim[lev]);
+        octave_idx_type d = m_cdim[lev];
+        for (octave_idx_type i = 0; i < nn; i++)
+          src = do_assign (src, dest + d*m_idx[lev].xelem (i), lev-1);
+      }
+
+    return src;
+  }
+
+  // Recursive N-D indexed assignment
+  template <typename T>
+  void do_fill (const T& val, T *dest, int lev) const
+  {
+    if (lev == 0)
+      m_idx[0].fill (val, m_dim[0], dest);
+    else
+      {
+        octave_idx_type nn = m_idx[lev].length (m_dim[lev]);
+        octave_idx_type d = m_cdim[lev];
+        for (octave_idx_type i = 0; i < nn; i++)
+          do_fill (val, dest + d*m_idx[lev].xelem (i), lev-1);
+      }
+  }
+
+  //--------
+
+  // CDIM occupies the last half of the space allocated for dim to
+  // avoid a double allocation.
+
+  int m_n;
+  int m_top;
+  octave_idx_type *m_dim;
+  octave_idx_type *m_cdim;
+  octave::idx_vector *m_idx;
+};
+
+// Helper class for multi-d recursive resizing
+// This handles resize () in an efficient manner, touching memory only
+// once (apart from reinitialization)
+class rec_resize_helper
+{
+public:
+  rec_resize_helper (const dim_vector& ndv, const dim_vector& odv)
+    : m_cext (nullptr), m_sext (nullptr), m_dext (nullptr), m_n (0)
+  {
+    int l = ndv.ndims ();
+    assert (odv.ndims () == l);
+    octave_idx_type ld = 1;
+    int i = 0;
+    for (; i < l-1 && ndv(i) == odv(i); i++) ld *= ndv(i);
+    m_n = l - i;
+    m_cext = new octave_idx_type [3*m_n];
+    // Trick to avoid three allocations
+    m_sext = m_cext + m_n;
+    m_dext = m_sext + m_n;
+
+    octave_idx_type sld = ld;
+    octave_idx_type dld = ld;
+    for (int j = 0; j < m_n; j++)
+      {
+        m_cext[j] = std::min (ndv(i+j), odv(i+j));
+        m_sext[j] = sld *= odv(i+j);
+        m_dext[j] = dld *= ndv(i+j);
+      }
+    m_cext[0] *= ld;
+  }
+
+  // No copying!
+
+  rec_resize_helper (const rec_resize_helper&) = delete;
+
+  rec_resize_helper& operator = (const rec_resize_helper&) = delete;
+
+  ~rec_resize_helper (void) { delete [] m_cext; }
+
+  template <typename T>
+  void resize_fill (const T *src, T *dest, const T& rfv) const
+  { do_resize_fill (src, dest, rfv, m_n-1); }
+
+private:
+
+  // recursive resizing
+  template <typename T>
+  void do_resize_fill (const T *src, T *dest, const T& rfv, int lev) const
+  {
+    if (lev == 0)
+      {
+        std::copy_n (src, m_cext[0], dest);
+        std::fill_n (dest + m_cext[0], m_dext[0] - m_cext[0], rfv);
+      }
+    else
+      {
+        octave_idx_type sd, dd, k;
+        sd = m_sext[lev-1];
+        dd = m_dext[lev-1];
+        for (k = 0; k < m_cext[lev]; k++)
+          do_resize_fill (src + k * sd, dest + k * dd, rfv, lev - 1);
+
+        std::fill_n (dest + k * dd, m_dext[lev] - k * dd, rfv);
+      }
+  }
+
+  //--------
+
+  octave_idx_type *m_cext;
+  octave_idx_type *m_sext;
+  octave_idx_type *m_dext;
+  int m_n;
+};
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::index (const octave::idx_vector& i) const
+{
+  // Colon:
+  //
+  //   object   | index    | result orientation
+  //   ---------+----------+-------------------
+  //   anything | colon    | column vector
+  //
+  // Numeric array or logical mask:
+  //
+  //   Note that logical mask indices are always transformed to vectors
+  //   before we see them.
+  //
+  //   object   | index    | result orientation
+  //   ---------+----------+-------------------
+  //   vector   | vector   | indexed object
+  //            | other    | same size as index
+  //   ---------+----------+-------------------
+  //   array    | anything | same size as index
+
+  octave_idx_type n = numel ();
+  Array<T, Alloc> retval;
+
+  if (i.is_colon ())
+    {
+      // A(:) produces a shallow copy as a column vector.
+      retval = Array<T, Alloc> (*this, dim_vector (n, 1));
+    }
+  else
+    {
+      if (i.extent (n) != n)
+        octave::err_index_out_of_range (1, 1, i.extent (n), n, m_dimensions);
+
+      dim_vector result_dims = i.orig_dimensions ();
+      octave_idx_type idx_len = i.length ();
+
+      if (n != 1 && is_nd_vector () && idx_len != 1
+          && result_dims.is_nd_vector ())
+        {
+          // Indexed object and index are both vectors.  Set result size
+          // and orientation as above.
+
+          dim_vector dv = dims ();
+
+          result_dims = dv.make_nd_vector (idx_len);
+        }
+
+      octave_idx_type l, u;
+      if (idx_len != 0 && i.is_cont_range (n, l, u))
+        // If suitable, produce a shallow slice.
+        retval = Array<T, Alloc> (*this, result_dims, l, u);
+      else
+        {
+          // Don't use resize here to avoid useless initialization for POD
+          // types.
+          retval = Array<T, Alloc> (result_dims);
+
+          if (idx_len != 0)
+            i.index (data (), n, retval.fortran_vec ());
+        }
+    }
+
+  return retval;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::index (const octave::idx_vector& i, const octave::idx_vector& j) const
+{
+  // Get dimensions, allowing Fortran indexing in the 2nd dim.
+  dim_vector dv = m_dimensions.redim (2);
+  octave_idx_type r = dv(0);
+  octave_idx_type c = dv(1);
+  Array<T, Alloc> retval;
+
+  if (i.is_colon () && j.is_colon ())
+    {
+      // A(:,:) produces a shallow copy.
+      retval = Array<T, Alloc> (*this, dv);
+    }
+  else
+    {
+      if (i.extent (r) != r)
+        octave::err_index_out_of_range (2, 1, i.extent (r), r, m_dimensions); // throws
+      if (j.extent (c) != c)
+        octave::err_index_out_of_range (2, 2, j.extent (c), c, m_dimensions); // throws
+
+      octave_idx_type n = numel ();
+      octave_idx_type il = i.length (r);
+      octave_idx_type jl = j.length (c);
+
+      octave::idx_vector ii (i);
+
+      if (ii.maybe_reduce (r, j, c))
+        {
+          octave_idx_type l, u;
+          if (ii.length () > 0 && ii.is_cont_range (n, l, u))
+            // If suitable, produce a shallow slice.
+            retval = Array<T, Alloc> (*this, dim_vector (il, jl), l, u);
+          else
+            {
+              // Don't use resize to avoid useless initialization for POD types.
+              retval = Array<T, Alloc> (dim_vector (il, jl));
+
+              ii.index (data (), n, retval.fortran_vec ());
+            }
+        }
+      else
+        {
+          // Don't use resize to avoid useless initialization for POD types.
+          retval = Array<T, Alloc> (dim_vector (il, jl));
+
+          const T *src = data ();
+          T *dest = retval.fortran_vec ();
+
+          for (octave_idx_type k = 0; k < jl; k++)
+            dest += i.index (src + r * j.xelem (k), r, dest);
+        }
+    }
+
+  return retval;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::index (const Array<octave::idx_vector>& ia) const
+{
+  int ial = ia.numel ();
+  Array<T, Alloc> retval;
+
+  // FIXME: is this dispatching necessary?
+  if (ial == 1)
+    retval = index (ia(0));
+  else if (ial == 2)
+    retval = index (ia(0), ia(1));
+  else if (ial > 0)
+    {
+      // Get dimensions, allowing Fortran indexing in the last dim.
+      dim_vector dv = m_dimensions.redim (ial);
+
+      // Check for out of bounds conditions.
+      bool all_colons = true;
+      for (int i = 0; i < ial; i++)
+        {
+          if (ia(i).extent (dv(i)) != dv(i))
+            octave::err_index_out_of_range (ial, i+1, ia(i).extent (dv(i)), dv(i),
+                                            m_dimensions); // throws
+
+          all_colons = all_colons && ia(i).is_colon ();
+        }
+
+      if (all_colons)
+        {
+          // A(:,:,...,:) produces a shallow copy.
+          dv.chop_trailing_singletons ();
+          retval = Array<T, Alloc> (*this, dv);
+        }
+      else
+        {
+          // Form result dimensions.
+          dim_vector rdv = dim_vector::alloc (ial);
+          for (int i = 0; i < ial; i++) rdv(i) = ia(i).length (dv(i));
+          rdv.chop_trailing_singletons ();
+
+          // Prepare for recursive indexing
+          rec_index_helper rh (dv, ia);
+
+          octave_idx_type l, u;
+          if (rh.is_cont_range (l, u))
+            // If suitable, produce a shallow slice.
+            retval = Array<T, Alloc> (*this, rdv, l, u);
+          else
+            {
+              // Don't use resize to avoid useless initialization for POD types.
+              retval = Array<T, Alloc> (rdv);
+
+              // Do it.
+              rh.index (data (), retval.fortran_vec ());
+            }
+        }
+    }
+
+  return retval;
+}
+
+// The default fill value.  Override if you want a different one.
+
+template <typename T, typename Alloc>
+T
+Array<T, Alloc>::resize_fill_value (void) const
+{
+  static T zero = T ();
+  return zero;
+}
+
+// Yes, we could do resize using index & assign.  However, that would
+// possibly involve a lot more memory traffic than we actually need.
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::resize1 (octave_idx_type n, const T& rfv)
+{
+  if (n < 0 || ndims () != 2)
+    octave::err_invalid_resize ();
+
+  dim_vector dv;
+  // This is driven by Matlab's behavior of giving a *row* vector
+  // on some out-of-bounds assignments.  Specifically, Matlab
+  // allows a(i) with out-of-bouds i when a is either of 0x0, 1x0,
+  // 1x1, 0xN, and gives a row vector in all cases (yes, even the
+  // last one, search me why).  Giving a column vector would make
+  // much more sense (given the way trailing singleton dims are
+  // treated).
+  bool invalid = false;
+  if (rows () == 0 || rows () == 1)
+    dv = dim_vector (1, n);
+  else if (columns () == 1)
+    dv = dim_vector (n, 1);
+  else
+    invalid = true;
+
+  if (invalid)
+    octave::err_invalid_resize ();
+
+  octave_idx_type nx = numel ();
+  if (n == nx - 1 && n > 0)
+    {
+      // Stack "pop" operation.
+      if (m_rep->m_count == 1)
+        m_slice_data[m_slice_len-1] = T ();
+      m_slice_len--;
+      m_dimensions = dv;
+    }
+  else if (n == nx + 1 && nx > 0)
+    {
+      // Stack "push" operation.
+      if (m_rep->m_count == 1
+          && m_slice_data + m_slice_len < m_rep->m_data + m_rep->m_len)
+        {
+          m_slice_data[m_slice_len++] = rfv;
+          m_dimensions = dv;
+        }
+      else
+        {
+          static const octave_idx_type max_stack_chunk = 1024;
+          octave_idx_type nn = n + std::min (nx, max_stack_chunk);
+          Array<T, Alloc> tmp (Array<T, Alloc> (dim_vector (nn, 1)), dv, 0, n);
+          T *dest = tmp.fortran_vec ();
+
+          std::copy_n (data (), nx, dest);
+          dest[nx] = rfv;
+
+          *this = tmp;
+        }
+    }
+  else if (n != nx)
+    {
+      Array<T, Alloc> tmp = Array<T, Alloc> (dv);
+      T *dest = tmp.fortran_vec ();
+
+      octave_idx_type n0 = std::min (n, nx);
+      octave_idx_type n1 = n - n0;
+      std::copy_n (data (), n0, dest);
+      std::fill_n (dest + n0, n1, rfv);
+
+      *this = tmp;
+    }
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::resize2 (octave_idx_type r, octave_idx_type c, const T& rfv)
+{
+  if (r < 0 || c < 0 || ndims () != 2)
+    octave::err_invalid_resize ();
+
+  octave_idx_type rx = rows ();
+  octave_idx_type cx = columns ();
+  if (r != rx || c != cx)
+    {
+      Array<T, Alloc> tmp = Array<T, Alloc> (dim_vector (r, c));
+      T *dest = tmp.fortran_vec ();
+
+      octave_idx_type r0 = std::min (r, rx);
+      octave_idx_type r1 = r - r0;
+      octave_idx_type c0 = std::min (c, cx);
+      octave_idx_type c1 = c - c0;
+      const T *src = data ();
+      if (r == rx)
+        {
+          std::copy_n (src, r * c0, dest);
+          dest += r * c0;
+        }
+      else
+        {
+          for (octave_idx_type k = 0; k < c0; k++)
+            {
+              std::copy_n (src, r0, dest);
+              src += rx;
+              dest += r0;
+              std::fill_n (dest, r1, rfv);
+              dest += r1;
+            }
+        }
+
+      std::fill_n (dest, r * c1, rfv);
+
+      *this = tmp;
+    }
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::resize (const dim_vector& dv, const T& rfv)
+{
+  int dvl = dv.ndims ();
+  if (dvl == 2)
+    resize2 (dv(0), dv(1), rfv);
+  else if (m_dimensions != dv)
+    {
+      if (m_dimensions.ndims () > dvl || dv.any_neg ())
+        octave::err_invalid_resize ();
+
+      Array<T, Alloc> tmp (dv);
+      // Prepare for recursive resizing.
+      rec_resize_helper rh (dv, m_dimensions.redim (dvl));
+
+      // Do it.
+      rh.resize_fill (data (), tmp.fortran_vec (), rfv);
+      *this = tmp;
+    }
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::index (const octave::idx_vector& i, bool resize_ok, const T& rfv) const
+{
+  Array<T, Alloc> tmp = *this;
+  if (resize_ok)
+    {
+      octave_idx_type n = numel ();
+      octave_idx_type nx = i.extent (n);
+      if (n != nx)
+        {
+          if (i.is_scalar ())
+            return Array<T, Alloc> (dim_vector (1, 1), rfv);
+          else
+            tmp.resize1 (nx, rfv);
+        }
+
+      if (tmp.numel () != nx)
+        return Array<T, Alloc> ();
+    }
+
+  return tmp.index (i);
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::index (const octave::idx_vector& i, const octave::idx_vector& j,
+                 bool resize_ok, const T& rfv) const
+{
+  Array<T, Alloc> tmp = *this;
+  if (resize_ok)
+    {
+      dim_vector dv = m_dimensions.redim (2);
+      octave_idx_type r = dv(0);
+      octave_idx_type c = dv(1);
+      octave_idx_type rx = i.extent (r);
+      octave_idx_type cx = j.extent (c);
+      if (r != rx || c != cx)
+        {
+          if (i.is_scalar () && j.is_scalar ())
+            return Array<T, Alloc> (dim_vector (1, 1), rfv);
+          else
+            tmp.resize2 (rx, cx, rfv);
+        }
+
+      if (tmp.rows () != rx || tmp.columns () != cx)
+        return Array<T, Alloc> ();
+    }
+
+  return tmp.index (i, j);
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::index (const Array<octave::idx_vector>& ia,
+                 bool resize_ok, const T& rfv) const
+{
+  Array<T, Alloc> tmp = *this;
+  if (resize_ok)
+    {
+      int ial = ia.numel ();
+      dim_vector dv = m_dimensions.redim (ial);
+      dim_vector dvx = dim_vector::alloc (ial);
+      for (int i = 0; i < ial; i++)
+        dvx(i) = ia(i).extent (dv(i));
+      if (! (dvx == dv))
+        {
+          bool all_scalars = true;
+          for (int i = 0; i < ial; i++)
+            all_scalars = all_scalars && ia(i).is_scalar ();
+          if (all_scalars)
+            return Array<T, Alloc> (dim_vector (1, 1), rfv);
+          else
+            tmp.resize (dvx, rfv);
+
+          if (tmp.m_dimensions != dvx)
+            return Array<T, Alloc> ();
+        }
+    }
+
+  return tmp.index (ia);
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::assign (const octave::idx_vector& i, const Array<T, Alloc>& rhs, const T& rfv)
+{
+  octave_idx_type n = numel ();
+  octave_idx_type rhl = rhs.numel ();
+
+  if (rhl != 1 && i.length (n) != rhl)
+    octave::err_nonconformant ("=", dim_vector(i.length(n), 1), rhs.dims());
+
+  octave_idx_type nx = i.extent (n);
+  bool colon = i.is_colon_equiv (nx);
+  // Try to resize first if necessary.
+  if (nx != n)
+    {
+      // Optimize case A = []; A(1:n) = X with A empty.
+      if (m_dimensions.zero_by_zero () && colon)
+        {
+          if (rhl == 1)
+            *this = Array<T, Alloc> (dim_vector (1, nx), rhs(0));
+          else
+            *this = Array<T, Alloc> (rhs, dim_vector (1, nx));
+          return;
+        }
+
+      resize1 (nx, rfv);
+      n = numel ();
+    }
+
+  if (colon)
+    {
+      // A(:) = X makes a full fill or a shallow copy.
+      if (rhl == 1)
+        fill (rhs(0));
+      else
+        *this = rhs.reshape (m_dimensions);
+    }
+  else
+    {
+      if (rhl == 1)
+        i.fill (rhs(0), n, fortran_vec ());
+      else
+        i.assign (rhs.data (), n, fortran_vec ());
+    }
+}
+
+// Assignment to a 2-dimensional array
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::assign (const octave::idx_vector& i, const octave::idx_vector& j,
+                  const Array<T, Alloc>& rhs, const T& rfv)
+{
+  bool initial_dims_all_zero = m_dimensions.all_zero ();
+
+  // Get RHS extents, discarding singletons.
+  dim_vector rhdv = rhs.dims ();
+
+  // Get LHS extents, allowing Fortran indexing in the second dim.
+  dim_vector dv = m_dimensions.redim (2);
+
+  // Check for out-of-bounds and form resizing m_dimensions.
+  dim_vector rdv;
+
+  // In the special when all dimensions are zero, colons are allowed
+  // to inquire the shape of RHS.  The rules are more obscure, so we
+  // solve that elsewhere.
+  if (initial_dims_all_zero)
+    rdv = zero_dims_inquire (i, j, rhdv);
+  else
+    {
+      rdv(0) = i.extent (dv(0));
+      rdv(1) = j.extent (dv(1));
+    }
+
+  bool isfill = rhs.numel () == 1;
+  octave_idx_type il = i.length (rdv(0));
+  octave_idx_type jl = j.length (rdv(1));
+  rhdv.chop_all_singletons ();
+  bool match = (isfill
+                || (rhdv.ndims () == 2 && il == rhdv(0) && jl == rhdv(1)));
+  match = match || (il == 1 && jl == rhdv(0) && rhdv(1) == 1);
+
+  if (match)
+    {
+      bool all_colons = (i.is_colon_equiv (rdv(0))
+                         && j.is_colon_equiv (rdv(1)));
+      // Resize if requested.
+      if (rdv != dv)
+        {
+          // Optimize case A = []; A(1:m, 1:n) = X
+          if (dv.zero_by_zero () && all_colons)
+            {
+              if (isfill)
+                *this = Array<T, Alloc> (rdv, rhs(0));
+              else
+                *this = Array<T, Alloc> (rhs, rdv);
+              return;
+            }
+
+          resize (rdv, rfv);
+          dv = m_dimensions;
+        }
+
+      if (all_colons)
+        {
+          // A(:,:) = X makes a full fill or a shallow copy
+          if (isfill)
+            fill (rhs(0));
+          else
+            *this = rhs.reshape (m_dimensions);
+        }
+      else
+        {
+          // The actual work.
+          octave_idx_type n = numel ();
+          octave_idx_type r = dv(0);
+          octave_idx_type c = dv(1);
+          octave::idx_vector ii (i);
+
+          const T *src = rhs.data ();
+          T *dest = fortran_vec ();
+
+          // Try reduction first.
+          if (ii.maybe_reduce (r, j, c))
+            {
+              if (isfill)
+                ii.fill (*src, n, dest);
+              else
+                ii.assign (src, n, dest);
+            }
+          else
+            {
+              if (isfill)
+                {
+                  for (octave_idx_type k = 0; k < jl; k++)
+                    i.fill (*src, r, dest + r * j.xelem (k));
+                }
+              else
+                {
+                  for (octave_idx_type k = 0; k < jl; k++)
+                    src += i.assign (src, r, dest + r * j.xelem (k));
+                }
+            }
+        }
+    }
+  // any empty RHS can be assigned to an empty LHS
+  else if ((il != 0 && jl != 0) || (rhdv(0) != 0 && rhdv(1) != 0))
+    octave::err_nonconformant ("=", il, jl, rhs.dim1 (), rhs.dim2 ());
+}
+
+// Assignment to a multi-dimensional array
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::assign (const Array<octave::idx_vector>& ia,
+                  const Array<T, Alloc>& rhs, const T& rfv)
+{
+  int ial = ia.numel ();
+
+  // FIXME: is this dispatching necessary / desirable?
+  if (ial == 1)
+    assign (ia(0), rhs, rfv);
+  else if (ial == 2)
+    assign (ia(0), ia(1), rhs, rfv);
+  else if (ial > 0)
+    {
+      bool initial_dims_all_zero = m_dimensions.all_zero ();
+
+      // Get RHS extents, discarding singletons.
+      dim_vector rhdv = rhs.dims ();
+
+      // Get LHS extents, allowing Fortran indexing in the second dim.
+      dim_vector dv = m_dimensions.redim (ial);
+
+      // Get the extents forced by indexing.
+      dim_vector rdv;
+
+      // In the special when all dimensions are zero, colons are
+      // allowed to inquire the shape of RHS.  The rules are more
+      // obscure, so we solve that elsewhere.
+      if (initial_dims_all_zero)
+        rdv = zero_dims_inquire (ia, rhdv);
+      else
+        {
+          rdv = dim_vector::alloc (ial);
+          for (int i = 0; i < ial; i++)
+            rdv(i) = ia(i).extent (dv(i));
+        }
+
+      // Check whether LHS and RHS match, up to singleton dims.
+      bool match = true;
+      bool all_colons = true;
+      bool isfill = rhs.numel () == 1;
+
+      rhdv.chop_all_singletons ();
+      int j = 0;
+      int rhdvl = rhdv.ndims ();
+      for (int i = 0; i < ial; i++)
+        {
+          all_colons = all_colons && ia(i).is_colon_equiv (rdv(i));
+          octave_idx_type l = ia(i).length (rdv(i));
+          if (l == 1) continue;
+          match = match && j < rhdvl && l == rhdv(j++);
+        }
+
+      match = match && (j == rhdvl || rhdv(j) == 1);
+      match = match || isfill;
+
+      if (match)
+        {
+          // Resize first if necessary.
+          if (rdv != dv)
+            {
+              // Optimize case A = []; A(1:m, 1:n) = X
+              if (dv.zero_by_zero () && all_colons)
+                {
+                  rdv.chop_trailing_singletons ();
+                  if (isfill)
+                    *this = Array<T, Alloc> (rdv, rhs(0));
+                  else
+                    *this = Array<T, Alloc> (rhs, rdv);
+                  return;
+                }
+
+              resize (rdv, rfv);
+              dv = rdv;
+            }
+
+          if (all_colons)
+            {
+              // A(:,:,...,:) = X makes a full fill or a shallow copy.
+              if (isfill)
+                fill (rhs(0));
+              else
+                *this = rhs.reshape (m_dimensions);
+            }
+          else
+            {
+              // Do the actual work.
+
+              // Prepare for recursive indexing
+              rec_index_helper rh (dv, ia);
+
+              // Do it.
+              if (isfill)
+                rh.fill (rhs(0), fortran_vec ());
+              else
+                rh.assign (rhs.data (), fortran_vec ());
+            }
+        }
+      else
+        {
+          // dimension mismatch, unless LHS and RHS both empty
+          bool lhsempty, rhsempty;
+          lhsempty = rhsempty = false;
+          dim_vector lhs_dv = dim_vector::alloc (ial);
+          for (int i = 0; i < ial; i++)
+            {
+              octave_idx_type l = ia(i).length (rdv(i));
+              lhs_dv(i) = l;
+              lhsempty = lhsempty || (l == 0);
+              rhsempty = rhsempty || (rhdv(j++) == 0);
+            }
+          if (! lhsempty || ! rhsempty)
+            {
+              lhs_dv.chop_trailing_singletons ();
+              octave::err_nonconformant ("=", lhs_dv, rhdv);
+            }
+        }
+    }
+}
+
+/*
+%!shared a
+%! a = [1 2; 3 4];
+%!error <op1 is 1x2, op2 is 1x3> a(1,:) = [1 2 3]
+%!error <op1 is 2x1, op2 is 1x3> a(:,1) = [1 2 3]
+%!error <op1 is 2x2, op2 is 2x1> a(1:2,2:3) = [1;2]
+*/
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::delete_elements (const octave::idx_vector& i)
+{
+  octave_idx_type n = numel ();
+  if (i.is_colon ())
+    {
+      *this = Array<T, Alloc> ();
+    }
+  else if (i.length (n) != 0)
+    {
+      if (i.extent (n) != n)
+        octave::err_del_index_out_of_range (true, i.extent (n), n);
+
+      octave_idx_type l, u;
+      bool col_vec = ndims () == 2 && columns () == 1 && rows () != 1;
+      if (i.is_scalar () && i(0) == n-1 && m_dimensions.isvector ())
+        {
+          // Stack "pop" operation.
+          resize1 (n-1);
+        }
+      else if (i.is_cont_range (n, l, u))
+        {
+          // Special case deleting a contiguous range.
+          octave_idx_type m = n + l - u;
+          Array<T, Alloc> tmp (dim_vector (col_vec ? m : 1, ! col_vec ? m : 1));
+          const T *src = data ();
+          T *dest = tmp.fortran_vec ();
+          std::copy_n (src, l, dest);
+          std::copy (src + u, src + n, dest + l);
+          *this = tmp;
+        }
+      else
+        {
+          // Use index.
+          *this = index (i.complement (n));
+        }
+    }
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::delete_elements (int dim, const octave::idx_vector& i)
+{
+  if (dim < 0 || dim >= ndims ())
+    (*current_liboctave_error_handler) ("invalid dimension in delete_elements");
+
+  octave_idx_type n = m_dimensions(dim);
+  if (i.is_colon ())
+    {
+      *this = Array<T, Alloc> ();
+    }
+  else if (i.length (n) != 0)
+    {
+      if (i.extent (n) != n)
+        octave::err_del_index_out_of_range (false, i.extent (n), n);
+
+      octave_idx_type l, u;
+
+      if (i.is_cont_range (n, l, u))
+        {
+          // Special case deleting a contiguous range.
+          octave_idx_type nd = n + l - u;
+          octave_idx_type dl = 1;
+          octave_idx_type du = 1;
+          dim_vector rdv = m_dimensions;
+          rdv(dim) = nd;
+          for (int k = 0; k < dim; k++) dl *= m_dimensions(k);
+          for (int k = dim + 1; k < ndims (); k++) du *= m_dimensions(k);
+
+          // Special case deleting a contiguous range.
+          Array<T, Alloc> tmp = Array<T, Alloc> (rdv);
+          const T *src = data ();
+          T *dest = tmp.fortran_vec ();
+          l *= dl; u *= dl; n *= dl;
+          for (octave_idx_type k = 0; k < du; k++)
+            {
+              std::copy_n (src, l, dest);
+              dest += l;
+              std::copy (src + u, src + n, dest);
+              dest += n - u;
+              src += n;
+            }
+
+          *this = tmp;
+        }
+      else
+        {
+          // Use index.
+          Array<octave::idx_vector> ia (dim_vector (ndims (), 1), octave::idx_vector::colon);
+          ia (dim) = i.complement (n);
+          *this = index (ia);
+        }
+    }
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::delete_elements (const Array<octave::idx_vector>& ia)
+{
+  int ial = ia.numel ();
+
+  if (ial == 1)
+    delete_elements (ia(0));
+  else
+    {
+      int k, dim = -1;
+      for (k = 0; k < ial; k++)
+        {
+          if (! ia(k).is_colon ())
+            {
+              if (dim < 0)
+                dim = k;
+              else
+                break;
+            }
+        }
+      if (dim < 0)
+        {
+          dim_vector dv = m_dimensions;
+          dv(0) = 0;
+          *this = Array<T, Alloc> (dv);
+        }
+      else if (k == ial)
+        {
+          delete_elements (dim, ia(dim));
+        }
+      else
+        {
+          // Allow the null assignment to succeed if it won't change
+          // anything because the indices reference an empty slice,
+          // provided that there is at most one non-colon (or
+          // equivalent) index.  So, we still have the requirement of
+          // deleting a slice, but it is OK if the slice is empty.
+
+          // For compatibility with Matlab, stop checking once we see
+          // more than one non-colon index or an empty index.  Matlab
+          // considers "[]" to be an empty index but not "false".  We
+          // accept both.
+
+          bool empty_assignment = false;
+
+          int num_non_colon_indices = 0;
+
+          int nd = ndims ();
+
+          for (int i = 0; i < ial; i++)
+            {
+              octave_idx_type dim_len = (i >= nd ? 1 : m_dimensions(i));
+
+              if (ia(i).length (dim_len) == 0)
+                {
+                  empty_assignment = true;
+                  break;
+                }
+
+              if (! ia(i).is_colon_equiv (dim_len))
+                {
+                  num_non_colon_indices++;
+
+                  if (num_non_colon_indices == 2)
+                    break;
+                }
+            }
+
+          if (! empty_assignment)
+            (*current_liboctave_error_handler)
+              ("a null assignment can only have one non-colon index");
+        }
+    }
+
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>&
+Array<T, Alloc>::insert (const Array<T, Alloc>& a, octave_idx_type r, octave_idx_type c)
+{
+  octave::idx_vector i (r, r + a.rows ());
+  octave::idx_vector j (c, c + a.columns ());
+  if (ndims () == 2 && a.ndims () == 2)
+    assign (i, j, a);
+  else
+    {
+      Array<octave::idx_vector> idx (dim_vector (a.ndims (), 1));
+      idx(0) = i;
+      idx(1) = j;
+      for (int k = 2; k < a.ndims (); k++)
+        idx(k) = octave::idx_vector (0, a.m_dimensions(k));
+      assign (idx, a);
+    }
+
+  return *this;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>&
+Array<T, Alloc>::insert (const Array<T, Alloc>& a, const Array<octave_idx_type>& ra_idx)
+{
+  octave_idx_type n = ra_idx.numel ();
+  Array<octave::idx_vector> idx (dim_vector (n, 1));
+  const dim_vector dva = a.dims ().redim (n);
+  for (octave_idx_type k = 0; k < n; k++)
+    idx(k) = octave::idx_vector (ra_idx(k), ra_idx(k) + dva(k));
+
+  assign (idx, a);
+
+  return *this;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::transpose (void) const
+{
+  assert (ndims () == 2);
+
+  octave_idx_type nr = dim1 ();
+  octave_idx_type nc = dim2 ();
+
+  if (nr >= 8 && nc >= 8)
+    {
+      Array<T, Alloc> result (dim_vector (nc, nr));
+
+      // Reuse the implementation used for permuting.
+
+      rec_permute_helper::blk_trans (data (), result.fortran_vec (), nr, nc);
+
+      return result;
+    }
+  else if (nr > 1 && nc > 1)
+    {
+      Array<T, Alloc> result (dim_vector (nc, nr));
+
+      for (octave_idx_type j = 0; j < nc; j++)
+        for (octave_idx_type i = 0; i < nr; i++)
+          result.xelem (j, i) = xelem (i, j);
+
+      return result;
+    }
+  else
+    {
+      // Fast transpose for vectors and empty matrices.
+      return Array<T, Alloc> (*this, dim_vector (nc, nr));
+    }
+}
+
+template <typename T>
+static T
+no_op_fcn (const T& x)
+{
+  return x;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::hermitian (T (*fcn) (const T&)) const
+{
+  assert (ndims () == 2);
+
+  if (! fcn)
+    fcn = no_op_fcn<T>;
+
+  octave_idx_type nr = dim1 ();
+  octave_idx_type nc = dim2 ();
+
+  if (nr >= 8 && nc >= 8)
+    {
+      Array<T, Alloc> result (dim_vector (nc, nr));
+
+      // Blocked transpose to attempt to avoid cache misses.
+
+      T buf[64];
+
+      octave_idx_type jj;
+      for (jj = 0; jj < (nc - 8 + 1); jj += 8)
+        {
+          octave_idx_type ii;
+          for (ii = 0; ii < (nr - 8 + 1); ii += 8)
+            {
+              // Copy to buffer
+              for (octave_idx_type j = jj, k = 0, idxj = jj * nr;
+                   j < jj + 8; j++, idxj += nr)
+                for (octave_idx_type i = ii; i < ii + 8; i++)
+                  buf[k++] = xelem (i + idxj);
+
+              // Copy from buffer
+              for (octave_idx_type i = ii, idxi = ii * nc; i < ii + 8;
+                   i++, idxi += nc)
+                for (octave_idx_type j = jj, k = i - ii; j < jj + 8;
+                     j++, k+=8)
+                  result.xelem (j + idxi) = fcn (buf[k]);
+            }
+
+          if (ii < nr)
+            for (octave_idx_type j = jj; j < jj + 8; j++)
+              for (octave_idx_type i = ii; i < nr; i++)
+                result.xelem (j, i) = fcn (xelem (i, j));
+        }
+
+      for (octave_idx_type j = jj; j < nc; j++)
+        for (octave_idx_type i = 0; i < nr; i++)
+          result.xelem (j, i) = fcn (xelem (i, j));
+
+      return result;
+    }
+  else
+    {
+      Array<T, Alloc> result (dim_vector (nc, nr));
+
+      for (octave_idx_type j = 0; j < nc; j++)
+        for (octave_idx_type i = 0; i < nr; i++)
+          result.xelem (j, i) = fcn (xelem (i, j));
+
+      return result;
+    }
+}
+
+/*
+
+## Transpose tests for matrices of the tile size and plus or minus a row
+## and with four tiles.
+
+%!shared m7, mt7, m8, mt8, m9, mt9
+%! m7 = reshape (1 : 7*8, 8, 7);
+%! mt7 = [1:8; 9:16; 17:24; 25:32; 33:40; 41:48; 49:56];
+%! m8 = reshape (1 : 8*8, 8, 8);
+%! mt8 = mt8 = [mt7; 57:64];
+%! m9 = reshape (1 : 9*8, 8, 9);
+%! mt9 = [mt8; 65:72];
+
+%!assert (m7', mt7)
+%!assert ((1i*m7).', 1i * mt7)
+%!assert ((1i*m7)', conj (1i * mt7))
+%!assert (m8', mt8)
+%!assert ((1i*m8).', 1i * mt8)
+%!assert ((1i*m8)', conj (1i * mt8))
+%!assert (m9', mt9)
+%!assert ((1i*m9).', 1i * mt9)
+%!assert ((1i*m9)', conj (1i * mt9))
+%!assert ([m7, m8; m7, m8]', [mt7, mt7; mt8, mt8])
+%!assert ((1i*[m7, m8; m7, m8]).', 1i * [mt7, mt7; mt8, mt8])
+%!assert ((1i*[m7, m8; m7, m8])', conj (1i * [mt7, mt7; mt8, mt8]))
+%!assert ([m8, m8; m8, m8]', [mt8, mt8; mt8, mt8])
+%!assert ((1i*[m8, m8; m8, m8]).', 1i * [mt8, mt8; mt8, mt8])
+%!assert ((1i*[m8, m8; m8, m8])', conj (1i * [mt8, mt8; mt8, mt8]))
+%!assert ([m9, m8; m9, m8]', [mt9, mt9; mt8, mt8])
+%!assert ((1i*[m9, m8; m9, m8]).', 1i * [mt9, mt9; mt8, mt8])
+%!assert ((1i*[m9, m8; m9, m8])', conj (1i * [mt9, mt9; mt8, mt8]))
+
+*/
+
+template <typename T, typename Alloc>
+T *
+Array<T, Alloc>::fortran_vec (void)
+{
+  make_unique ();
+
+  return m_slice_data;
+}
+
+// Non-real types don't have NaNs.
+template <typename T>
+inline bool
+sort_isnan (typename ref_param<T>::type)
+{
+  return false;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::sort (int dim, sortmode mode) const
+{
+  if (dim < 0)
+    (*current_liboctave_error_handler) ("sort: invalid dimension");
+
+  Array<T, Alloc> m (dims ());
+
+  dim_vector dv = m.dims ();
+
+  if (m.numel () < 1)
+    return m;
+
+  if (dim >= dv.ndims ())
+    dv.resize (dim+1, 1);
+
+  octave_idx_type ns = dv(dim);
+  octave_idx_type iter = dv.numel () / ns;
+  octave_idx_type stride = 1;
+
+  for (int i = 0; i < dim; i++)
+    stride *= dv(i);
+
+  T *v = m.fortran_vec ();
+  const T *ov = data ();
+
+  octave_sort<T> lsort;
+
+  if (mode != UNSORTED)
+    lsort.set_compare (mode);
+  else
+    return m;
+
+  if (stride == 1)
+    {
+      // Special case along first dimension avoids gather/scatter AND directly
+      // sorts into destination buffer for an 11% performance boost.
+      for (octave_idx_type j = 0; j < iter; j++)
+        {
+          // Copy and partition out NaNs.
+          // No need to special case integer types <T> from floating point
+          // types <T> to avoid sort_isnan() test as it makes no discernible
+          // performance impact.
+          octave_idx_type kl = 0;
+          octave_idx_type ku = ns;
+          for (octave_idx_type i = 0; i < ns; i++)
+            {
+              T tmp = ov[i];
+              if (sort_isnan<T> (tmp))
+                v[--ku] = tmp;
+              else
+                v[kl++] = tmp;
+            }
+
+          // sort.
+          lsort.sort (v, kl);
+
+          if (ku < ns)
+            {
+              // NaNs are in reverse order
+              std::reverse (v + ku, v + ns);
+              if (mode == DESCENDING)
+                std::rotate (v, v + ku, v + ns);
+            }
+
+          v += ns;
+          ov += ns;
+        }
+    }
+  else
+    {
+      OCTAVE_LOCAL_BUFFER (T, buf, ns);
+
+      for (octave_idx_type j = 0; j < iter; j++)
+        {
+          octave_idx_type offset = j;
+          octave_idx_type n_strides = j / stride;
+          offset += n_strides * stride * (ns - 1);
+
+          // gather and partition out NaNs.
+          octave_idx_type kl = 0;
+          octave_idx_type ku = ns;
+          for (octave_idx_type i = 0; i < ns; i++)
+            {
+              T tmp = ov[i*stride + offset];
+              if (sort_isnan<T> (tmp))
+                buf[--ku] = tmp;
+              else
+                buf[kl++] = tmp;
+            }
+
+          // sort.
+          lsort.sort (buf, kl);
+
+          if (ku < ns)
+            {
+              // NaNs are in reverse order
+              std::reverse (buf + ku, buf + ns);
+              if (mode == DESCENDING)
+                std::rotate (buf, buf + ku, buf + ns);
+            }
+
+          // scatter.
+          for (octave_idx_type i = 0; i < ns; i++)
+            v[i*stride + offset] = buf[i];
+        }
+    }
+
+  return m;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::sort (Array<octave_idx_type>& sidx, int dim,
+                       sortmode mode) const
+{
+  if (dim < 0 || dim >= ndims ())
+    (*current_liboctave_error_handler) ("sort: invalid dimension");
+
+  Array<T, Alloc> m (dims ());
+
+  dim_vector dv = m.dims ();
+
+  if (m.numel () < 1)
+    {
+      sidx = Array<octave_idx_type> (dv);
+      return m;
+    }
+
+  octave_idx_type ns = dv(dim);
+  octave_idx_type iter = dv.numel () / ns;
+  octave_idx_type stride = 1;
+
+  for (int i = 0; i < dim; i++)
+    stride *= dv(i);
+
+  T *v = m.fortran_vec ();
+  const T *ov = data ();
+
+  octave_sort<T> lsort;
+
+  sidx = Array<octave_idx_type> (dv);
+  octave_idx_type *vi = sidx.fortran_vec ();
+
+  if (mode != UNSORTED)
+    lsort.set_compare (mode);
+  else
+    return m;
+
+  if (stride == 1)
+    {
+      // Special case for dim 1 avoids gather/scatter for performance boost.
+      // See comments in Array::sort (dim, mode).
+      for (octave_idx_type j = 0; j < iter; j++)
+        {
+          // copy and partition out NaNs.
+          octave_idx_type kl = 0;
+          octave_idx_type ku = ns;
+          for (octave_idx_type i = 0; i < ns; i++)
+            {
+              T tmp = ov[i];
+              if (sort_isnan<T> (tmp))
+                {
+                  --ku;
+                  v[ku] = tmp;
+                  vi[ku] = i;
+                }
+              else
+                {
+                  v[kl] = tmp;
+                  vi[kl] = i;
+                  kl++;
+                }
+            }
+
+          // sort.
+          lsort.sort (v, vi, kl);
+
+          if (ku < ns)
+            {
+              // NaNs are in reverse order
+              std::reverse (v + ku, v + ns);
+              std::reverse (vi + ku, vi + ns);
+              if (mode == DESCENDING)
+                {
+                  std::rotate (v, v + ku, v + ns);
+                  std::rotate (vi, vi + ku, vi + ns);
+                }
+            }
+
+          v += ns;
+          vi += ns;
+          ov += ns;
+        }
+    }
+  else
+    {
+      OCTAVE_LOCAL_BUFFER (T, buf, ns);
+      OCTAVE_LOCAL_BUFFER (octave_idx_type, bufi, ns);
+
+      for (octave_idx_type j = 0; j < iter; j++)
+        {
+          octave_idx_type offset = j;
+          octave_idx_type n_strides = j / stride;
+          offset += n_strides * stride * (ns - 1);
+
+          // gather and partition out NaNs.
+          octave_idx_type kl = 0;
+          octave_idx_type ku = ns;
+          for (octave_idx_type i = 0; i < ns; i++)
+            {
+              T tmp = ov[i*stride + offset];
+              if (sort_isnan<T> (tmp))
+                {
+                  --ku;
+                  buf[ku] = tmp;
+                  bufi[ku] = i;
+                }
+              else
+                {
+                  buf[kl] = tmp;
+                  bufi[kl] = i;
+                  kl++;
+                }
+            }
+
+          // sort.
+          lsort.sort (buf, bufi, kl);
+
+          if (ku < ns)
+            {
+              // NaNs are in reverse order
+              std::reverse (buf + ku, buf + ns);
+              std::reverse (bufi + ku, bufi + ns);
+              if (mode == DESCENDING)
+                {
+                  std::rotate (buf, buf + ku, buf + ns);
+                  std::rotate (bufi, bufi + ku, bufi + ns);
+                }
+            }
+
+          // scatter.
+          for (octave_idx_type i = 0; i < ns; i++)
+            v[i*stride + offset] = buf[i];
+          for (octave_idx_type i = 0; i < ns; i++)
+            vi[i*stride + offset] = bufi[i];
+        }
+    }
+
+  return m;
+}
+
+template <typename T, typename Alloc>
+typename Array<T, Alloc>::compare_fcn_type
+safe_comparator (sortmode mode, const Array<T, Alloc>& /* a */,
+                 bool /* allow_chk */)
+{
+  if (mode == ASCENDING)
+    return octave_sort<T>::ascending_compare;
+  else if (mode == DESCENDING)
+    return octave_sort<T>::descending_compare;
+  else
+    return nullptr;
+}
+
+template <typename T, typename Alloc>
+sortmode
+Array<T, Alloc>::issorted (sortmode mode) const
+{
+  octave_sort<T> lsort;
+
+  octave_idx_type n = numel ();
+
+  if (n <= 1)
+    return (mode == UNSORTED) ? ASCENDING : mode;
+
+  if (mode == UNSORTED)
+    {
+      // Auto-detect mode.
+      compare_fcn_type compare
+        = safe_comparator (ASCENDING, *this, false);
+
+      if (compare (elem (n-1), elem (0)))
+        mode = DESCENDING;
+      else
+        mode = ASCENDING;
+    }
+
+  lsort.set_compare (safe_comparator (mode, *this, false));
+
+  if (! lsort.issorted (data (), n))
+    mode = UNSORTED;
+
+  return mode;
+
+}
+
+template <typename T, typename Alloc>
+Array<octave_idx_type>
+Array<T, Alloc>::sort_rows_idx (sortmode mode) const
+{
+  Array<octave_idx_type> idx;
+
+  octave_sort<T> lsort (safe_comparator (mode, *this, true));
+
+  octave_idx_type r = rows ();
+  octave_idx_type c = cols ();
+
+  idx = Array<octave_idx_type> (dim_vector (r, 1));
+
+  lsort.sort_rows (data (), idx.fortran_vec (), r, c);
+
+  return idx;
+}
+
+template <typename T, typename Alloc>
+sortmode
+Array<T, Alloc>::is_sorted_rows (sortmode mode) const
+{
+  octave_sort<T> lsort;
+
+  octave_idx_type r = rows ();
+  octave_idx_type c = cols ();
+
+  if (r <= 1 || c == 0)
+    return (mode == UNSORTED) ? ASCENDING : mode;
+
+  if (mode == UNSORTED)
+    {
+      // Auto-detect mode.
+      compare_fcn_type compare
+        = safe_comparator (ASCENDING, *this, false);
+
+      octave_idx_type i;
+      for (i = 0; i < cols (); i++)
+        {
+          T l = elem (0, i);
+          T u = elem (rows () - 1, i);
+          if (compare (l, u))
+            {
+              if (mode == DESCENDING)
+                {
+                  mode = UNSORTED;
+                  break;
+                }
+              else
+                mode = ASCENDING;
+            }
+          else if (compare (u, l))
+            {
+              if (mode == ASCENDING)
+                {
+                  mode = UNSORTED;
+                  break;
+                }
+              else
+                mode = DESCENDING;
+            }
+        }
+      if (mode == UNSORTED && i == cols ())
+        mode = ASCENDING;
+    }
+
+  if (mode != UNSORTED)
+    {
+      lsort.set_compare (safe_comparator (mode, *this, false));
+
+      if (! lsort.is_sorted_rows (data (), r, c))
+        mode = UNSORTED;
+    }
+
+  return mode;
+
+}
+
+// Do a binary lookup in a sorted array.
+template <typename T, typename Alloc>
+octave_idx_type
+Array<T, Alloc>::lookup (const T& value, sortmode mode) const
+{
+  octave_idx_type n = numel ();
+  octave_sort<T> lsort;
+
+  if (mode == UNSORTED)
+    {
+      // auto-detect mode
+      if (n > 1 && lsort.descending_compare (elem (0), elem (n-1)))
+        mode = DESCENDING;
+      else
+        mode = ASCENDING;
+    }
+
+  lsort.set_compare (mode);
+
+  return lsort.lookup (data (), n, value);
+}
+
+template <typename T, typename Alloc>
+Array<octave_idx_type>
+Array<T, Alloc>::lookup (const Array<T, Alloc>& values, sortmode mode) const
+{
+  octave_idx_type n = numel ();
+  octave_idx_type nval = values.numel ();
+  octave_sort<T> lsort;
+  Array<octave_idx_type> idx (values.dims ());
+
+  if (mode == UNSORTED)
+    {
+      // auto-detect mode
+      if (n > 1 && lsort.descending_compare (elem (0), elem (n-1)))
+        mode = DESCENDING;
+      else
+        mode = ASCENDING;
+    }
+
+  lsort.set_compare (mode);
+
+  // This determines the split ratio between the O(M*log2(N)) and O(M+N)
+  // algorithms.
+  static const double ratio = 1.0;
+  sortmode vmode = UNSORTED;
+
+  // Attempt the O(M+N) algorithm if M is large enough.
+  if (nval > ratio * n / octave::math::log2 (n + 1.0))
+    {
+      vmode = values.issorted ();
+      // The table must not contain a NaN.
+      if ((vmode == ASCENDING && sort_isnan<T> (values(nval-1)))
+          || (vmode == DESCENDING && sort_isnan<T> (values(0))))
+        vmode = UNSORTED;
+    }
+
+  if (vmode != UNSORTED)
+    lsort.lookup_sorted (data (), n, values.data (), nval,
+                         idx.fortran_vec (), vmode != mode);
+  else
+    lsort.lookup (data (), n, values.data (), nval, idx.fortran_vec ());
+
+  return idx;
+}
+
+template <typename T, typename Alloc>
+octave_idx_type
+Array<T, Alloc>::nnz (void) const
+{
+  const T *src = data ();
+  octave_idx_type nel = numel ();
+  octave_idx_type retval = 0;
+  const T zero = T ();
+  for (octave_idx_type i = 0; i < nel; i++)
+    if (src[i] != zero)
+      retval++;
+
+  return retval;
+}
+
+template <typename T, typename Alloc>
+Array<octave_idx_type>
+Array<T, Alloc>::find (octave_idx_type n, bool backward) const
+{
+  Array<octave_idx_type> retval;
+  const T *src = data ();
+  octave_idx_type nel = numel ();
+  const T zero = T ();
+  if (n < 0 || n >= nel)
+    {
+      // We want all elements, which means we'll almost surely need
+      // to resize.  So count first, then allocate array of exact size.
+      octave_idx_type cnt = 0;
+      for (octave_idx_type i = 0; i < nel; i++)
+        cnt += src[i] != zero;
+
+      retval.clear (cnt, 1);
+      octave_idx_type *dest = retval.fortran_vec ();
+      for (octave_idx_type i = 0; i < nel; i++)
+        if (src[i] != zero) *dest++ = i;
+    }
+  else
+    {
+      // We want a fixed max number of elements, usually small.  So be
+      // optimistic, alloc the array in advance, and then resize if
+      // needed.
+      retval.clear (n, 1);
+      if (backward)
+        {
+          // Do the search as a series of successive single-element searches.
+          octave_idx_type k = 0;
+          octave_idx_type l = nel - 1;
+          for (; k < n; k++)
+            {
+              for (; l >= 0 && src[l] == zero; l--) ;
+              if (l >= 0)
+                retval(k) = l--;
+              else
+                break;
+            }
+          if (k < n)
+            retval.resize2 (k, 1);
+          octave_idx_type *rdata = retval.fortran_vec ();
+          std::reverse (rdata, rdata + k);
+        }
+      else
+        {
+          // Do the search as a series of successive single-element searches.
+          octave_idx_type k = 0;
+          octave_idx_type l = 0;
+          for (; k < n; k++)
+            {
+              for (; l != nel && src[l] == zero; l++) ;
+              if (l != nel)
+                retval(k) = l++;
+              else
+                break;
+            }
+          if (k < n)
+            retval.resize2 (k, 1);
+        }
+    }
+
+  // Fixup return dimensions, for Matlab compatibility.
+  // find (zeros (0,0)) -> zeros (0,0)
+  // find (zeros (1,0)) -> zeros (1,0)
+  // find (zeros (0,1)) -> zeros (0,1)
+  // find (zeros (0,X)) -> zeros (0,1)
+  // find (zeros (1,1)) -> zeros (0,0) !!!! WHY?
+  // find (zeros (0,1,0)) -> zeros (0,0)
+  // find (zeros (0,1,0,1)) -> zeros (0,0) etc
+
+  if ((numel () == 1 && retval.isempty ())
+      || (rows () == 0 && dims ().numel (1) == 0))
+    retval.m_dimensions = dim_vector ();
+  else if (rows () == 1 && ndims () == 2)
+    retval.m_dimensions = dim_vector (1, retval.numel ());
+
+  return retval;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::nth_element (const octave::idx_vector& n, int dim) const
+{
+  if (dim < 0)
+    (*current_liboctave_error_handler) ("nth_element: invalid dimension");
+
+  dim_vector dv = dims ();
+  if (dim >= dv.ndims ())
+    dv.resize (dim+1, 1);
+
+  octave_idx_type ns = dv(dim);
+
+  octave_idx_type nn = n.length (ns);
+
+  dv(dim) = std::min (nn, ns);
+  dv.chop_trailing_singletons ();
+  dim = std::min (dv.ndims (), static_cast<octave_idx_type> (dim));
+
+  Array<T, Alloc> m (dv);
+
+  if (m.isempty ())
+    return m;
+
+  sortmode mode = UNSORTED;
+  octave_idx_type lo = 0;
+
+  switch (n.idx_class ())
+    {
+    case octave::idx_vector::class_scalar:
+      mode = ASCENDING;
+      lo = n(0);
+      break;
+    case octave::idx_vector::class_range:
+      {
+        octave_idx_type inc = n.increment ();
+        if (inc == 1)
+          {
+            mode = ASCENDING;
+            lo = n(0);
+          }
+        else if (inc == -1)
+          {
+            mode = DESCENDING;
+            lo = ns - 1 - n(0);
+          }
+      }
+      break;
+    case octave::idx_vector::class_vector:
+      // This case resolves bug #51329, a fallback to allow the given index
+      // to be a sequential vector instead of the typical scalar or range
+      if (n(1) - n(0) == 1)
+        {
+          mode = ASCENDING;
+          lo = n(0);
+        }
+      else if (n(1) - n(0) == -1)
+        {
+          mode = DESCENDING;
+          lo = ns - 1 - n(0);
+        }
+      // Ensure that the vector is actually an arithmetic contiguous sequence
+      for (octave_idx_type i = 2; i < n.length () && mode != UNSORTED; i++)
+        if ((mode == ASCENDING && n(i) - n(i-1) != 1)
+            || (mode == DESCENDING && n(i) - n(i-1) != -1))
+          mode = UNSORTED;
+      break;
+    default:
+      break;
+    }
+
+  if (mode == UNSORTED)
+    (*current_liboctave_error_handler)
+      ("nth_element: n must be a scalar or a contiguous range");
+
+  octave_idx_type up = lo + nn;
+
+  if (lo < 0 || up > ns)
+    (*current_liboctave_error_handler) ("nth_element: invalid element index");
+
+  octave_idx_type iter = numel () / ns;
+  octave_idx_type stride = 1;
+
+  for (int i = 0; i < dim; i++)
+    stride *= dv(i);
+
+  T *v = m.fortran_vec ();
+  const T *ov = data ();
+
+  OCTAVE_LOCAL_BUFFER (T, buf, ns);
+
+  octave_sort<T> lsort;
+  lsort.set_compare (mode);
+
+  for (octave_idx_type j = 0; j < iter; j++)
+    {
+      octave_idx_type kl = 0;
+      octave_idx_type ku = ns;
+
+      if (stride == 1)
+        {
+          // copy without NaNs.
+          for (octave_idx_type i = 0; i < ns; i++)
+            {
+              T tmp = ov[i];
+              if (sort_isnan<T> (tmp))
+                buf[--ku] = tmp;
+              else
+                buf[kl++] = tmp;
+            }
+
+          ov += ns;
+        }
+      else
+        {
+          octave_idx_type offset = j % stride;
+          // copy without NaNs.
+          for (octave_idx_type i = 0; i < ns; i++)
+            {
+              T tmp = ov[offset + i*stride];
+              if (sort_isnan<T> (tmp))
+                buf[--ku] = tmp;
+              else
+                buf[kl++] = tmp;
+            }
+
+          if (offset == stride-1)
+            ov += ns*stride;
+        }
+
+      if (ku == ns)
+        lsort.nth_element (buf, ns, lo, up);
+      else if (mode == ASCENDING)
+        lsort.nth_element (buf, ku, lo, std::min (ku, up));
+      else
+        {
+          octave_idx_type nnan = ns - ku;
+          octave_idx_type zero = 0;
+          lsort.nth_element (buf, ku, std::max (lo - nnan, zero),
+                             std::max (up - nnan, zero));
+          std::rotate (buf, buf + ku, buf + ns);
+        }
+
+      if (stride == 1)
+        {
+          for (octave_idx_type i = 0; i < nn; i++)
+            v[i] = buf[lo + i];
+
+          v += nn;
+        }
+      else
+        {
+          octave_idx_type offset = j % stride;
+          for (octave_idx_type i = 0; i < nn; i++)
+            v[offset + stride * i] = buf[lo + i];
+          if (offset == stride-1)
+            v += nn*stride;
+        }
+    }
+
+  return m;
+}
+
+#define NO_INSTANTIATE_ARRAY_SORT_API(T, API)                           \
+  template <> API Array<T>                                              \
+  Array<T>::sort (int, sortmode) const                                  \
+  {                                                                     \
+    return *this;                                                       \
+  }                                                                     \
+  template <> API Array<T>                                              \
+  Array<T>::sort (Array<octave_idx_type> &sidx, int, sortmode) const  \
+  {                                                                     \
+    sidx = Array<octave_idx_type> ();                                   \
+    return *this;                                                       \
+  }                                                                     \
+  template <> API sortmode                                              \
+  Array<T>::issorted (sortmode) const                                   \
+  {                                                                     \
+    return UNSORTED;                                                    \
+  }                                                                     \
+  API Array<T>::compare_fcn_type                                        \
+  safe_comparator (sortmode, const Array<T>&, bool)                     \
+  {                                                                     \
+    return nullptr;                                                     \
+  }                                                                     \
+  template <> API Array<octave_idx_type>                                \
+  Array<T>::sort_rows_idx (sortmode) const                              \
+  {                                                                     \
+    return Array<octave_idx_type> ();                                   \
+  }                                                                     \
+  template <> API sortmode                                              \
+  Array<T>::is_sorted_rows (sortmode) const                             \
+  {                                                                     \
+    return UNSORTED;                                                    \
+  }                                                                     \
+  template <> API octave_idx_type                                       \
+  Array<T>::lookup (T const &, sortmode) const                          \
+  {                                                                     \
+    return 0;                                                           \
+  }                                                                     \
+  template <> API Array<octave_idx_type>                                \
+  Array<T>::lookup (const Array<T>&, sortmode) const                    \
+  {                                                                     \
+    return Array<octave_idx_type> ();                                   \
+  }                                                                     \
+  template <> API octave_idx_type                                       \
+  Array<T>::nnz (void) const                                            \
+  {                                                                     \
+    return 0;                                                           \
+  }                                                                     \
+  template <> API Array<octave_idx_type>                                \
+  Array<T>::find (octave_idx_type, bool) const                          \
+  {                                                                     \
+    return Array<octave_idx_type> ();                                   \
+  }                                                                     \
+  template <> API Array<T>                                              \
+  Array<T>::nth_element (const octave::idx_vector&, int) const {        \
+    return Array<T> ();                                                 \
+  }
+
+#define NO_INSTANTIATE_ARRAY_SORT(T) NO_INSTANTIATE_ARRAY_SORT_API (T,)
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::diag (octave_idx_type k) const
+{
+  dim_vector dv = dims ();
+  octave_idx_type nd = dv.ndims ();
+  Array<T, Alloc> d;
+
+  if (nd > 2)
+    (*current_liboctave_error_handler) ("Matrix must be 2-dimensional");
+
+  octave_idx_type nnr = dv(0);
+  octave_idx_type nnc = dv(1);
+
+  if (nnr == 0 && nnc == 0)
+    ; // do nothing for empty matrix
+  else if (nnr != 1 && nnc != 1)
+    {
+      // Extract diag from matrix
+      if (k > 0)
+        nnc -= k;
+      else if (k < 0)
+        nnr += k;
+
+      if (nnr > 0 && nnc > 0)
+        {
+          octave_idx_type ndiag = (nnr < nnc) ? nnr : nnc;
+
+          d.resize (dim_vector (ndiag, 1));
+
+          if (k > 0)
+            {
+              for (octave_idx_type i = 0; i < ndiag; i++)
+                d.xelem (i) = elem (i, i+k);
+            }
+          else if (k < 0)
+            {
+              for (octave_idx_type i = 0; i < ndiag; i++)
+                d.xelem (i) = elem (i-k, i);
+            }
+          else
+            {
+              for (octave_idx_type i = 0; i < ndiag; i++)
+                d.xelem (i) = elem (i, i);
+            }
+        }
+      else  // Matlab returns [] 0x1 for out-of-range diagonal
+        d.resize (dim_vector (0, 1));
+    }
+  else
+    {
+      // Create diag matrix from vector
+      octave_idx_type roff = 0;
+      octave_idx_type coff = 0;
+      if (k > 0)
+        {
+          roff = 0;
+          coff = k;
+        }
+      else if (k < 0)
+        {
+          roff = -k;
+          coff = 0;
+        }
+
+      if (nnr == 1)
+        {
+          octave_idx_type n = nnc + std::abs (k);
+          d = Array<T, Alloc> (dim_vector (n, n), resize_fill_value ());
+
+          for (octave_idx_type i = 0; i < nnc; i++)
+            d.xelem (i+roff, i+coff) = elem (0, i);
+        }
+      else
+        {
+          octave_idx_type n = nnr + std::abs (k);
+          d = Array<T, Alloc> (dim_vector (n, n), resize_fill_value ());
+
+          for (octave_idx_type i = 0; i < nnr; i++)
+            d.xelem (i+roff, i+coff) = elem (i, 0);
+        }
+    }
+
+  return d;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::diag (octave_idx_type m, octave_idx_type n) const
+{
+  if (ndims () != 2 || (rows () != 1 && cols () != 1))
+    (*current_liboctave_error_handler) ("cat: invalid dimension");
+
+  Array<T, Alloc> retval (dim_vector (m, n), resize_fill_value ());
+
+  octave_idx_type nel = std::min (numel (), std::min (m, n));
+  for (octave_idx_type i = 0; i < nel; i++)
+    retval.xelem (i, i) = xelem (i);
+
+  return retval;
+}
+
+template <typename T, typename Alloc>
+Array<T, Alloc>
+Array<T, Alloc>::cat (int dim, octave_idx_type n, const Array<T, Alloc> *array_list)
+{
+  // Default concatenation.
+  bool (dim_vector::*concat_rule) (const dim_vector&, int) = &dim_vector::concat;
+
+  if (dim == -1 || dim == -2)
+    {
+      concat_rule = &dim_vector::hvcat;
+      dim = -dim - 1;
+    }
+  else if (dim < 0)
+    (*current_liboctave_error_handler) ("cat: invalid dimension");
+
+  if (n == 1)
+    return array_list[0];
+  else if (n == 0)
+    return Array<T, Alloc> ();
+
+  // Special case:
+  //
+  //   cat (dim, [], ..., [], A, ...)
+  //
+  // with dim > 2, A not 0x0, and at least three arguments to
+  // concatenate is equivalent to
+  //
+  //   cat (dim, A, ...)
+  //
+  // Note that this check must be performed here because for full-on
+  // braindead Matlab compatibility, we need to have things like
+  //
+  //   cat (3, [], [], A)
+  //
+  // succeed, but to have things like
+  //
+  //   cat (3, cat (3, [], []), A)
+  //   cat (3, zeros (0, 0, 2), A)
+  //
+  // fail.  See also bug report #31615.
+
+  octave_idx_type istart = 0;
+
+  if (n > 2 && dim > 1)
+    {
+      for (octave_idx_type i = 0; i < n; i++)
+        {
+          dim_vector dv = array_list[i].dims ();
+
+          if (dv.zero_by_zero ())
+            istart++;
+          else
+            break;
+        }
+
+      // Don't skip any initial arguments if they are all empty.
+      if (istart >= n)
+        istart = 0;
+    }
+
+  dim_vector dv = array_list[istart++].dims ();
+
+  for (octave_idx_type i = istart; i < n; i++)
+    if (! (dv.*concat_rule) (array_list[i].dims (), dim))
+      (*current_liboctave_error_handler) ("cat: dimension mismatch");
+
+  Array<T, Alloc> retval (dv);
+
+  if (retval.isempty ())
+    return retval;
+
+  int nidx = std::max (dv.ndims (), static_cast<octave_idx_type> (dim + 1));
+  Array<octave::idx_vector> idxa (dim_vector (nidx, 1), octave::idx_vector::colon);
+  octave_idx_type l = 0;
+
+  for (octave_idx_type i = 0; i < n; i++)
+    {
+      // NOTE: This takes some thinking, but no matter what the above rules
+      // are, an empty array can always be skipped at this point, because
+      // the result dimensions are already determined, and there is no way
+      // an empty array may contribute a nonzero piece along the dimension
+      // at this point, unless an empty array can be promoted to a non-empty
+      // one (which makes no sense).  I repeat, *no way*, think about it.
+      if (array_list[i].isempty ())
+        continue;
+
+      octave_quit ();
+
+      octave_idx_type u;
+      if (dim < array_list[i].ndims ())
+        u = l + array_list[i].dims ()(dim);
+      else
+        u = l + 1;
+
+      idxa(dim) = octave::idx_vector (l, u);
+
+      retval.assign (idxa, array_list[i]);
+
+      l = u;
+    }
+
+  return retval;
+}
+
+template <typename T, typename Alloc>
+void
+Array<T, Alloc>::print_info (std::ostream& os, const std::string& prefix) const
+{
+  os << prefix << "m_rep address:   " << m_rep << '\n'
+     << prefix << "m_rep->m_len:    " << m_rep->m_len << '\n'
+     << prefix << "m_rep->m_data:   " << static_cast<void *> (m_rep->m_data) << '\n'
+     << prefix << "m_rep->m_count:  " << m_rep->m_count << '\n'
+     << prefix << "m_slice_data:    " << static_cast<void *> (m_slice_data) << '\n'
+     << prefix << "m_slice_len:     " << m_slice_len << '\n';
+
+  // 2D info:
+  //
+  //     << pefix << "rows: " << rows () << "\n"
+  //     << prefix << "cols: " << cols () << "\n";
+}
+
+template <typename T, typename Alloc>
+bool Array<T, Alloc>::optimize_dimensions (const dim_vector& dv)
+{
+  bool retval = m_dimensions == dv;
+  if (retval)
+    m_dimensions = dv;
+
+  return retval;
+}
+
+template <typename T, typename Alloc>
+void Array<T, Alloc>::instantiation_guard ()
+{
+  // This guards against accidental implicit instantiations.
+  // Array<T, Alloc> instances should always be explicit and use INSTANTIATE_ARRAY.
+  T::__xXxXx__ ();
+}
+
+#define INSTANTIATE_ARRAY(T, API)               \
+  template <> API void                          \
+  Array<T>::instantiation_guard () { }          \
+                                                \
+  template class API Array<T>
+
+// FIXME: is this used?
+
+template <typename T, typename Alloc>
+std::ostream&
+operator << (std::ostream& os, const Array<T, Alloc>& a)
+{
+  dim_vector a_dims = a.dims ();
+
+  int n_dims = a_dims.ndims ();
+
+  os << n_dims << "-dimensional array";
+
+  if (n_dims)
+    os << " (" << a_dims.str () << ')';
+
+  os <<"\n\n";
+
+  if (n_dims)
+    {
+      os << "data:";
+
+      Array<octave_idx_type> ra_idx (dim_vector (n_dims, 1), 0);
+
+      // Number of times the first 2d-array is to be displayed.
+
+      octave_idx_type m = 1;
+      for (int i = 2; i < n_dims; i++)
+        m *= a_dims(i);
+
+      if (m == 1)
+        {
+          octave_idx_type rows = 0;
+          octave_idx_type cols = 0;
+
+          switch (n_dims)
+            {
+            case 2:
+              rows = a_dims(0);
+              cols = a_dims(1);
+
+              for (octave_idx_type j = 0; j < rows; j++)
+                {
+                  ra_idx(0) = j;
+                  for (octave_idx_type k = 0; k < cols; k++)
+                    {
+                      ra_idx(1) = k;
+                      os << ' ' << a.elem (ra_idx);
+                    }
+                  os << "\n";
+                }
+              break;
+
+            default:
+              rows = a_dims(0);
+
+              for (octave_idx_type k = 0; k < rows; k++)
+                {
+                  ra_idx(0) = k;
+                  os << ' ' << a.elem (ra_idx);
+                }
+              break;
+            }
+
+          os << "\n";
+        }
+      else
+        {
+          octave_idx_type rows = a_dims(0);
+          octave_idx_type cols = a_dims(1);
+
+          for (int i = 0; i < m; i++)
+            {
+              os << "\n(:,:,";
+
+              for (int j = 2; j < n_dims - 1; j++)
+                os << ra_idx(j) + 1 << ',';
+
+              os << ra_idx(n_dims - 1) + 1 << ") = \n";
+
+              for (octave_idx_type j = 0; j < rows; j++)
+                {
+                  ra_idx(0) = j;
+
+                  for (octave_idx_type k = 0; k < cols; k++)
+                    {
+                      ra_idx(1) = k;
+                      os << ' ' << a.elem (ra_idx);
+                    }
+
+                  os << "\n";
+                }
+
+              os << "\n";
+
+              if (i != m - 1)
+                increment_index (ra_idx, a_dims, 2);
+            }
+        }
+    }
+
+  return os;
+}
--- a/liboctave/array/Array-ch.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-ch.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -30,21 +30,22 @@
 // Instantiate Arrays of char values.
 
 #include "Array.h"
-#include "Array.cc"
+
+// Prevent implicit instantiations on some systems (Windows, others?)
+// that can lead to duplicate definitions of static data members.
+
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
+extern template class Array<octave_idx_type>;
+
+#include "Array-base.cc"
 
 #define INLINE_ASCENDING_SORT 1
 #define INLINE_DESCENDING_SORT 1
 #include "oct-sort.cc"
 
-// Prevent implicit instantiations on some systems (Windows, others?)
-// that can lead to duplicate definitions of static data members.
-
-extern template class Array<octave::idx_vector>;
-extern template class Array<octave_idx_type>;
-
 template class octave_sort<char>;
 
-INSTANTIATE_ARRAY (char, OCTAVE_API);
+INSTANTIATE_ARRAY (char, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 template OCTAVE_API std::ostream& operator << (std::ostream&,
                                                const Array<char>&);
--- a/liboctave/array/Array-d.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-d.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -31,19 +31,20 @@
 
 #include "lo-mappers.h"
 #include "Array.h"
-#include "Array.cc"
+
+// Prevent implicit instantiations on some systems (Windows, others?)
+// that can lead to duplicate definitions of static data members.
+
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
+extern template class Array<octave_idx_type>;
+
+#include "Array-base.cc"
 #include "oct-locbuf.h"
 
 #define INLINE_ASCENDING_SORT 1
 #define INLINE_DESCENDING_SORT 1
 #include "oct-sort.cc"
 
-// Prevent implicit instantiations on some systems (Windows, others?)
-// that can lead to duplicate definitions of static data members.
-
-extern template class Array<octave::idx_vector>;
-extern template class Array<octave_idx_type>;
-
 template <>
 inline bool
 sort_isnan<double> (double x)
@@ -165,7 +166,7 @@
 
 template class octave_sort<double>;
 
-INSTANTIATE_ARRAY (double, OCTAVE_API);
+INSTANTIATE_ARRAY (double, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 template OCTAVE_API std::ostream& operator << (std::ostream&,
                                                const Array<double>&);
--- a/liboctave/array/Array-f.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-f.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -31,19 +31,20 @@
 
 #include "lo-mappers.h"
 #include "Array.h"
-#include "Array.cc"
+
+// Prevent implicit instantiations on some systems (Windows, others?)
+// that can lead to duplicate definitions of static data members.
+
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
+extern template class Array<octave_idx_type>;
+
+#include "Array-base.cc"
 #include "oct-locbuf.h"
 
 #define INLINE_ASCENDING_SORT 1
 #define INLINE_DESCENDING_SORT 1
 #include "oct-sort.cc"
 
-// Prevent implicit instantiations on some systems (Windows, others?)
-// that can lead to duplicate definitions of static data members.
-
-extern template class Array<octave::idx_vector>;
-extern template class Array<octave_idx_type>;
-
 template <>
 inline bool
 sort_isnan<float> (float x)
@@ -165,7 +166,7 @@
 
 template class octave_sort<float>;
 
-INSTANTIATE_ARRAY (float, OCTAVE_API);
+INSTANTIATE_ARRAY (float, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 template OCTAVE_API std::ostream& operator << (std::ostream&,
                                                const Array<float>&);
--- a/liboctave/array/Array-fC.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-fC.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -33,15 +33,16 @@
 #include "lo-mappers.h"
 
 #include "Array.h"
-#include "Array.cc"
-#include "oct-sort.cc"
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
 
-extern template class Array<octave::idx_vector>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
 extern template class Array<octave_idx_type>;
 
+#include "Array-base.cc"
+#include "oct-sort.cc"
+
 template <>
 inline bool
 sort_isnan<FloatComplex> (const FloatComplex& x)
@@ -94,7 +95,7 @@
 
 template class octave_sort<FloatComplex>;
 
-INSTANTIATE_ARRAY (FloatComplex, OCTAVE_API);
+INSTANTIATE_ARRAY (FloatComplex, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 template OCTAVE_API std::ostream& operator << (std::ostream&,
                                                const Array<FloatComplex>&);
--- a/liboctave/array/Array-fwd.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-fwd.h	Tue Nov 15 13:15:28 2022 -0800
@@ -32,12 +32,13 @@
 #  include <memory_resource>
 
 template <typename T, typename Alloc = std::pmr::polymorphic_allocator<T>>
-class OCTARRAY_API Array;
+class OCTAVE_TEMPLATE_API Array;
 
 #else
+#  include <memory>
 
 template <typename T, typename Alloc = std::allocator<T>>
-class OCTARRAY_API Array;
+class OCTAVE_TEMPLATE_API Array;
 
 #endif
 
--- a/liboctave/array/Array-i.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-i.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -32,17 +32,18 @@
 // Instantiate Arrays of integer values.
 
 #include "Array.h"
-#include "Array.cc"
+
+// Prevent implicit instantiations on some systems (Windows, others?)
+// that can lead to duplicate definitions of static data members.
+
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
+
+#include "Array-base.cc"
 
 #define INLINE_ASCENDING_SORT 1
 #define INLINE_DESCENDING_SORT 1
 #include "oct-sort.cc"
 
-// Prevent implicit instantiations on some systems (Windows, others?)
-// that can lead to duplicate definitions of static data members.
-
-extern template class Array<octave::idx_vector>;
-
 template class octave_sort<signed char>;
 //template class octave_sort<short>;
 template class octave_sort<int>;
@@ -51,12 +52,12 @@
 template class octave_sort<long long>;
 #endif
 
-INSTANTIATE_ARRAY (signed char, OCTAVE_API);
-//INSTANTIATE_ARRAY (short, OCTAVE_API);
-INSTANTIATE_ARRAY (int, OCTAVE_API);
-INSTANTIATE_ARRAY (long, OCTAVE_API);
+INSTANTIATE_ARRAY (signed char, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+//INSTANTIATE_ARRAY (short, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (int, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (long, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 #if defined (OCTAVE_HAVE_LONG_LONG_INT)
-INSTANTIATE_ARRAY (long long, OCTAVE_API);
+INSTANTIATE_ARRAY (long long, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 #endif
 
 template class octave_sort<unsigned char>;
@@ -67,11 +68,12 @@
 template class octave_sort<unsigned long long>;
 #endif
 
-INSTANTIATE_ARRAY (unsigned char, OCTAVE_API);
-INSTANTIATE_ARRAY (unsigned short, OCTAVE_API);
-INSTANTIATE_ARRAY (unsigned int, OCTAVE_API);
+INSTANTIATE_ARRAY (unsigned char, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (unsigned short, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (unsigned int, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (unsigned long, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 #if defined (OCTAVE_HAVE_UNSIGNED_LONG_LONG_INT)
-INSTANTIATE_ARRAY (unsigned long long, OCTAVE_API);
+INSTANTIATE_ARRAY (unsigned long long, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 #endif
 
 template class octave_sort<octave_int8>;
@@ -79,20 +81,20 @@
 template class octave_sort<octave_int32>;
 template class octave_sort<octave_int64>;
 
-INSTANTIATE_ARRAY (octave_int8, OCTAVE_API);
-INSTANTIATE_ARRAY (octave_int16, OCTAVE_API);
-INSTANTIATE_ARRAY (octave_int32, OCTAVE_API);
-INSTANTIATE_ARRAY (octave_int64, OCTAVE_API);
+INSTANTIATE_ARRAY (octave_int8, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (octave_int16, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (octave_int32, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (octave_int64, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 template class octave_sort<octave_uint8>;
 template class octave_sort<octave_uint16>;
 template class octave_sort<octave_uint32>;
 template class octave_sort<octave_uint64>;
 
-INSTANTIATE_ARRAY (octave_uint8, OCTAVE_API);
-INSTANTIATE_ARRAY (octave_uint16, OCTAVE_API);
-INSTANTIATE_ARRAY (octave_uint32, OCTAVE_API);
-INSTANTIATE_ARRAY (octave_uint64, OCTAVE_API);
+INSTANTIATE_ARRAY (octave_uint8, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (octave_uint16, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (octave_uint32, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_ARRAY (octave_uint64, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 #include "DiagArray2.h"
 #include "DiagArray2.cc"
--- a/liboctave/array/Array-idx-vec.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-idx-vec.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -32,13 +32,14 @@
 #include "idx-vector.h"
 
 #include "Array.h"
-#include "Array.cc"
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
 
 extern template class Array<octave_idx_type>;
 
+#include "Array-base.cc"
+
 NO_INSTANTIATE_ARRAY_SORT_API (octave::idx_vector, OCTAVE_API);
 
-INSTANTIATE_ARRAY (octave::idx_vector, OCTAVE_API);
+INSTANTIATE_ARRAY (octave::idx_vector, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/array/Array-oct.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,83 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+
+// Include this file when instantiating the Array class with new types in
+// projects linking to "liboctave" but not to "liboctinterp".
+
+#include "Array.h"
+
+// FIXME: Including "Array.h" will have implicitly instantiated
+// Array<octave_idx_type>.  Could that be an issue?
+
+// "Protect" Array<T> instantiations that are exported by liboctave from
+// being implicitly instantiated in compilation units including this file.
+
+// Declare extern templates before including "Array-base.cc" to avoid
+// implicitly instantiating Array<octave::idx_vector>.
+
+// instantiated in Array-C.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<Complex>;
+// instantiated in Array-b.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<bool>;
+// instantiated in Array-ch.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<char>;
+// instantiated in Array-d.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<double>;
+// instantiated in Array-f.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<float>;
+// instantiated in Array-fC.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<FloatComplex>;
+// instantiated in Array-i.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<signed char>;
+// extern template class Array<short>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<int>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<long>;
+#if defined (OCTAVE_HAVE_LONG_LONG_INT)
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<long long>;
+#endif
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<unsigned char>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<unsigned short>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<unsigned int>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<unsigned long>;
+#if defined (OCTAVE_HAVE_UNSIGNED_LONG_LONG_INT)
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<unsigned long long>;
+#endif
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave_int8>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave_int16>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave_int32>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave_int64>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave_uint8>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave_uint16>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave_uint32>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave_uint64>;
+// instantiated in Array-idx-vec.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
+// instantiated in Array-s.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<short>;
+// instantiated in Array-str.cc
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<std::string>;
+
+#include "Array-base.cc"
--- a/liboctave/array/Array-s.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-s.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -30,21 +30,22 @@
 // Instantiate Arrays of short int values.
 
 #include "Array.h"
-#include "Array.cc"
+
+// Prevent implicit instantiations on some systems (Windows, others?)
+// that can lead to duplicate definitions of static data members.
+
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
+extern template class Array<octave_idx_type>;
+
+#include "Array-base.cc"
 
 #define INLINE_ASCENDING_SORT 1
 #define INLINE_DESCENDING_SORT 1
 #include "oct-sort.cc"
 
-// Prevent implicit instantiations on some systems (Windows, others?)
-// that can lead to duplicate definitions of static data members.
-
-extern template class Array<octave::idx_vector>;
-extern template class Array<octave_idx_type>;
-
 template class octave_sort<short>;
 
-INSTANTIATE_ARRAY (short, OCTAVE_API);
+INSTANTIATE_ARRAY (short, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
 
 #include "DiagArray2.h"
 #include "DiagArray2.cc"
--- a/liboctave/array/Array-str.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-str.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -32,16 +32,17 @@
 // Instantiate Arrays of strings.
 
 #include "Array.h"
-#include "Array.cc"
-
-#include "oct-sort.cc"
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
 
-extern template class Array<octave::idx_vector>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
 extern template class Array<octave_idx_type>;
 
+#include "Array-base.cc"
+
+#include "oct-sort.cc"
+
 template class octave_sort<std::string>;
 
-INSTANTIATE_ARRAY (std::string, OCTAVE_API);
+INSTANTIATE_ARRAY (std::string, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
--- a/liboctave/array/Array-util.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-util.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -623,17 +623,16 @@
   Array<octave::idx_vector> retval (dim_vector (n, 1));
   octave_idx_type numel = dv.numel ();
 
-  if (idx.extent (numel) > numel)
-    (*current_liboctave_error_handler) ("ind2sub: index out of range");
-
   if (idx.is_scalar ())
     {
       octave_idx_type k = idx(0);
-      for (octave_idx_type j = 0; j < n; j++)
+      for (octave_idx_type j = 0; j < n-1; j++)
         {
           retval(j) = k % dv(j);
           k /= dv(j);
         }
+
+      retval(n-1) = idx(0) < numel ? k % dv(n-1) : k;
     }
   else
     {
@@ -646,11 +645,13 @@
       for (octave_idx_type i = 0; i < len; i++)
         {
           octave_idx_type k = idx(i);
-          for (octave_idx_type j = 0; j < n; j++)
+          for (octave_idx_type j = 0; j < n-1; j++)
             {
               rdata[j](i) = k % dv(j);
               k /= dv(j);
             }
+
+          rdata[n-1](i) = idx(i) < numel ? k % dv(n-1) : k;
         }
 
       for (octave_idx_type j = 0; j < n; j++)
--- a/liboctave/array/Array-voidp.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array-voidp.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -32,14 +32,15 @@
 // Instantiate Arrays of void *.
 
 #include "Array.h"
-#include "Array.cc"
 
 // Prevent implicit instantiations on some systems (Windows, others?)
 // that can lead to duplicate definitions of static data members.
 
-extern template class Array<octave::idx_vector>;
+extern template class OCTAVE_EXTERN_TEMPLATE_API Array<octave::idx_vector>;
 extern template class Array<octave_idx_type>;
 
+#include "Array-base.cc"
+
 NO_INSTANTIATE_ARRAY_SORT_API (void *, OCTAVE_API);
 
-INSTANTIATE_ARRAY (void *, OCTAVE_API);
+INSTANTIATE_ARRAY (void *, OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API);
--- a/liboctave/array/Array.cc	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2875 +0,0 @@
-////////////////////////////////////////////////////////////////////////
-//
-// Copyright (C) 1993-2022 The Octave Project Developers
-//
-// See the file COPYRIGHT.md in the top-level directory of this
-// distribution or <https://octave.org/copyright/>.
-//
-// This file is part of Octave.
-//
-// Octave is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Octave is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Octave; see the file COPYING.  If not, see
-// <https://www.gnu.org/licenses/>.
-//
-////////////////////////////////////////////////////////////////////////
-
-// This file should not include config.h.  It is only included in other
-// C++ source files that should have included config.h before including
-// this file.
-
-#include <ostream>
-
-#include "Array-util.h"
-#include "Array.h"
-#include "lo-mappers.h"
-#include "oct-locbuf.h"
-
-// One dimensional array class.  Handles the reference counting for
-// all the derived classes.
-
-template <typename T, typename Alloc>
-typename Array<T, Alloc>::ArrayRep *
-Array<T, Alloc>::nil_rep (void)
-{
-  static ArrayRep nr;
-  return &nr;
-}
-
-// This is similar to the template for containers but specialized for Array.
-// Note we can't specialize a member without also specializing the class.
-template <typename T, typename Alloc>
-Array<T, Alloc>::Array (const Array<T, Alloc>& a, const dim_vector& dv)
-  : m_dimensions (dv), m_rep (a.m_rep),
-    m_slice_data (a.m_slice_data), m_slice_len (a.m_slice_len)
-{
-  if (m_dimensions.safe_numel () != a.numel ())
-    {
-      std::string dimensions_str = a.m_dimensions.str ();
-      std::string new_dims_str = m_dimensions.str ();
-
-      (*current_liboctave_error_handler)
-        ("reshape: can't reshape %s array to %s array",
-         dimensions_str.c_str (), new_dims_str.c_str ());
-    }
-
-  // This goes here because if an exception is thrown by the above,
-  // destructor will be never called.
-  m_rep->m_count++;
-  m_dimensions.chop_trailing_singletons ();
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::fill (const T& val)
-{
-  if (m_rep->m_count > 1)
-    {
-      --m_rep->m_count;
-      m_rep = new ArrayRep (numel (), val);
-      m_slice_data = m_rep->m_data;
-    }
-  else
-    std::fill_n (m_slice_data, m_slice_len, val);
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::clear (void)
-{
-  if (--m_rep->m_count == 0)
-    delete m_rep;
-
-  m_rep = nil_rep ();
-  m_rep->m_count++;
-  m_slice_data = m_rep->m_data;
-  m_slice_len = m_rep->m_len;
-
-  m_dimensions = dim_vector ();
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::clear (const dim_vector& dv)
-{
-  if (--m_rep->m_count == 0)
-    delete m_rep;
-
-  m_rep = new ArrayRep (dv.safe_numel ());
-  m_slice_data = m_rep->m_data;
-  m_slice_len = m_rep->m_len;
-
-  m_dimensions = dv;
-  m_dimensions.chop_trailing_singletons ();
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::squeeze (void) const
-{
-  Array<T, Alloc> retval = *this;
-
-  if (ndims () > 2)
-    {
-      bool dims_changed = false;
-
-      dim_vector new_dimensions = m_dimensions;
-
-      int k = 0;
-
-      for (int i = 0; i < ndims (); i++)
-        {
-          if (m_dimensions(i) == 1)
-            dims_changed = true;
-          else
-            new_dimensions(k++) = m_dimensions(i);
-        }
-
-      if (dims_changed)
-        {
-          switch (k)
-            {
-            case 0:
-              new_dimensions = dim_vector (1, 1);
-              break;
-
-            case 1:
-              {
-                octave_idx_type tmp = new_dimensions(0);
-
-                new_dimensions.resize (2);
-
-                new_dimensions(0) = tmp;
-                new_dimensions(1) = 1;
-              }
-              break;
-
-            default:
-              new_dimensions.resize (k);
-              break;
-            }
-        }
-
-      retval = Array<T, Alloc> (*this, new_dimensions);
-    }
-
-  return retval;
-}
-
-template <typename T, typename Alloc>
-octave_idx_type
-Array<T, Alloc>::compute_index (octave_idx_type i, octave_idx_type j) const
-{
-  return ::compute_index (i, j, m_dimensions);
-}
-
-template <typename T, typename Alloc>
-octave_idx_type
-Array<T, Alloc>::compute_index (octave_idx_type i, octave_idx_type j,
-                         octave_idx_type k) const
-{
-  return ::compute_index (i, j, k, m_dimensions);
-}
-
-template <typename T, typename Alloc>
-octave_idx_type
-Array<T, Alloc>::compute_index (const Array<octave_idx_type>& ra_idx) const
-{
-  return ::compute_index (ra_idx, m_dimensions);
-}
-
-template <typename T, typename Alloc>
-T&
-Array<T, Alloc>::checkelem (octave_idx_type n)
-{
-  // Do checks directly to avoid recomputing m_slice_len.
-  if (n < 0)
-    octave::err_invalid_index (n);
-  if (n >= m_slice_len)
-    octave::err_index_out_of_range (1, 1, n+1, m_slice_len, m_dimensions);
-
-  return elem (n);
-}
-
-template <typename T, typename Alloc>
-T&
-Array<T, Alloc>::checkelem (octave_idx_type i, octave_idx_type j)
-{
-  return elem (compute_index (i, j));
-}
-
-template <typename T, typename Alloc>
-T&
-Array<T, Alloc>::checkelem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
-{
-  return elem (compute_index (i, j, k));
-}
-
-template <typename T, typename Alloc>
-T&
-Array<T, Alloc>::checkelem (const Array<octave_idx_type>& ra_idx)
-{
-  return elem (compute_index (ra_idx));
-}
-
-template <typename T, typename Alloc>
-typename Array<T, Alloc>::crefT
-Array<T, Alloc>::checkelem (octave_idx_type n) const
-{
-  // Do checks directly to avoid recomputing m_slice_len.
-  if (n < 0)
-    octave::err_invalid_index (n);
-  if (n >= m_slice_len)
-    octave::err_index_out_of_range (1, 1, n+1, m_slice_len, m_dimensions);
-
-  return elem (n);
-}
-
-template <typename T, typename Alloc>
-typename Array<T, Alloc>::crefT
-Array<T, Alloc>::checkelem (octave_idx_type i, octave_idx_type j) const
-{
-  return elem (compute_index (i, j));
-}
-
-template <typename T, typename Alloc>
-typename Array<T, Alloc>::crefT
-Array<T, Alloc>::checkelem (octave_idx_type i, octave_idx_type j,
-                     octave_idx_type k) const
-{
-  return elem (compute_index (i, j, k));
-}
-
-template <typename T, typename Alloc>
-typename Array<T, Alloc>::crefT
-Array<T, Alloc>::checkelem (const Array<octave_idx_type>& ra_idx) const
-{
-  return elem (compute_index (ra_idx));
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::column (octave_idx_type k) const
-{
-  octave_idx_type r = m_dimensions(0);
-
-  return Array<T, Alloc> (*this, dim_vector (r, 1), k*r, k*r + r);
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::page (octave_idx_type k) const
-{
-  octave_idx_type r = m_dimensions(0);
-  octave_idx_type c = m_dimensions(1);
-  octave_idx_type p = r*c;
-
-  return Array<T, Alloc> (*this, dim_vector (r, c), k*p, k*p + p);
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::linear_slice (octave_idx_type lo, octave_idx_type up) const
-{
-  if (up < lo)
-    up = lo;
-
-  return Array<T, Alloc> (*this, dim_vector (up - lo, 1), lo, up);
-}
-
-// Helper class for multi-d dimension permuting (generalized transpose).
-class rec_permute_helper
-{
-public:
-  rec_permute_helper (const dim_vector& dv, const Array<octave_idx_type>& perm)
-
-    : m_n (dv.ndims ()), m_top (0), m_dim (new octave_idx_type [2*m_n]),
-      m_stride (m_dim + m_n), m_use_blk (false)
-  {
-    assert (m_n == perm.numel ());
-
-    // Get cumulative dimensions.
-    OCTAVE_LOCAL_BUFFER (octave_idx_type, cdim, m_n+1);
-    cdim[0] = 1;
-    for (int i = 1; i < m_n+1; i++) cdim[i] = cdim[i-1] * dv(i-1);
-
-    // Setup the permuted strides.
-    for (int k = 0; k < m_n; k++)
-      {
-        int kk = perm(k);
-        m_dim[k] = dv(kk);
-        m_stride[k] = cdim[kk];
-      }
-
-    // Reduce contiguous runs.
-    for (int k = 1; k < m_n; k++)
-      {
-        if (m_stride[k] == m_stride[m_top]*m_dim[m_top])
-          m_dim[m_top] *= m_dim[k];
-        else
-          {
-            m_top++;
-            m_dim[m_top] = m_dim[k];
-            m_stride[m_top] = m_stride[k];
-          }
-      }
-
-    // Determine whether we can use block transposes.
-    m_use_blk = m_top >= 1 && m_stride[1] == 1 && m_stride[0] == m_dim[1];
-
-  }
-
-  // No copying!
-
-  rec_permute_helper (const rec_permute_helper&) = delete;
-
-  rec_permute_helper& operator = (const rec_permute_helper&) = delete;
-
-  ~rec_permute_helper (void) { delete [] m_dim; }
-
-  template <typename T>
-  void permute (const T *src, T *dest) const { do_permute (src, dest, m_top); }
-
-  // Helper method for fast blocked transpose.
-  template <typename T>
-  static T *
-  blk_trans (const T *src, T *dest, octave_idx_type nr, octave_idx_type nc)
-  {
-    static const octave_idx_type m = 8;
-    OCTAVE_LOCAL_BUFFER (T, blk, m*m);
-    for (octave_idx_type kr = 0; kr < nr; kr += m)
-      for (octave_idx_type kc = 0; kc < nc; kc += m)
-        {
-          octave_idx_type lr = std::min (m, nr - kr);
-          octave_idx_type lc = std::min (m, nc - kc);
-          if (lr == m && lc == m)
-            {
-              const T *ss = src + kc * nr + kr;
-              for (octave_idx_type j = 0; j < m; j++)
-                for (octave_idx_type i = 0; i < m; i++)
-                  blk[j*m+i] = ss[j*nr + i];
-              T *dd = dest + kr * nc + kc;
-              for (octave_idx_type j = 0; j < m; j++)
-                for (octave_idx_type i = 0; i < m; i++)
-                  dd[j*nc+i] = blk[i*m+j];
-            }
-          else
-            {
-              const T *ss = src + kc * nr + kr;
-              for (octave_idx_type j = 0; j < lc; j++)
-                for (octave_idx_type i = 0; i < lr; i++)
-                  blk[j*m+i] = ss[j*nr + i];
-              T *dd = dest + kr * nc + kc;
-              for (octave_idx_type j = 0; j < lr; j++)
-                for (octave_idx_type i = 0; i < lc; i++)
-                  dd[j*nc+i] = blk[i*m+j];
-            }
-        }
-
-    return dest + nr*nc;
-  }
-
-private:
-
-  // Recursive N-D generalized transpose
-  template <typename T>
-  T * do_permute (const T *src, T *dest, int lev) const
-  {
-    if (lev == 0)
-      {
-        octave_idx_type step = m_stride[0];
-        octave_idx_type len = m_dim[0];
-        if (step == 1)
-          {
-            std::copy_n (src, len, dest);
-            dest += len;
-          }
-        else
-          {
-            for (octave_idx_type i = 0, j = 0; i < len; i++, j += step)
-              dest[i] = src[j];
-
-            dest += len;
-          }
-      }
-    else if (m_use_blk && lev == 1)
-      dest = blk_trans (src, dest, m_dim[1], m_dim[0]);
-    else
-      {
-        octave_idx_type step = m_stride[lev];
-        octave_idx_type len = m_dim[lev];
-        for (octave_idx_type i = 0, j = 0; i < len; i++, j+= step)
-          dest = do_permute (src + i * step, dest, lev-1);
-      }
-
-    return dest;
-  }
-
-  //--------
-
-  // STRIDE occupies the last half of the space allocated for dim to
-  // avoid a double allocation.
-
-  int m_n;
-  int m_top;
-  octave_idx_type *m_dim;
-  octave_idx_type *m_stride;
-  bool m_use_blk;
-};
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::permute (const Array<octave_idx_type>& perm_vec_arg, bool inv) const
-{
-  Array<T, Alloc> retval;
-
-  Array<octave_idx_type> perm_vec = perm_vec_arg;
-
-  dim_vector dv = dims ();
-
-  int perm_vec_len = perm_vec_arg.numel ();
-
-  if (perm_vec_len < dv.ndims ())
-    (*current_liboctave_error_handler)
-      ("%s: invalid permutation vector", inv ? "ipermute" : "permute");
-
-  dim_vector dv_new = dim_vector::alloc (perm_vec_len);
-
-  // Append singleton dimensions as needed.
-  dv.resize (perm_vec_len, 1);
-
-  // Need this array to check for identical elements in permutation array.
-  OCTAVE_LOCAL_BUFFER_INIT (bool, checked, perm_vec_len, false);
-
-  bool identity = true;
-
-  // Find dimension vector of permuted array.
-  for (int i = 0; i < perm_vec_len; i++)
-    {
-      octave_idx_type perm_elt = perm_vec.elem (i);
-      if (perm_elt >= perm_vec_len || perm_elt < 0)
-        (*current_liboctave_error_handler)
-          ("%s: permutation vector contains an invalid element",
-           inv ? "ipermute" : "permute");
-
-      if (checked[perm_elt])
-        (*current_liboctave_error_handler)
-          ("%s: permutation vector cannot contain identical elements",
-           inv ? "ipermute" : "permute");
-      else
-        {
-          checked[perm_elt] = true;
-          identity = identity && perm_elt == i;
-        }
-    }
-
-  if (identity)
-    return *this;
-
-  if (inv)
-    {
-      for (int i = 0; i < perm_vec_len; i++)
-        perm_vec(perm_vec_arg(i)) = i;
-    }
-
-  for (int i = 0; i < perm_vec_len; i++)
-    dv_new(i) = dv(perm_vec(i));
-
-  retval = Array<T, Alloc> (dv_new);
-
-  if (numel () > 0)
-    {
-      rec_permute_helper rh (dv, perm_vec);
-      rh.permute (data (), retval.fortran_vec ());
-    }
-
-  return retval;
-}
-
-// Helper class for multi-d index reduction and recursive
-// indexing/indexed assignment.  Rationale: we could avoid recursion
-// using a state machine instead.  However, using recursion is much
-// more amenable to possible parallelization in the future.
-// Also, the recursion solution is cleaner and more understandable.
-
-class rec_index_helper
-{
-public:
-  rec_index_helper (const dim_vector& dv, const Array<octave::idx_vector>& ia)
-    : m_n (ia.numel ()), m_top (0), m_dim (new octave_idx_type [2*m_n]),
-      m_cdim (m_dim + m_n), m_idx (new octave::idx_vector [m_n])
-  {
-    assert (m_n > 0 && (dv.ndims () == std::max (m_n, 2)));
-
-    m_dim[0] = dv(0);
-    m_cdim[0] = 1;
-    m_idx[0] = ia(0);
-
-    for (int i = 1; i < m_n; i++)
-      {
-        // Try reduction...
-        if (m_idx[m_top].maybe_reduce (m_dim[m_top], ia(i), dv(i)))
-          {
-            // Reduction successful, fold dimensions.
-            m_dim[m_top] *= dv(i);
-          }
-        else
-          {
-            // Unsuccessful, store index & cumulative m_dim.
-            m_top++;
-            m_idx[m_top] = ia(i);
-            m_dim[m_top] = dv(i);
-            m_cdim[m_top] = m_cdim[m_top-1] * m_dim[m_top-1];
-          }
-      }
-  }
-
-  // No copying!
-
-  rec_index_helper (const rec_index_helper&) = delete;
-
-  rec_index_helper& operator = (const rec_index_helper&) = delete;
-
-  ~rec_index_helper (void) { delete [] m_idx; delete [] m_dim; }
-
-  template <typename T>
-  void index (const T *src, T *dest) const { do_index (src, dest, m_top); }
-
-  template <typename T>
-  void assign (const T *src, T *dest) const { do_assign (src, dest, m_top); }
-
-  template <typename T>
-  void fill (const T& val, T *dest) const { do_fill (val, dest, m_top); }
-
-  bool is_cont_range (octave_idx_type& l, octave_idx_type& u) const
-  {
-    return m_top == 0 && m_idx[0].is_cont_range (m_dim[0], l, u);
-  }
-
-private:
-
-  // Recursive N-D indexing
-  template <typename T>
-  T * do_index (const T *src, T *dest, int lev) const
-  {
-    if (lev == 0)
-      dest += m_idx[0].index (src, m_dim[0], dest);
-    else
-      {
-        octave_idx_type nn = m_idx[lev].length (m_dim[lev]);
-        octave_idx_type d = m_cdim[lev];
-        for (octave_idx_type i = 0; i < nn; i++)
-          dest = do_index (src + d*m_idx[lev].xelem (i), dest, lev-1);
-      }
-
-    return dest;
-  }
-
-  // Recursive N-D indexed assignment
-  template <typename T>
-  const T * do_assign (const T *src, T *dest, int lev) const
-  {
-    if (lev == 0)
-      src += m_idx[0].assign (src, m_dim[0], dest);
-    else
-      {
-        octave_idx_type nn = m_idx[lev].length (m_dim[lev]);
-        octave_idx_type d = m_cdim[lev];
-        for (octave_idx_type i = 0; i < nn; i++)
-          src = do_assign (src, dest + d*m_idx[lev].xelem (i), lev-1);
-      }
-
-    return src;
-  }
-
-  // Recursive N-D indexed assignment
-  template <typename T>
-  void do_fill (const T& val, T *dest, int lev) const
-  {
-    if (lev == 0)
-      m_idx[0].fill (val, m_dim[0], dest);
-    else
-      {
-        octave_idx_type nn = m_idx[lev].length (m_dim[lev]);
-        octave_idx_type d = m_cdim[lev];
-        for (octave_idx_type i = 0; i < nn; i++)
-          do_fill (val, dest + d*m_idx[lev].xelem (i), lev-1);
-      }
-  }
-
-  //--------
-
-  // CDIM occupies the last half of the space allocated for dim to
-  // avoid a double allocation.
-
-  int m_n;
-  int m_top;
-  octave_idx_type *m_dim;
-  octave_idx_type *m_cdim;
-  octave::idx_vector *m_idx;
-};
-
-// Helper class for multi-d recursive resizing
-// This handles resize () in an efficient manner, touching memory only
-// once (apart from reinitialization)
-class rec_resize_helper
-{
-public:
-  rec_resize_helper (const dim_vector& ndv, const dim_vector& odv)
-    : m_cext (nullptr), m_sext (nullptr), m_dext (nullptr), m_n (0)
-  {
-    int l = ndv.ndims ();
-    assert (odv.ndims () == l);
-    octave_idx_type ld = 1;
-    int i = 0;
-    for (; i < l-1 && ndv(i) == odv(i); i++) ld *= ndv(i);
-    m_n = l - i;
-    m_cext = new octave_idx_type [3*m_n];
-    // Trick to avoid three allocations
-    m_sext = m_cext + m_n;
-    m_dext = m_sext + m_n;
-
-    octave_idx_type sld = ld;
-    octave_idx_type dld = ld;
-    for (int j = 0; j < m_n; j++)
-      {
-        m_cext[j] = std::min (ndv(i+j), odv(i+j));
-        m_sext[j] = sld *= odv(i+j);
-        m_dext[j] = dld *= ndv(i+j);
-      }
-    m_cext[0] *= ld;
-  }
-
-  // No copying!
-
-  rec_resize_helper (const rec_resize_helper&) = delete;
-
-  rec_resize_helper& operator = (const rec_resize_helper&) = delete;
-
-  ~rec_resize_helper (void) { delete [] m_cext; }
-
-  template <typename T>
-  void resize_fill (const T *src, T *dest, const T& rfv) const
-  { do_resize_fill (src, dest, rfv, m_n-1); }
-
-private:
-
-  // recursive resizing
-  template <typename T>
-  void do_resize_fill (const T *src, T *dest, const T& rfv, int lev) const
-  {
-    if (lev == 0)
-      {
-        std::copy_n (src, m_cext[0], dest);
-        std::fill_n (dest + m_cext[0], m_dext[0] - m_cext[0], rfv);
-      }
-    else
-      {
-        octave_idx_type sd, dd, k;
-        sd = m_sext[lev-1];
-        dd = m_dext[lev-1];
-        for (k = 0; k < m_cext[lev]; k++)
-          do_resize_fill (src + k * sd, dest + k * dd, rfv, lev - 1);
-
-        std::fill_n (dest + k * dd, m_dext[lev] - k * dd, rfv);
-      }
-  }
-
-  //--------
-
-  octave_idx_type *m_cext;
-  octave_idx_type *m_sext;
-  octave_idx_type *m_dext;
-  int m_n;
-};
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::index (const octave::idx_vector& i) const
-{
-  // Colon:
-  //
-  //   object   | index    | result orientation
-  //   ---------+----------+-------------------
-  //   anything | colon    | column vector
-  //
-  // Numeric array or logical mask:
-  //
-  //   Note that logical mask indices are always transformed to vectors
-  //   before we see them.
-  //
-  //   object   | index    | result orientation
-  //   ---------+----------+-------------------
-  //   vector   | vector   | indexed object
-  //            | other    | same size as index
-  //   ---------+----------+-------------------
-  //   array    | anything | same size as index
-
-  octave_idx_type n = numel ();
-  Array<T, Alloc> retval;
-
-  if (i.is_colon ())
-    {
-      // A(:) produces a shallow copy as a column vector.
-      retval = Array<T, Alloc> (*this, dim_vector (n, 1));
-    }
-  else
-    {
-      if (i.extent (n) != n)
-        octave::err_index_out_of_range (1, 1, i.extent (n), n, m_dimensions);
-
-      dim_vector result_dims = i.orig_dimensions ();
-      octave_idx_type idx_len = i.length ();
-
-      if (n != 1 && is_nd_vector () && idx_len != 1
-          && result_dims.is_nd_vector ())
-        {
-          // Indexed object and index are both vectors.  Set result size
-          // and orientation as above.
-
-          dim_vector dv = dims ();
-
-          result_dims = dv.make_nd_vector (idx_len);
-        }
-
-      octave_idx_type l, u;
-      if (idx_len != 0 && i.is_cont_range (n, l, u))
-        // If suitable, produce a shallow slice.
-        retval = Array<T, Alloc> (*this, result_dims, l, u);
-      else
-        {
-          // Don't use resize here to avoid useless initialization for POD
-          // types.
-          retval = Array<T, Alloc> (result_dims);
-
-          if (idx_len != 0)
-            i.index (data (), n, retval.fortran_vec ());
-        }
-    }
-
-  return retval;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::index (const octave::idx_vector& i, const octave::idx_vector& j) const
-{
-  // Get dimensions, allowing Fortran indexing in the 2nd dim.
-  dim_vector dv = m_dimensions.redim (2);
-  octave_idx_type r = dv(0);
-  octave_idx_type c = dv(1);
-  Array<T, Alloc> retval;
-
-  if (i.is_colon () && j.is_colon ())
-    {
-      // A(:,:) produces a shallow copy.
-      retval = Array<T, Alloc> (*this, dv);
-    }
-  else
-    {
-      if (i.extent (r) != r)
-        octave::err_index_out_of_range (2, 1, i.extent (r), r, m_dimensions); // throws
-      if (j.extent (c) != c)
-        octave::err_index_out_of_range (2, 2, j.extent (c), c, m_dimensions); // throws
-
-      octave_idx_type n = numel ();
-      octave_idx_type il = i.length (r);
-      octave_idx_type jl = j.length (c);
-
-      octave::idx_vector ii (i);
-
-      if (ii.maybe_reduce (r, j, c))
-        {
-          octave_idx_type l, u;
-          if (ii.length () > 0 && ii.is_cont_range (n, l, u))
-            // If suitable, produce a shallow slice.
-            retval = Array<T, Alloc> (*this, dim_vector (il, jl), l, u);
-          else
-            {
-              // Don't use resize to avoid useless initialization for POD types.
-              retval = Array<T, Alloc> (dim_vector (il, jl));
-
-              ii.index (data (), n, retval.fortran_vec ());
-            }
-        }
-      else
-        {
-          // Don't use resize to avoid useless initialization for POD types.
-          retval = Array<T, Alloc> (dim_vector (il, jl));
-
-          const T *src = data ();
-          T *dest = retval.fortran_vec ();
-
-          for (octave_idx_type k = 0; k < jl; k++)
-            dest += i.index (src + r * j.xelem (k), r, dest);
-        }
-    }
-
-  return retval;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::index (const Array<octave::idx_vector>& ia) const
-{
-  int ial = ia.numel ();
-  Array<T, Alloc> retval;
-
-  // FIXME: is this dispatching necessary?
-  if (ial == 1)
-    retval = index (ia(0));
-  else if (ial == 2)
-    retval = index (ia(0), ia(1));
-  else if (ial > 0)
-    {
-      // Get dimensions, allowing Fortran indexing in the last dim.
-      dim_vector dv = m_dimensions.redim (ial);
-
-      // Check for out of bounds conditions.
-      bool all_colons = true;
-      for (int i = 0; i < ial; i++)
-        {
-          if (ia(i).extent (dv(i)) != dv(i))
-            octave::err_index_out_of_range (ial, i+1, ia(i).extent (dv(i)), dv(i),
-                                            m_dimensions); // throws
-
-          all_colons = all_colons && ia(i).is_colon ();
-        }
-
-      if (all_colons)
-        {
-          // A(:,:,...,:) produces a shallow copy.
-          dv.chop_trailing_singletons ();
-          retval = Array<T, Alloc> (*this, dv);
-        }
-      else
-        {
-          // Form result dimensions.
-          dim_vector rdv = dim_vector::alloc (ial);
-          for (int i = 0; i < ial; i++) rdv(i) = ia(i).length (dv(i));
-          rdv.chop_trailing_singletons ();
-
-          // Prepare for recursive indexing
-          rec_index_helper rh (dv, ia);
-
-          octave_idx_type l, u;
-          if (rh.is_cont_range (l, u))
-            // If suitable, produce a shallow slice.
-            retval = Array<T, Alloc> (*this, rdv, l, u);
-          else
-            {
-              // Don't use resize to avoid useless initialization for POD types.
-              retval = Array<T, Alloc> (rdv);
-
-              // Do it.
-              rh.index (data (), retval.fortran_vec ());
-            }
-        }
-    }
-
-  return retval;
-}
-
-// The default fill value.  Override if you want a different one.
-
-template <typename T, typename Alloc>
-T
-Array<T, Alloc>::resize_fill_value (void) const
-{
-  static T zero = T ();
-  return zero;
-}
-
-// Yes, we could do resize using index & assign.  However, that would
-// possibly involve a lot more memory traffic than we actually need.
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::resize1 (octave_idx_type n, const T& rfv)
-{
-  if (n < 0 || ndims () != 2)
-    octave::err_invalid_resize ();
-
-  dim_vector dv;
-  // This is driven by Matlab's behavior of giving a *row* vector
-  // on some out-of-bounds assignments.  Specifically, Matlab
-  // allows a(i) with out-of-bouds i when a is either of 0x0, 1x0,
-  // 1x1, 0xN, and gives a row vector in all cases (yes, even the
-  // last one, search me why).  Giving a column vector would make
-  // much more sense (given the way trailing singleton dims are
-  // treated).
-  bool invalid = false;
-  if (rows () == 0 || rows () == 1)
-    dv = dim_vector (1, n);
-  else if (columns () == 1)
-    dv = dim_vector (n, 1);
-  else
-    invalid = true;
-
-  if (invalid)
-    octave::err_invalid_resize ();
-
-  octave_idx_type nx = numel ();
-  if (n == nx - 1 && n > 0)
-    {
-      // Stack "pop" operation.
-      if (m_rep->m_count == 1)
-        m_slice_data[m_slice_len-1] = T ();
-      m_slice_len--;
-      m_dimensions = dv;
-    }
-  else if (n == nx + 1 && nx > 0)
-    {
-      // Stack "push" operation.
-      if (m_rep->m_count == 1
-          && m_slice_data + m_slice_len < m_rep->m_data + m_rep->m_len)
-        {
-          m_slice_data[m_slice_len++] = rfv;
-          m_dimensions = dv;
-        }
-      else
-        {
-          static const octave_idx_type max_stack_chunk = 1024;
-          octave_idx_type nn = n + std::min (nx, max_stack_chunk);
-          Array<T, Alloc> tmp (Array<T, Alloc> (dim_vector (nn, 1)), dv, 0, n);
-          T *dest = tmp.fortran_vec ();
-
-          std::copy_n (data (), nx, dest);
-          dest[nx] = rfv;
-
-          *this = tmp;
-        }
-    }
-  else if (n != nx)
-    {
-      Array<T, Alloc> tmp = Array<T, Alloc> (dv);
-      T *dest = tmp.fortran_vec ();
-
-      octave_idx_type n0 = std::min (n, nx);
-      octave_idx_type n1 = n - n0;
-      std::copy_n (data (), n0, dest);
-      std::fill_n (dest + n0, n1, rfv);
-
-      *this = tmp;
-    }
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::resize2 (octave_idx_type r, octave_idx_type c, const T& rfv)
-{
-  if (r < 0 || c < 0 || ndims () != 2)
-    octave::err_invalid_resize ();
-
-  octave_idx_type rx = rows ();
-  octave_idx_type cx = columns ();
-  if (r != rx || c != cx)
-    {
-      Array<T, Alloc> tmp = Array<T, Alloc> (dim_vector (r, c));
-      T *dest = tmp.fortran_vec ();
-
-      octave_idx_type r0 = std::min (r, rx);
-      octave_idx_type r1 = r - r0;
-      octave_idx_type c0 = std::min (c, cx);
-      octave_idx_type c1 = c - c0;
-      const T *src = data ();
-      if (r == rx)
-        {
-          std::copy_n (src, r * c0, dest);
-          dest += r * c0;
-        }
-      else
-        {
-          for (octave_idx_type k = 0; k < c0; k++)
-            {
-              std::copy_n (src, r0, dest);
-              src += rx;
-              dest += r0;
-              std::fill_n (dest, r1, rfv);
-              dest += r1;
-            }
-        }
-
-      std::fill_n (dest, r * c1, rfv);
-
-      *this = tmp;
-    }
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::resize (const dim_vector& dv, const T& rfv)
-{
-  int dvl = dv.ndims ();
-  if (dvl == 2)
-    resize2 (dv(0), dv(1), rfv);
-  else if (m_dimensions != dv)
-    {
-      if (m_dimensions.ndims () > dvl || dv.any_neg ())
-        octave::err_invalid_resize ();
-
-      Array<T, Alloc> tmp (dv);
-      // Prepare for recursive resizing.
-      rec_resize_helper rh (dv, m_dimensions.redim (dvl));
-
-      // Do it.
-      rh.resize_fill (data (), tmp.fortran_vec (), rfv);
-      *this = tmp;
-    }
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::index (const octave::idx_vector& i, bool resize_ok, const T& rfv) const
-{
-  Array<T, Alloc> tmp = *this;
-  if (resize_ok)
-    {
-      octave_idx_type n = numel ();
-      octave_idx_type nx = i.extent (n);
-      if (n != nx)
-        {
-          if (i.is_scalar ())
-            return Array<T, Alloc> (dim_vector (1, 1), rfv);
-          else
-            tmp.resize1 (nx, rfv);
-        }
-
-      if (tmp.numel () != nx)
-        return Array<T, Alloc> ();
-    }
-
-  return tmp.index (i);
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::index (const octave::idx_vector& i, const octave::idx_vector& j,
-                 bool resize_ok, const T& rfv) const
-{
-  Array<T, Alloc> tmp = *this;
-  if (resize_ok)
-    {
-      dim_vector dv = m_dimensions.redim (2);
-      octave_idx_type r = dv(0);
-      octave_idx_type c = dv(1);
-      octave_idx_type rx = i.extent (r);
-      octave_idx_type cx = j.extent (c);
-      if (r != rx || c != cx)
-        {
-          if (i.is_scalar () && j.is_scalar ())
-            return Array<T, Alloc> (dim_vector (1, 1), rfv);
-          else
-            tmp.resize2 (rx, cx, rfv);
-        }
-
-      if (tmp.rows () != rx || tmp.columns () != cx)
-        return Array<T, Alloc> ();
-    }
-
-  return tmp.index (i, j);
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::index (const Array<octave::idx_vector>& ia,
-                 bool resize_ok, const T& rfv) const
-{
-  Array<T, Alloc> tmp = *this;
-  if (resize_ok)
-    {
-      int ial = ia.numel ();
-      dim_vector dv = m_dimensions.redim (ial);
-      dim_vector dvx = dim_vector::alloc (ial);
-      for (int i = 0; i < ial; i++)
-        dvx(i) = ia(i).extent (dv(i));
-      if (! (dvx == dv))
-        {
-          bool all_scalars = true;
-          for (int i = 0; i < ial; i++)
-            all_scalars = all_scalars && ia(i).is_scalar ();
-          if (all_scalars)
-            return Array<T, Alloc> (dim_vector (1, 1), rfv);
-          else
-            tmp.resize (dvx, rfv);
-
-          if (tmp.m_dimensions != dvx)
-            return Array<T, Alloc> ();
-        }
-    }
-
-  return tmp.index (ia);
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::assign (const octave::idx_vector& i, const Array<T, Alloc>& rhs, const T& rfv)
-{
-  octave_idx_type n = numel ();
-  octave_idx_type rhl = rhs.numel ();
-
-  if (rhl != 1 && i.length (n) != rhl)
-    octave::err_nonconformant ("=", dim_vector(i.length(n), 1), rhs.dims());
-
-  octave_idx_type nx = i.extent (n);
-  bool colon = i.is_colon_equiv (nx);
-  // Try to resize first if necessary.
-  if (nx != n)
-    {
-      // Optimize case A = []; A(1:n) = X with A empty.
-      if (m_dimensions.zero_by_zero () && colon)
-        {
-          if (rhl == 1)
-            *this = Array<T, Alloc> (dim_vector (1, nx), rhs(0));
-          else
-            *this = Array<T, Alloc> (rhs, dim_vector (1, nx));
-          return;
-        }
-
-      resize1 (nx, rfv);
-      n = numel ();
-    }
-
-  if (colon)
-    {
-      // A(:) = X makes a full fill or a shallow copy.
-      if (rhl == 1)
-        fill (rhs(0));
-      else
-        *this = rhs.reshape (m_dimensions);
-    }
-  else
-    {
-      if (rhl == 1)
-        i.fill (rhs(0), n, fortran_vec ());
-      else
-        i.assign (rhs.data (), n, fortran_vec ());
-    }
-}
-
-// Assignment to a 2-dimensional array
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::assign (const octave::idx_vector& i, const octave::idx_vector& j,
-                  const Array<T, Alloc>& rhs, const T& rfv)
-{
-  bool initial_dims_all_zero = m_dimensions.all_zero ();
-
-  // Get RHS extents, discarding singletons.
-  dim_vector rhdv = rhs.dims ();
-
-  // Get LHS extents, allowing Fortran indexing in the second dim.
-  dim_vector dv = m_dimensions.redim (2);
-
-  // Check for out-of-bounds and form resizing m_dimensions.
-  dim_vector rdv;
-
-  // In the special when all dimensions are zero, colons are allowed
-  // to inquire the shape of RHS.  The rules are more obscure, so we
-  // solve that elsewhere.
-  if (initial_dims_all_zero)
-    rdv = zero_dims_inquire (i, j, rhdv);
-  else
-    {
-      rdv(0) = i.extent (dv(0));
-      rdv(1) = j.extent (dv(1));
-    }
-
-  bool isfill = rhs.numel () == 1;
-  octave_idx_type il = i.length (rdv(0));
-  octave_idx_type jl = j.length (rdv(1));
-  rhdv.chop_all_singletons ();
-  bool match = (isfill
-                || (rhdv.ndims () == 2 && il == rhdv(0) && jl == rhdv(1)));
-  match = match || (il == 1 && jl == rhdv(0) && rhdv(1) == 1);
-
-  if (match)
-    {
-      bool all_colons = (i.is_colon_equiv (rdv(0))
-                         && j.is_colon_equiv (rdv(1)));
-      // Resize if requested.
-      if (rdv != dv)
-        {
-          // Optimize case A = []; A(1:m, 1:n) = X
-          if (dv.zero_by_zero () && all_colons)
-            {
-              if (isfill)
-                *this = Array<T, Alloc> (rdv, rhs(0));
-              else
-                *this = Array<T, Alloc> (rhs, rdv);
-              return;
-            }
-
-          resize (rdv, rfv);
-          dv = m_dimensions;
-        }
-
-      if (all_colons)
-        {
-          // A(:,:) = X makes a full fill or a shallow copy
-          if (isfill)
-            fill (rhs(0));
-          else
-            *this = rhs.reshape (m_dimensions);
-        }
-      else
-        {
-          // The actual work.
-          octave_idx_type n = numel ();
-          octave_idx_type r = dv(0);
-          octave_idx_type c = dv(1);
-          octave::idx_vector ii (i);
-
-          const T *src = rhs.data ();
-          T *dest = fortran_vec ();
-
-          // Try reduction first.
-          if (ii.maybe_reduce (r, j, c))
-            {
-              if (isfill)
-                ii.fill (*src, n, dest);
-              else
-                ii.assign (src, n, dest);
-            }
-          else
-            {
-              if (isfill)
-                {
-                  for (octave_idx_type k = 0; k < jl; k++)
-                    i.fill (*src, r, dest + r * j.xelem (k));
-                }
-              else
-                {
-                  for (octave_idx_type k = 0; k < jl; k++)
-                    src += i.assign (src, r, dest + r * j.xelem (k));
-                }
-            }
-        }
-    }
-  // any empty RHS can be assigned to an empty LHS
-  else if ((il != 0 && jl != 0) || (rhdv(0) != 0 && rhdv(1) != 0))
-    octave::err_nonconformant ("=", il, jl, rhs.dim1 (), rhs.dim2 ());
-}
-
-// Assignment to a multi-dimensional array
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::assign (const Array<octave::idx_vector>& ia,
-                  const Array<T, Alloc>& rhs, const T& rfv)
-{
-  int ial = ia.numel ();
-
-  // FIXME: is this dispatching necessary / desirable?
-  if (ial == 1)
-    assign (ia(0), rhs, rfv);
-  else if (ial == 2)
-    assign (ia(0), ia(1), rhs, rfv);
-  else if (ial > 0)
-    {
-      bool initial_dims_all_zero = m_dimensions.all_zero ();
-
-      // Get RHS extents, discarding singletons.
-      dim_vector rhdv = rhs.dims ();
-
-      // Get LHS extents, allowing Fortran indexing in the second dim.
-      dim_vector dv = m_dimensions.redim (ial);
-
-      // Get the extents forced by indexing.
-      dim_vector rdv;
-
-      // In the special when all dimensions are zero, colons are
-      // allowed to inquire the shape of RHS.  The rules are more
-      // obscure, so we solve that elsewhere.
-      if (initial_dims_all_zero)
-        rdv = zero_dims_inquire (ia, rhdv);
-      else
-        {
-          rdv = dim_vector::alloc (ial);
-          for (int i = 0; i < ial; i++)
-            rdv(i) = ia(i).extent (dv(i));
-        }
-
-      // Check whether LHS and RHS match, up to singleton dims.
-      bool match = true;
-      bool all_colons = true;
-      bool isfill = rhs.numel () == 1;
-
-      rhdv.chop_all_singletons ();
-      int j = 0;
-      int rhdvl = rhdv.ndims ();
-      for (int i = 0; i < ial; i++)
-        {
-          all_colons = all_colons && ia(i).is_colon_equiv (rdv(i));
-          octave_idx_type l = ia(i).length (rdv(i));
-          if (l == 1) continue;
-          match = match && j < rhdvl && l == rhdv(j++);
-        }
-
-      match = match && (j == rhdvl || rhdv(j) == 1);
-      match = match || isfill;
-
-      if (match)
-        {
-          // Resize first if necessary.
-          if (rdv != dv)
-            {
-              // Optimize case A = []; A(1:m, 1:n) = X
-              if (dv.zero_by_zero () && all_colons)
-                {
-                  rdv.chop_trailing_singletons ();
-                  if (isfill)
-                    *this = Array<T, Alloc> (rdv, rhs(0));
-                  else
-                    *this = Array<T, Alloc> (rhs, rdv);
-                  return;
-                }
-
-              resize (rdv, rfv);
-              dv = rdv;
-            }
-
-          if (all_colons)
-            {
-              // A(:,:,...,:) = X makes a full fill or a shallow copy.
-              if (isfill)
-                fill (rhs(0));
-              else
-                *this = rhs.reshape (m_dimensions);
-            }
-          else
-            {
-              // Do the actual work.
-
-              // Prepare for recursive indexing
-              rec_index_helper rh (dv, ia);
-
-              // Do it.
-              if (isfill)
-                rh.fill (rhs(0), fortran_vec ());
-              else
-                rh.assign (rhs.data (), fortran_vec ());
-            }
-        }
-      else
-        {
-          // dimension mismatch, unless LHS and RHS both empty
-          bool lhsempty, rhsempty;
-          lhsempty = rhsempty = false;
-          dim_vector lhs_dv = dim_vector::alloc (ial);
-          for (int i = 0; i < ial; i++)
-            {
-              octave_idx_type l = ia(i).length (rdv(i));
-              lhs_dv(i) = l;
-              lhsempty = lhsempty || (l == 0);
-              rhsempty = rhsempty || (rhdv(j++) == 0);
-            }
-          if (! lhsempty || ! rhsempty)
-            {
-              lhs_dv.chop_trailing_singletons ();
-              octave::err_nonconformant ("=", lhs_dv, rhdv);
-            }
-        }
-    }
-}
-
-/*
-%!shared a
-%! a = [1 2; 3 4];
-%!error <op1 is 1x2, op2 is 1x3> a(1,:) = [1 2 3]
-%!error <op1 is 2x1, op2 is 1x3> a(:,1) = [1 2 3]
-%!error <op1 is 2x2, op2 is 2x1> a(1:2,2:3) = [1;2]
-*/
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::delete_elements (const octave::idx_vector& i)
-{
-  octave_idx_type n = numel ();
-  if (i.is_colon ())
-    {
-      *this = Array<T, Alloc> ();
-    }
-  else if (i.length (n) != 0)
-    {
-      if (i.extent (n) != n)
-        octave::err_del_index_out_of_range (true, i.extent (n), n);
-
-      octave_idx_type l, u;
-      bool col_vec = ndims () == 2 && columns () == 1 && rows () != 1;
-      if (i.is_scalar () && i(0) == n-1 && m_dimensions.isvector ())
-        {
-          // Stack "pop" operation.
-          resize1 (n-1);
-        }
-      else if (i.is_cont_range (n, l, u))
-        {
-          // Special case deleting a contiguous range.
-          octave_idx_type m = n + l - u;
-          Array<T, Alloc> tmp (dim_vector (col_vec ? m : 1, ! col_vec ? m : 1));
-          const T *src = data ();
-          T *dest = tmp.fortran_vec ();
-          std::copy_n (src, l, dest);
-          std::copy (src + u, src + n, dest + l);
-          *this = tmp;
-        }
-      else
-        {
-          // Use index.
-          *this = index (i.complement (n));
-        }
-    }
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::delete_elements (int dim, const octave::idx_vector& i)
-{
-  if (dim < 0 || dim >= ndims ())
-    (*current_liboctave_error_handler) ("invalid dimension in delete_elements");
-
-  octave_idx_type n = m_dimensions(dim);
-  if (i.is_colon ())
-    {
-      *this = Array<T, Alloc> ();
-    }
-  else if (i.length (n) != 0)
-    {
-      if (i.extent (n) != n)
-        octave::err_del_index_out_of_range (false, i.extent (n), n);
-
-      octave_idx_type l, u;
-
-      if (i.is_cont_range (n, l, u))
-        {
-          // Special case deleting a contiguous range.
-          octave_idx_type nd = n + l - u;
-          octave_idx_type dl = 1;
-          octave_idx_type du = 1;
-          dim_vector rdv = m_dimensions;
-          rdv(dim) = nd;
-          for (int k = 0; k < dim; k++) dl *= m_dimensions(k);
-          for (int k = dim + 1; k < ndims (); k++) du *= m_dimensions(k);
-
-          // Special case deleting a contiguous range.
-          Array<T, Alloc> tmp = Array<T, Alloc> (rdv);
-          const T *src = data ();
-          T *dest = tmp.fortran_vec ();
-          l *= dl; u *= dl; n *= dl;
-          for (octave_idx_type k = 0; k < du; k++)
-            {
-              std::copy_n (src, l, dest);
-              dest += l;
-              std::copy (src + u, src + n, dest);
-              dest += n - u;
-              src += n;
-            }
-
-          *this = tmp;
-        }
-      else
-        {
-          // Use index.
-          Array<octave::idx_vector> ia (dim_vector (ndims (), 1), octave::idx_vector::colon);
-          ia (dim) = i.complement (n);
-          *this = index (ia);
-        }
-    }
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::delete_elements (const Array<octave::idx_vector>& ia)
-{
-  int ial = ia.numel ();
-
-  if (ial == 1)
-    delete_elements (ia(0));
-  else
-    {
-      int k, dim = -1;
-      for (k = 0; k < ial; k++)
-        {
-          if (! ia(k).is_colon ())
-            {
-              if (dim < 0)
-                dim = k;
-              else
-                break;
-            }
-        }
-      if (dim < 0)
-        {
-          dim_vector dv = m_dimensions;
-          dv(0) = 0;
-          *this = Array<T, Alloc> (dv);
-        }
-      else if (k == ial)
-        {
-          delete_elements (dim, ia(dim));
-        }
-      else
-        {
-          // Allow the null assignment to succeed if it won't change
-          // anything because the indices reference an empty slice,
-          // provided that there is at most one non-colon (or
-          // equivalent) index.  So, we still have the requirement of
-          // deleting a slice, but it is OK if the slice is empty.
-
-          // For compatibility with Matlab, stop checking once we see
-          // more than one non-colon index or an empty index.  Matlab
-          // considers "[]" to be an empty index but not "false".  We
-          // accept both.
-
-          bool empty_assignment = false;
-
-          int num_non_colon_indices = 0;
-
-          int nd = ndims ();
-
-          for (int i = 0; i < ial; i++)
-            {
-              octave_idx_type dim_len = (i >= nd ? 1 : m_dimensions(i));
-
-              if (ia(i).length (dim_len) == 0)
-                {
-                  empty_assignment = true;
-                  break;
-                }
-
-              if (! ia(i).is_colon_equiv (dim_len))
-                {
-                  num_non_colon_indices++;
-
-                  if (num_non_colon_indices == 2)
-                    break;
-                }
-            }
-
-          if (! empty_assignment)
-            (*current_liboctave_error_handler)
-              ("a null assignment can only have one non-colon index");
-        }
-    }
-
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>&
-Array<T, Alloc>::insert (const Array<T, Alloc>& a, octave_idx_type r, octave_idx_type c)
-{
-  octave::idx_vector i (r, r + a.rows ());
-  octave::idx_vector j (c, c + a.columns ());
-  if (ndims () == 2 && a.ndims () == 2)
-    assign (i, j, a);
-  else
-    {
-      Array<octave::idx_vector> idx (dim_vector (a.ndims (), 1));
-      idx(0) = i;
-      idx(1) = j;
-      for (int k = 2; k < a.ndims (); k++)
-        idx(k) = octave::idx_vector (0, a.m_dimensions(k));
-      assign (idx, a);
-    }
-
-  return *this;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>&
-Array<T, Alloc>::insert (const Array<T, Alloc>& a, const Array<octave_idx_type>& ra_idx)
-{
-  octave_idx_type n = ra_idx.numel ();
-  Array<octave::idx_vector> idx (dim_vector (n, 1));
-  const dim_vector dva = a.dims ().redim (n);
-  for (octave_idx_type k = 0; k < n; k++)
-    idx(k) = octave::idx_vector (ra_idx(k), ra_idx(k) + dva(k));
-
-  assign (idx, a);
-
-  return *this;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::transpose (void) const
-{
-  assert (ndims () == 2);
-
-  octave_idx_type nr = dim1 ();
-  octave_idx_type nc = dim2 ();
-
-  if (nr >= 8 && nc >= 8)
-    {
-      Array<T, Alloc> result (dim_vector (nc, nr));
-
-      // Reuse the implementation used for permuting.
-
-      rec_permute_helper::blk_trans (data (), result.fortran_vec (), nr, nc);
-
-      return result;
-    }
-  else if (nr > 1 && nc > 1)
-    {
-      Array<T, Alloc> result (dim_vector (nc, nr));
-
-      for (octave_idx_type j = 0; j < nc; j++)
-        for (octave_idx_type i = 0; i < nr; i++)
-          result.xelem (j, i) = xelem (i, j);
-
-      return result;
-    }
-  else
-    {
-      // Fast transpose for vectors and empty matrices.
-      return Array<T, Alloc> (*this, dim_vector (nc, nr));
-    }
-}
-
-template <typename T>
-static T
-no_op_fcn (const T& x)
-{
-  return x;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::hermitian (T (*fcn) (const T&)) const
-{
-  assert (ndims () == 2);
-
-  if (! fcn)
-    fcn = no_op_fcn<T>;
-
-  octave_idx_type nr = dim1 ();
-  octave_idx_type nc = dim2 ();
-
-  if (nr >= 8 && nc >= 8)
-    {
-      Array<T, Alloc> result (dim_vector (nc, nr));
-
-      // Blocked transpose to attempt to avoid cache misses.
-
-      T buf[64];
-
-      octave_idx_type jj;
-      for (jj = 0; jj < (nc - 8 + 1); jj += 8)
-        {
-          octave_idx_type ii;
-          for (ii = 0; ii < (nr - 8 + 1); ii += 8)
-            {
-              // Copy to buffer
-              for (octave_idx_type j = jj, k = 0, idxj = jj * nr;
-                   j < jj + 8; j++, idxj += nr)
-                for (octave_idx_type i = ii; i < ii + 8; i++)
-                  buf[k++] = xelem (i + idxj);
-
-              // Copy from buffer
-              for (octave_idx_type i = ii, idxi = ii * nc; i < ii + 8;
-                   i++, idxi += nc)
-                for (octave_idx_type j = jj, k = i - ii; j < jj + 8;
-                     j++, k+=8)
-                  result.xelem (j + idxi) = fcn (buf[k]);
-            }
-
-          if (ii < nr)
-            for (octave_idx_type j = jj; j < jj + 8; j++)
-              for (octave_idx_type i = ii; i < nr; i++)
-                result.xelem (j, i) = fcn (xelem (i, j));
-        }
-
-      for (octave_idx_type j = jj; j < nc; j++)
-        for (octave_idx_type i = 0; i < nr; i++)
-          result.xelem (j, i) = fcn (xelem (i, j));
-
-      return result;
-    }
-  else
-    {
-      Array<T, Alloc> result (dim_vector (nc, nr));
-
-      for (octave_idx_type j = 0; j < nc; j++)
-        for (octave_idx_type i = 0; i < nr; i++)
-          result.xelem (j, i) = fcn (xelem (i, j));
-
-      return result;
-    }
-}
-
-/*
-
-## Transpose tests for matrices of the tile size and plus or minus a row
-## and with four tiles.
-
-%!shared m7, mt7, m8, mt8, m9, mt9
-%! m7 = reshape (1 : 7*8, 8, 7);
-%! mt7 = [1:8; 9:16; 17:24; 25:32; 33:40; 41:48; 49:56];
-%! m8 = reshape (1 : 8*8, 8, 8);
-%! mt8 = mt8 = [mt7; 57:64];
-%! m9 = reshape (1 : 9*8, 8, 9);
-%! mt9 = [mt8; 65:72];
-
-%!assert (m7', mt7)
-%!assert ((1i*m7).', 1i * mt7)
-%!assert ((1i*m7)', conj (1i * mt7))
-%!assert (m8', mt8)
-%!assert ((1i*m8).', 1i * mt8)
-%!assert ((1i*m8)', conj (1i * mt8))
-%!assert (m9', mt9)
-%!assert ((1i*m9).', 1i * mt9)
-%!assert ((1i*m9)', conj (1i * mt9))
-%!assert ([m7, m8; m7, m8]', [mt7, mt7; mt8, mt8])
-%!assert ((1i*[m7, m8; m7, m8]).', 1i * [mt7, mt7; mt8, mt8])
-%!assert ((1i*[m7, m8; m7, m8])', conj (1i * [mt7, mt7; mt8, mt8]))
-%!assert ([m8, m8; m8, m8]', [mt8, mt8; mt8, mt8])
-%!assert ((1i*[m8, m8; m8, m8]).', 1i * [mt8, mt8; mt8, mt8])
-%!assert ((1i*[m8, m8; m8, m8])', conj (1i * [mt8, mt8; mt8, mt8]))
-%!assert ([m9, m8; m9, m8]', [mt9, mt9; mt8, mt8])
-%!assert ((1i*[m9, m8; m9, m8]).', 1i * [mt9, mt9; mt8, mt8])
-%!assert ((1i*[m9, m8; m9, m8])', conj (1i * [mt9, mt9; mt8, mt8]))
-
-*/
-
-template <typename T, typename Alloc>
-T *
-Array<T, Alloc>::fortran_vec (void)
-{
-  make_unique ();
-
-  return m_slice_data;
-}
-
-// Non-real types don't have NaNs.
-template <typename T>
-inline bool
-sort_isnan (typename ref_param<T>::type)
-{
-  return false;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::sort (int dim, sortmode mode) const
-{
-  if (dim < 0)
-    (*current_liboctave_error_handler) ("sort: invalid dimension");
-
-  Array<T, Alloc> m (dims ());
-
-  dim_vector dv = m.dims ();
-
-  if (m.numel () < 1)
-    return m;
-
-  if (dim >= dv.ndims ())
-    dv.resize (dim+1, 1);
-
-  octave_idx_type ns = dv(dim);
-  octave_idx_type iter = dv.numel () / ns;
-  octave_idx_type stride = 1;
-
-  for (int i = 0; i < dim; i++)
-    stride *= dv(i);
-
-  T *v = m.fortran_vec ();
-  const T *ov = data ();
-
-  octave_sort<T> lsort;
-
-  if (mode != UNSORTED)
-    lsort.set_compare (mode);
-  else
-    return m;
-
-  if (stride == 1)
-    {
-      // Special case along first dimension avoids gather/scatter AND directly
-      // sorts into destination buffer for an 11% performance boost.
-      for (octave_idx_type j = 0; j < iter; j++)
-        {
-          // Copy and partition out NaNs.
-          // No need to special case integer types <T> from floating point
-          // types <T> to avoid sort_isnan() test as it makes no discernible
-          // performance impact.
-          octave_idx_type kl = 0;
-          octave_idx_type ku = ns;
-          for (octave_idx_type i = 0; i < ns; i++)
-            {
-              T tmp = ov[i];
-              if (sort_isnan<T> (tmp))
-                v[--ku] = tmp;
-              else
-                v[kl++] = tmp;
-            }
-
-          // sort.
-          lsort.sort (v, kl);
-
-          if (ku < ns)
-            {
-              // NaNs are in reverse order
-              std::reverse (v + ku, v + ns);
-              if (mode == DESCENDING)
-                std::rotate (v, v + ku, v + ns);
-            }
-
-          v += ns;
-          ov += ns;
-        }
-    }
-  else
-    {
-      OCTAVE_LOCAL_BUFFER (T, buf, ns);
-
-      for (octave_idx_type j = 0; j < iter; j++)
-        {
-          octave_idx_type offset = j;
-          octave_idx_type n_strides = j / stride;
-          offset += n_strides * stride * (ns - 1);
-
-          // gather and partition out NaNs.
-          octave_idx_type kl = 0;
-          octave_idx_type ku = ns;
-          for (octave_idx_type i = 0; i < ns; i++)
-            {
-              T tmp = ov[i*stride + offset];
-              if (sort_isnan<T> (tmp))
-                buf[--ku] = tmp;
-              else
-                buf[kl++] = tmp;
-            }
-
-          // sort.
-          lsort.sort (buf, kl);
-
-          if (ku < ns)
-            {
-              // NaNs are in reverse order
-              std::reverse (buf + ku, buf + ns);
-              if (mode == DESCENDING)
-                std::rotate (buf, buf + ku, buf + ns);
-            }
-
-          // scatter.
-          for (octave_idx_type i = 0; i < ns; i++)
-            v[i*stride + offset] = buf[i];
-        }
-    }
-
-  return m;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::sort (Array<octave_idx_type>& sidx, int dim,
-                       sortmode mode) const
-{
-  if (dim < 0 || dim >= ndims ())
-    (*current_liboctave_error_handler) ("sort: invalid dimension");
-
-  Array<T, Alloc> m (dims ());
-
-  dim_vector dv = m.dims ();
-
-  if (m.numel () < 1)
-    {
-      sidx = Array<octave_idx_type> (dv);
-      return m;
-    }
-
-  octave_idx_type ns = dv(dim);
-  octave_idx_type iter = dv.numel () / ns;
-  octave_idx_type stride = 1;
-
-  for (int i = 0; i < dim; i++)
-    stride *= dv(i);
-
-  T *v = m.fortran_vec ();
-  const T *ov = data ();
-
-  octave_sort<T> lsort;
-
-  sidx = Array<octave_idx_type> (dv);
-  octave_idx_type *vi = sidx.fortran_vec ();
-
-  if (mode != UNSORTED)
-    lsort.set_compare (mode);
-  else
-    return m;
-
-  if (stride == 1)
-    {
-      // Special case for dim 1 avoids gather/scatter for performance boost.
-      // See comments in Array::sort (dim, mode).
-      for (octave_idx_type j = 0; j < iter; j++)
-        {
-          // copy and partition out NaNs.
-          octave_idx_type kl = 0;
-          octave_idx_type ku = ns;
-          for (octave_idx_type i = 0; i < ns; i++)
-            {
-              T tmp = ov[i];
-              if (sort_isnan<T> (tmp))
-                {
-                  --ku;
-                  v[ku] = tmp;
-                  vi[ku] = i;
-                }
-              else
-                {
-                  v[kl] = tmp;
-                  vi[kl] = i;
-                  kl++;
-                }
-            }
-
-          // sort.
-          lsort.sort (v, vi, kl);
-
-          if (ku < ns)
-            {
-              // NaNs are in reverse order
-              std::reverse (v + ku, v + ns);
-              std::reverse (vi + ku, vi + ns);
-              if (mode == DESCENDING)
-                {
-                  std::rotate (v, v + ku, v + ns);
-                  std::rotate (vi, vi + ku, vi + ns);
-                }
-            }
-
-          v += ns;
-          vi += ns;
-          ov += ns;
-        }
-    }
-  else
-    {
-      OCTAVE_LOCAL_BUFFER (T, buf, ns);
-      OCTAVE_LOCAL_BUFFER (octave_idx_type, bufi, ns);
-
-      for (octave_idx_type j = 0; j < iter; j++)
-        {
-          octave_idx_type offset = j;
-          octave_idx_type n_strides = j / stride;
-          offset += n_strides * stride * (ns - 1);
-
-          // gather and partition out NaNs.
-          octave_idx_type kl = 0;
-          octave_idx_type ku = ns;
-          for (octave_idx_type i = 0; i < ns; i++)
-            {
-              T tmp = ov[i*stride + offset];
-              if (sort_isnan<T> (tmp))
-                {
-                  --ku;
-                  buf[ku] = tmp;
-                  bufi[ku] = i;
-                }
-              else
-                {
-                  buf[kl] = tmp;
-                  bufi[kl] = i;
-                  kl++;
-                }
-            }
-
-          // sort.
-          lsort.sort (buf, bufi, kl);
-
-          if (ku < ns)
-            {
-              // NaNs are in reverse order
-              std::reverse (buf + ku, buf + ns);
-              std::reverse (bufi + ku, bufi + ns);
-              if (mode == DESCENDING)
-                {
-                  std::rotate (buf, buf + ku, buf + ns);
-                  std::rotate (bufi, bufi + ku, bufi + ns);
-                }
-            }
-
-          // scatter.
-          for (octave_idx_type i = 0; i < ns; i++)
-            v[i*stride + offset] = buf[i];
-          for (octave_idx_type i = 0; i < ns; i++)
-            vi[i*stride + offset] = bufi[i];
-        }
-    }
-
-  return m;
-}
-
-template <typename T, typename Alloc>
-typename Array<T, Alloc>::compare_fcn_type
-safe_comparator (sortmode mode, const Array<T, Alloc>& /* a */,
-                 bool /* allow_chk */)
-{
-  if (mode == ASCENDING)
-    return octave_sort<T>::ascending_compare;
-  else if (mode == DESCENDING)
-    return octave_sort<T>::descending_compare;
-  else
-    return nullptr;
-}
-
-template <typename T, typename Alloc>
-sortmode
-Array<T, Alloc>::issorted (sortmode mode) const
-{
-  octave_sort<T> lsort;
-
-  octave_idx_type n = numel ();
-
-  if (n <= 1)
-    return (mode == UNSORTED) ? ASCENDING : mode;
-
-  if (mode == UNSORTED)
-    {
-      // Auto-detect mode.
-      compare_fcn_type compare
-        = safe_comparator (ASCENDING, *this, false);
-
-      if (compare (elem (n-1), elem (0)))
-        mode = DESCENDING;
-      else
-        mode = ASCENDING;
-    }
-
-  lsort.set_compare (safe_comparator (mode, *this, false));
-
-  if (! lsort.issorted (data (), n))
-    mode = UNSORTED;
-
-  return mode;
-
-}
-
-template <typename T, typename Alloc>
-Array<octave_idx_type>
-Array<T, Alloc>::sort_rows_idx (sortmode mode) const
-{
-  Array<octave_idx_type> idx;
-
-  octave_sort<T> lsort (safe_comparator (mode, *this, true));
-
-  octave_idx_type r = rows ();
-  octave_idx_type c = cols ();
-
-  idx = Array<octave_idx_type> (dim_vector (r, 1));
-
-  lsort.sort_rows (data (), idx.fortran_vec (), r, c);
-
-  return idx;
-}
-
-template <typename T, typename Alloc>
-sortmode
-Array<T, Alloc>::is_sorted_rows (sortmode mode) const
-{
-  octave_sort<T> lsort;
-
-  octave_idx_type r = rows ();
-  octave_idx_type c = cols ();
-
-  if (r <= 1 || c == 0)
-    return (mode == UNSORTED) ? ASCENDING : mode;
-
-  if (mode == UNSORTED)
-    {
-      // Auto-detect mode.
-      compare_fcn_type compare
-        = safe_comparator (ASCENDING, *this, false);
-
-      octave_idx_type i;
-      for (i = 0; i < cols (); i++)
-        {
-          T l = elem (0, i);
-          T u = elem (rows () - 1, i);
-          if (compare (l, u))
-            {
-              if (mode == DESCENDING)
-                {
-                  mode = UNSORTED;
-                  break;
-                }
-              else
-                mode = ASCENDING;
-            }
-          else if (compare (u, l))
-            {
-              if (mode == ASCENDING)
-                {
-                  mode = UNSORTED;
-                  break;
-                }
-              else
-                mode = DESCENDING;
-            }
-        }
-      if (mode == UNSORTED && i == cols ())
-        mode = ASCENDING;
-    }
-
-  if (mode != UNSORTED)
-    {
-      lsort.set_compare (safe_comparator (mode, *this, false));
-
-      if (! lsort.is_sorted_rows (data (), r, c))
-        mode = UNSORTED;
-    }
-
-  return mode;
-
-}
-
-// Do a binary lookup in a sorted array.
-template <typename T, typename Alloc>
-octave_idx_type
-Array<T, Alloc>::lookup (const T& value, sortmode mode) const
-{
-  octave_idx_type n = numel ();
-  octave_sort<T> lsort;
-
-  if (mode == UNSORTED)
-    {
-      // auto-detect mode
-      if (n > 1 && lsort.descending_compare (elem (0), elem (n-1)))
-        mode = DESCENDING;
-      else
-        mode = ASCENDING;
-    }
-
-  lsort.set_compare (mode);
-
-  return lsort.lookup (data (), n, value);
-}
-
-template <typename T, typename Alloc>
-Array<octave_idx_type>
-Array<T, Alloc>::lookup (const Array<T, Alloc>& values, sortmode mode) const
-{
-  octave_idx_type n = numel ();
-  octave_idx_type nval = values.numel ();
-  octave_sort<T> lsort;
-  Array<octave_idx_type> idx (values.dims ());
-
-  if (mode == UNSORTED)
-    {
-      // auto-detect mode
-      if (n > 1 && lsort.descending_compare (elem (0), elem (n-1)))
-        mode = DESCENDING;
-      else
-        mode = ASCENDING;
-    }
-
-  lsort.set_compare (mode);
-
-  // This determines the split ratio between the O(M*log2(N)) and O(M+N)
-  // algorithms.
-  static const double ratio = 1.0;
-  sortmode vmode = UNSORTED;
-
-  // Attempt the O(M+N) algorithm if M is large enough.
-  if (nval > ratio * n / octave::math::log2 (n + 1.0))
-    {
-      vmode = values.issorted ();
-      // The table must not contain a NaN.
-      if ((vmode == ASCENDING && sort_isnan<T> (values(nval-1)))
-          || (vmode == DESCENDING && sort_isnan<T> (values(0))))
-        vmode = UNSORTED;
-    }
-
-  if (vmode != UNSORTED)
-    lsort.lookup_sorted (data (), n, values.data (), nval,
-                         idx.fortran_vec (), vmode != mode);
-  else
-    lsort.lookup (data (), n, values.data (), nval, idx.fortran_vec ());
-
-  return idx;
-}
-
-template <typename T, typename Alloc>
-octave_idx_type
-Array<T, Alloc>::nnz (void) const
-{
-  const T *src = data ();
-  octave_idx_type nel = numel ();
-  octave_idx_type retval = 0;
-  const T zero = T ();
-  for (octave_idx_type i = 0; i < nel; i++)
-    if (src[i] != zero)
-      retval++;
-
-  return retval;
-}
-
-template <typename T, typename Alloc>
-Array<octave_idx_type>
-Array<T, Alloc>::find (octave_idx_type n, bool backward) const
-{
-  Array<octave_idx_type> retval;
-  const T *src = data ();
-  octave_idx_type nel = numel ();
-  const T zero = T ();
-  if (n < 0 || n >= nel)
-    {
-      // We want all elements, which means we'll almost surely need
-      // to resize.  So count first, then allocate array of exact size.
-      octave_idx_type cnt = 0;
-      for (octave_idx_type i = 0; i < nel; i++)
-        cnt += src[i] != zero;
-
-      retval.clear (cnt, 1);
-      octave_idx_type *dest = retval.fortran_vec ();
-      for (octave_idx_type i = 0; i < nel; i++)
-        if (src[i] != zero) *dest++ = i;
-    }
-  else
-    {
-      // We want a fixed max number of elements, usually small.  So be
-      // optimistic, alloc the array in advance, and then resize if
-      // needed.
-      retval.clear (n, 1);
-      if (backward)
-        {
-          // Do the search as a series of successive single-element searches.
-          octave_idx_type k = 0;
-          octave_idx_type l = nel - 1;
-          for (; k < n; k++)
-            {
-              for (; l >= 0 && src[l] == zero; l--) ;
-              if (l >= 0)
-                retval(k) = l--;
-              else
-                break;
-            }
-          if (k < n)
-            retval.resize2 (k, 1);
-          octave_idx_type *rdata = retval.fortran_vec ();
-          std::reverse (rdata, rdata + k);
-        }
-      else
-        {
-          // Do the search as a series of successive single-element searches.
-          octave_idx_type k = 0;
-          octave_idx_type l = 0;
-          for (; k < n; k++)
-            {
-              for (; l != nel && src[l] == zero; l++) ;
-              if (l != nel)
-                retval(k) = l++;
-              else
-                break;
-            }
-          if (k < n)
-            retval.resize2 (k, 1);
-        }
-    }
-
-  // Fixup return dimensions, for Matlab compatibility.
-  // find (zeros (0,0)) -> zeros (0,0)
-  // find (zeros (1,0)) -> zeros (1,0)
-  // find (zeros (0,1)) -> zeros (0,1)
-  // find (zeros (0,X)) -> zeros (0,1)
-  // find (zeros (1,1)) -> zeros (0,0) !!!! WHY?
-  // find (zeros (0,1,0)) -> zeros (0,0)
-  // find (zeros (0,1,0,1)) -> zeros (0,0) etc
-
-  if ((numel () == 1 && retval.isempty ())
-      || (rows () == 0 && dims ().numel (1) == 0))
-    retval.m_dimensions = dim_vector ();
-  else if (rows () == 1 && ndims () == 2)
-    retval.m_dimensions = dim_vector (1, retval.numel ());
-
-  return retval;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::nth_element (const octave::idx_vector& n, int dim) const
-{
-  if (dim < 0)
-    (*current_liboctave_error_handler) ("nth_element: invalid dimension");
-
-  dim_vector dv = dims ();
-  if (dim >= dv.ndims ())
-    dv.resize (dim+1, 1);
-
-  octave_idx_type ns = dv(dim);
-
-  octave_idx_type nn = n.length (ns);
-
-  dv(dim) = std::min (nn, ns);
-  dv.chop_trailing_singletons ();
-  dim = std::min (dv.ndims (), static_cast<octave_idx_type> (dim));
-
-  Array<T, Alloc> m (dv);
-
-  if (m.isempty ())
-    return m;
-
-  sortmode mode = UNSORTED;
-  octave_idx_type lo = 0;
-
-  switch (n.idx_class ())
-    {
-    case octave::idx_vector::class_scalar:
-      mode = ASCENDING;
-      lo = n(0);
-      break;
-    case octave::idx_vector::class_range:
-      {
-        octave_idx_type inc = n.increment ();
-        if (inc == 1)
-          {
-            mode = ASCENDING;
-            lo = n(0);
-          }
-        else if (inc == -1)
-          {
-            mode = DESCENDING;
-            lo = ns - 1 - n(0);
-          }
-      }
-      break;
-    case octave::idx_vector::class_vector:
-      // This case resolves bug #51329, a fallback to allow the given index
-      // to be a sequential vector instead of the typical scalar or range
-      if (n(1) - n(0) == 1)
-        {
-          mode = ASCENDING;
-          lo = n(0);
-        }
-      else if (n(1) - n(0) == -1)
-        {
-          mode = DESCENDING;
-          lo = ns - 1 - n(0);
-        }
-      // Ensure that the vector is actually an arithmetic contiguous sequence
-      for (octave_idx_type i = 2; i < n.length () && mode != UNSORTED; i++)
-        if ((mode == ASCENDING && n(i) - n(i-1) != 1)
-            || (mode == DESCENDING && n(i) - n(i-1) != -1))
-          mode = UNSORTED;
-      break;
-    default:
-      break;
-    }
-
-  if (mode == UNSORTED)
-    (*current_liboctave_error_handler)
-      ("nth_element: n must be a scalar or a contiguous range");
-
-  octave_idx_type up = lo + nn;
-
-  if (lo < 0 || up > ns)
-    (*current_liboctave_error_handler) ("nth_element: invalid element index");
-
-  octave_idx_type iter = numel () / ns;
-  octave_idx_type stride = 1;
-
-  for (int i = 0; i < dim; i++)
-    stride *= dv(i);
-
-  T *v = m.fortran_vec ();
-  const T *ov = data ();
-
-  OCTAVE_LOCAL_BUFFER (T, buf, ns);
-
-  octave_sort<T> lsort;
-  lsort.set_compare (mode);
-
-  for (octave_idx_type j = 0; j < iter; j++)
-    {
-      octave_idx_type kl = 0;
-      octave_idx_type ku = ns;
-
-      if (stride == 1)
-        {
-          // copy without NaNs.
-          for (octave_idx_type i = 0; i < ns; i++)
-            {
-              T tmp = ov[i];
-              if (sort_isnan<T> (tmp))
-                buf[--ku] = tmp;
-              else
-                buf[kl++] = tmp;
-            }
-
-          ov += ns;
-        }
-      else
-        {
-          octave_idx_type offset = j % stride;
-          // copy without NaNs.
-          for (octave_idx_type i = 0; i < ns; i++)
-            {
-              T tmp = ov[offset + i*stride];
-              if (sort_isnan<T> (tmp))
-                buf[--ku] = tmp;
-              else
-                buf[kl++] = tmp;
-            }
-
-          if (offset == stride-1)
-            ov += ns*stride;
-        }
-
-      if (ku == ns)
-        lsort.nth_element (buf, ns, lo, up);
-      else if (mode == ASCENDING)
-        lsort.nth_element (buf, ku, lo, std::min (ku, up));
-      else
-        {
-          octave_idx_type nnan = ns - ku;
-          octave_idx_type zero = 0;
-          lsort.nth_element (buf, ku, std::max (lo - nnan, zero),
-                             std::max (up - nnan, zero));
-          std::rotate (buf, buf + ku, buf + ns);
-        }
-
-      if (stride == 1)
-        {
-          for (octave_idx_type i = 0; i < nn; i++)
-            v[i] = buf[lo + i];
-
-          v += nn;
-        }
-      else
-        {
-          octave_idx_type offset = j % stride;
-          for (octave_idx_type i = 0; i < nn; i++)
-            v[offset + stride * i] = buf[lo + i];
-          if (offset == stride-1)
-            v += nn*stride;
-        }
-    }
-
-  return m;
-}
-
-#define NO_INSTANTIATE_ARRAY_SORT_API(T, API)                           \
-  template <> API Array<T>                                              \
-  Array<T>::sort (int, sortmode) const                                  \
-  {                                                                     \
-    return *this;                                                       \
-  }                                                                     \
-  template <> API Array<T>                                              \
-  Array<T>::sort (Array<octave_idx_type> &sidx, int, sortmode) const  \
-  {                                                                     \
-    sidx = Array<octave_idx_type> ();                                   \
-    return *this;                                                       \
-  }                                                                     \
-  template <> API sortmode                                              \
-  Array<T>::issorted (sortmode) const                                   \
-  {                                                                     \
-    return UNSORTED;                                                    \
-  }                                                                     \
-  API Array<T>::compare_fcn_type                                        \
-  safe_comparator (sortmode, const Array<T>&, bool)                     \
-  {                                                                     \
-    return nullptr;                                                     \
-  }                                                                     \
-  template <> API Array<octave_idx_type>                                \
-  Array<T>::sort_rows_idx (sortmode) const                              \
-  {                                                                     \
-    return Array<octave_idx_type> ();                                   \
-  }                                                                     \
-  template <> API sortmode                                              \
-  Array<T>::is_sorted_rows (sortmode) const                             \
-  {                                                                     \
-    return UNSORTED;                                                    \
-  }                                                                     \
-  template <> API octave_idx_type                                       \
-  Array<T>::lookup (T const &, sortmode) const                          \
-  {                                                                     \
-    return 0;                                                           \
-  }                                                                     \
-  template <> API Array<octave_idx_type>                                \
-  Array<T>::lookup (const Array<T>&, sortmode) const                    \
-  {                                                                     \
-    return Array<octave_idx_type> ();                                   \
-  }                                                                     \
-  template <> API octave_idx_type                                       \
-  Array<T>::nnz (void) const                                            \
-  {                                                                     \
-    return 0;                                                           \
-  }                                                                     \
-  template <> API Array<octave_idx_type>                                \
-  Array<T>::find (octave_idx_type, bool) const                          \
-  {                                                                     \
-    return Array<octave_idx_type> ();                                   \
-  }                                                                     \
-  template <> API Array<T>                                              \
-  Array<T>::nth_element (const octave::idx_vector&, int) const {        \
-    return Array<T> ();                                                 \
-  }
-
-#define NO_INSTANTIATE_ARRAY_SORT(T) NO_INSTANTIATE_ARRAY_SORT_API (T,)
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::diag (octave_idx_type k) const
-{
-  dim_vector dv = dims ();
-  octave_idx_type nd = dv.ndims ();
-  Array<T, Alloc> d;
-
-  if (nd > 2)
-    (*current_liboctave_error_handler) ("Matrix must be 2-dimensional");
-
-  octave_idx_type nnr = dv(0);
-  octave_idx_type nnc = dv(1);
-
-  if (nnr == 0 && nnc == 0)
-    ; // do nothing for empty matrix
-  else if (nnr != 1 && nnc != 1)
-    {
-      // Extract diag from matrix
-      if (k > 0)
-        nnc -= k;
-      else if (k < 0)
-        nnr += k;
-
-      if (nnr > 0 && nnc > 0)
-        {
-          octave_idx_type ndiag = (nnr < nnc) ? nnr : nnc;
-
-          d.resize (dim_vector (ndiag, 1));
-
-          if (k > 0)
-            {
-              for (octave_idx_type i = 0; i < ndiag; i++)
-                d.xelem (i) = elem (i, i+k);
-            }
-          else if (k < 0)
-            {
-              for (octave_idx_type i = 0; i < ndiag; i++)
-                d.xelem (i) = elem (i-k, i);
-            }
-          else
-            {
-              for (octave_idx_type i = 0; i < ndiag; i++)
-                d.xelem (i) = elem (i, i);
-            }
-        }
-      else  // Matlab returns [] 0x1 for out-of-range diagonal
-        d.resize (dim_vector (0, 1));
-    }
-  else
-    {
-      // Create diag matrix from vector
-      octave_idx_type roff = 0;
-      octave_idx_type coff = 0;
-      if (k > 0)
-        {
-          roff = 0;
-          coff = k;
-        }
-      else if (k < 0)
-        {
-          roff = -k;
-          coff = 0;
-        }
-
-      if (nnr == 1)
-        {
-          octave_idx_type n = nnc + std::abs (k);
-          d = Array<T, Alloc> (dim_vector (n, n), resize_fill_value ());
-
-          for (octave_idx_type i = 0; i < nnc; i++)
-            d.xelem (i+roff, i+coff) = elem (0, i);
-        }
-      else
-        {
-          octave_idx_type n = nnr + std::abs (k);
-          d = Array<T, Alloc> (dim_vector (n, n), resize_fill_value ());
-
-          for (octave_idx_type i = 0; i < nnr; i++)
-            d.xelem (i+roff, i+coff) = elem (i, 0);
-        }
-    }
-
-  return d;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::diag (octave_idx_type m, octave_idx_type n) const
-{
-  if (ndims () != 2 || (rows () != 1 && cols () != 1))
-    (*current_liboctave_error_handler) ("cat: invalid dimension");
-
-  Array<T, Alloc> retval (dim_vector (m, n), resize_fill_value ());
-
-  octave_idx_type nel = std::min (numel (), std::min (m, n));
-  for (octave_idx_type i = 0; i < nel; i++)
-    retval.xelem (i, i) = xelem (i);
-
-  return retval;
-}
-
-template <typename T, typename Alloc>
-Array<T, Alloc>
-Array<T, Alloc>::cat (int dim, octave_idx_type n, const Array<T, Alloc> *array_list)
-{
-  // Default concatenation.
-  bool (dim_vector::*concat_rule) (const dim_vector&, int) = &dim_vector::concat;
-
-  if (dim == -1 || dim == -2)
-    {
-      concat_rule = &dim_vector::hvcat;
-      dim = -dim - 1;
-    }
-  else if (dim < 0)
-    (*current_liboctave_error_handler) ("cat: invalid dimension");
-
-  if (n == 1)
-    return array_list[0];
-  else if (n == 0)
-    return Array<T, Alloc> ();
-
-  // Special case:
-  //
-  //   cat (dim, [], ..., [], A, ...)
-  //
-  // with dim > 2, A not 0x0, and at least three arguments to
-  // concatenate is equivalent to
-  //
-  //   cat (dim, A, ...)
-  //
-  // Note that this check must be performed here because for full-on
-  // braindead Matlab compatibility, we need to have things like
-  //
-  //   cat (3, [], [], A)
-  //
-  // succeed, but to have things like
-  //
-  //   cat (3, cat (3, [], []), A)
-  //   cat (3, zeros (0, 0, 2), A)
-  //
-  // fail.  See also bug report #31615.
-
-  octave_idx_type istart = 0;
-
-  if (n > 2 && dim > 1)
-    {
-      for (octave_idx_type i = 0; i < n; i++)
-        {
-          dim_vector dv = array_list[i].dims ();
-
-          if (dv.zero_by_zero ())
-            istart++;
-          else
-            break;
-        }
-
-      // Don't skip any initial arguments if they are all empty.
-      if (istart >= n)
-        istart = 0;
-    }
-
-  dim_vector dv = array_list[istart++].dims ();
-
-  for (octave_idx_type i = istart; i < n; i++)
-    if (! (dv.*concat_rule) (array_list[i].dims (), dim))
-      (*current_liboctave_error_handler) ("cat: dimension mismatch");
-
-  Array<T, Alloc> retval (dv);
-
-  if (retval.isempty ())
-    return retval;
-
-  int nidx = std::max (dv.ndims (), static_cast<octave_idx_type> (dim + 1));
-  Array<octave::idx_vector> idxa (dim_vector (nidx, 1), octave::idx_vector::colon);
-  octave_idx_type l = 0;
-
-  for (octave_idx_type i = 0; i < n; i++)
-    {
-      // NOTE: This takes some thinking, but no matter what the above rules
-      // are, an empty array can always be skipped at this point, because
-      // the result dimensions are already determined, and there is no way
-      // an empty array may contribute a nonzero piece along the dimension
-      // at this point, unless an empty array can be promoted to a non-empty
-      // one (which makes no sense).  I repeat, *no way*, think about it.
-      if (array_list[i].isempty ())
-        continue;
-
-      octave_quit ();
-
-      octave_idx_type u;
-      if (dim < array_list[i].ndims ())
-        u = l + array_list[i].dims ()(dim);
-      else
-        u = l + 1;
-
-      idxa(dim) = octave::idx_vector (l, u);
-
-      retval.assign (idxa, array_list[i]);
-
-      l = u;
-    }
-
-  return retval;
-}
-
-template <typename T, typename Alloc>
-void
-Array<T, Alloc>::print_info (std::ostream& os, const std::string& prefix) const
-{
-  os << prefix << "m_rep address:   " << m_rep << '\n'
-     << prefix << "m_rep->m_len:    " << m_rep->m_len << '\n'
-     << prefix << "m_rep->m_data:   " << static_cast<void *> (m_rep->m_data) << '\n'
-     << prefix << "m_rep->m_count:  " << m_rep->m_count << '\n'
-     << prefix << "m_slice_data:    " << static_cast<void *> (m_slice_data) << '\n'
-     << prefix << "m_slice_len:     " << m_slice_len << '\n';
-
-  // 2D info:
-  //
-  //     << pefix << "rows: " << rows () << "\n"
-  //     << prefix << "cols: " << cols () << "\n";
-}
-
-template <typename T, typename Alloc>
-bool Array<T, Alloc>::optimize_dimensions (const dim_vector& dv)
-{
-  bool retval = m_dimensions == dv;
-  if (retval)
-    m_dimensions = dv;
-
-  return retval;
-}
-
-template <typename T, typename Alloc>
-void Array<T, Alloc>::instantiation_guard ()
-{
-  // This guards against accidental implicit instantiations.
-  // Array<T, Alloc> instances should always be explicit and use INSTANTIATE_ARRAY.
-  T::__xXxXx__ ();
-}
-
-#if defined (__clang__)
-#  define INSTANTIATE_ARRAY(T, API)             \
-  template <> API void                          \
-  Array<T>::instantiation_guard () { }          \
-                                                \
-  template class API Array<T>
-#else
-#  define INSTANTIATE_ARRAY(T, API)             \
-  template <> API void                          \
-  Array<T>::instantiation_guard () { }          \
-                                                \
-  template class Array<T>
-#endif
-
-// FIXME: is this used?
-
-template <typename T, typename Alloc>
-std::ostream&
-operator << (std::ostream& os, const Array<T, Alloc>& a)
-{
-  dim_vector a_dims = a.dims ();
-
-  int n_dims = a_dims.ndims ();
-
-  os << n_dims << "-dimensional array";
-
-  if (n_dims)
-    os << " (" << a_dims.str () << ')';
-
-  os <<"\n\n";
-
-  if (n_dims)
-    {
-      os << "data:";
-
-      Array<octave_idx_type> ra_idx (dim_vector (n_dims, 1), 0);
-
-      // Number of times the first 2d-array is to be displayed.
-
-      octave_idx_type m = 1;
-      for (int i = 2; i < n_dims; i++)
-        m *= a_dims(i);
-
-      if (m == 1)
-        {
-          octave_idx_type rows = 0;
-          octave_idx_type cols = 0;
-
-          switch (n_dims)
-            {
-            case 2:
-              rows = a_dims(0);
-              cols = a_dims(1);
-
-              for (octave_idx_type j = 0; j < rows; j++)
-                {
-                  ra_idx(0) = j;
-                  for (octave_idx_type k = 0; k < cols; k++)
-                    {
-                      ra_idx(1) = k;
-                      os << ' ' << a.elem (ra_idx);
-                    }
-                  os << "\n";
-                }
-              break;
-
-            default:
-              rows = a_dims(0);
-
-              for (octave_idx_type k = 0; k < rows; k++)
-                {
-                  ra_idx(0) = k;
-                  os << ' ' << a.elem (ra_idx);
-                }
-              break;
-            }
-
-          os << "\n";
-        }
-      else
-        {
-          octave_idx_type rows = a_dims(0);
-          octave_idx_type cols = a_dims(1);
-
-          for (int i = 0; i < m; i++)
-            {
-              os << "\n(:,:,";
-
-              for (int j = 2; j < n_dims - 1; j++)
-                os << ra_idx(j) + 1 << ',';
-
-              os << ra_idx(n_dims - 1) + 1 << ") = \n";
-
-              for (octave_idx_type j = 0; j < rows; j++)
-                {
-                  ra_idx(0) = j;
-
-                  for (octave_idx_type k = 0; k < cols; k++)
-                    {
-                      ra_idx(1) = k;
-                      os << ' ' << a.elem (ra_idx);
-                    }
-
-                  os << "\n";
-                }
-
-              os << "\n";
-
-              if (i != m - 1)
-                increment_index (ra_idx, a_dims, 2);
-            }
-        }
-    }
-
-  return os;
-}
--- a/liboctave/array/Array.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Array.h	Tue Nov 15 13:15:28 2022 -0800
@@ -125,6 +125,7 @@
 
 template <typename T, typename Alloc>
 class
+OCTARRAY_TEMPLATE_API
 Array
 {
 protected:
@@ -212,7 +213,7 @@
 
 public:
 
-  void make_unique (void)
+  OCTARRAY_OVERRIDABLE_FUNC_API void make_unique (void)
   {
     if (m_rep->m_count > 1)
       {
@@ -303,6 +304,7 @@
   // object is deleted.  The dimension vector DV must be consistent with
   // the size of the allocated PTR array.
 
+  OCTARRAY_OVERRIDABLE_FUNC_API
   explicit Array (T *ptr, const dim_vector& dv,
                   const Alloc& xallocator = Alloc ())
     : m_dimensions (dv),
@@ -408,11 +410,14 @@
   { clear (dim_vector (r, c)); }
 
   //! Number of elements in the array.
-  octave_idx_type numel (void) const { return m_slice_len; }
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type
+  numel (void) const
+  { return m_slice_len; }
   //@}
 
   //! Return the array as a column vector.
-  Array<T, Alloc> as_column (void) const
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc>
+  as_column (void) const
   {
     Array<T, Alloc> retval (*this);
     if (m_dimensions.ndims () != 2 || m_dimensions(1) != 1)
@@ -422,7 +427,8 @@
   }
 
   //! Return the array as a row vector.
-  Array<T, Alloc> as_row (void) const
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc>
+  as_row (void) const
   {
     Array<T, Alloc> retval (*this);
     if (m_dimensions.ndims () != 2 || m_dimensions(0) != 1)
@@ -432,7 +438,8 @@
   }
 
   //! Return the array as a matrix.
-  Array<T, Alloc> as_matrix (void) const
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc>
+  as_matrix (void) const
   {
     Array<T, Alloc> retval (*this);
     if (m_dimensions.ndims () != 2)
@@ -445,25 +452,34 @@
   //!
   //! Get the first dimension of the array (number of rows)
   //@{
-  octave_idx_type dim1 (void) const { return m_dimensions(0); }
-  octave_idx_type rows (void) const { return dim1 (); }
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type
+  dim1 (void) const
+  { return m_dimensions(0); }
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type
+  rows (void) const
+  { return dim1 (); }
   //@}
 
   //! @name Second dimension
   //!
   //! Get the second dimension of the array (number of columns)
   //@{
-  octave_idx_type dim2 (void) const { return m_dimensions(1); }
-  octave_idx_type cols (void) const { return dim2 (); }
-  octave_idx_type columns (void) const { return dim2 (); }
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type dim2 (void) const
+  { return m_dimensions(1); }
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type cols (void) const
+  { return dim2 (); }
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type columns (void) const
+  { return dim2 (); }
   //@}
 
   //! @name Third dimension
   //!
   //! Get the third dimension of the array (number of pages)
   //@{
-  octave_idx_type dim3 (void) const { return m_dimensions(2); }
-  octave_idx_type pages (void) const { return dim3 (); }
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type dim3 (void) const
+  { return m_dimensions(2); }
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type pages (void) const
+  { return dim3 (); }
   //@}
 
   //! Size of the specified dimension.
@@ -473,51 +489,63 @@
   //!
   //! Equivalent to Octave's 'size (A, DIM)'
 
-  size_type size (const size_type d) const
+  OCTARRAY_OVERRIDABLE_FUNC_API size_type size (const size_type d) const
   {
     // Should we throw for negative values?
     // Should >= ndims () be handled by dim_vector operator() instead ?
     return d >= ndims () ? 1 : m_dimensions(d);
   }
 
-  std::size_t byte_size (void) const
+  OCTARRAY_OVERRIDABLE_FUNC_API std::size_t byte_size (void) const
   { return static_cast<std::size_t> (numel ()) * sizeof (T); }
 
   //! Return a const-reference so that dims ()(i) works efficiently.
-  const dim_vector& dims (void) const { return m_dimensions; }
+  OCTARRAY_OVERRIDABLE_FUNC_API const dim_vector& dims (void) const
+  { return m_dimensions; }
 
   //! Chop off leading singleton dimensions
   OCTARRAY_API Array<T, Alloc> squeeze (void) const;
 
-  OCTARRAY_API octave_idx_type compute_index (octave_idx_type i, octave_idx_type j) const;
-  OCTARRAY_API octave_idx_type compute_index (octave_idx_type i, octave_idx_type j,
-                                 octave_idx_type k) const;
-  OCTARRAY_API octave_idx_type compute_index (const Array<octave_idx_type>& ra_idx) const;
+  OCTARRAY_API octave_idx_type
+  compute_index (octave_idx_type i, octave_idx_type j) const;
+  OCTARRAY_API octave_idx_type
+  compute_index (octave_idx_type i, octave_idx_type j, octave_idx_type k) const;
+  OCTARRAY_API octave_idx_type
+  compute_index (const Array<octave_idx_type>& ra_idx) const;
 
-  octave_idx_type compute_index_unchecked (const Array<octave_idx_type>& ra_idx) const
+  OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type
+  compute_index_unchecked (const Array<octave_idx_type>& ra_idx) const
   {
     return m_dimensions.compute_index (ra_idx.data (), ra_idx.numel ());
   }
 
   // No checking, even for multiple references, ever.
 
-  T& xelem (octave_idx_type n) { return m_slice_data[n]; }
-  crefT xelem (octave_idx_type n) const { return m_slice_data[n]; }
+  OCTARRAY_OVERRIDABLE_FUNC_API T& xelem (octave_idx_type n)
+  { return m_slice_data[n]; }
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT xelem (octave_idx_type n) const
+  { return m_slice_data[n]; }
 
-  T& xelem (octave_idx_type i, octave_idx_type j)
+  OCTARRAY_OVERRIDABLE_FUNC_API T&
+  xelem (octave_idx_type i, octave_idx_type j)
   { return xelem (dim1 ()*j+i); }
-  crefT xelem (octave_idx_type i, octave_idx_type j) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  xelem (octave_idx_type i, octave_idx_type j) const
   { return xelem (dim1 ()*j+i); }
 
-  T& xelem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
+  OCTARRAY_OVERRIDABLE_FUNC_API T&
+  xelem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
   { return xelem (i, dim2 ()*k+j); }
-  crefT xelem (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  xelem (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
   { return xelem (i, dim2 ()*k+j); }
 
-  T& xelem (const Array<octave_idx_type>& ra_idx)
+  OCTARRAY_OVERRIDABLE_FUNC_API T&
+  xelem (const Array<octave_idx_type>& ra_idx)
   { return xelem (compute_index_unchecked (ra_idx)); }
 
-  crefT xelem (const Array<octave_idx_type>& ra_idx) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  xelem (const Array<octave_idx_type>& ra_idx) const
   { return xelem (compute_index_unchecked (ra_idx)); }
 
   // FIXME: would be nice to fix this so that we don't unnecessarily force
@@ -531,25 +559,28 @@
 
   OCTARRAY_API T& checkelem (const Array<octave_idx_type>& ra_idx);
 
-  T& elem (octave_idx_type n)
+  OCTARRAY_OVERRIDABLE_FUNC_API T& elem (octave_idx_type n)
   {
     make_unique ();
     return xelem (n);
   }
 
-  T& elem (octave_idx_type i, octave_idx_type j) { return elem (dim1 ()*j+i); }
+  OCTARRAY_OVERRIDABLE_FUNC_API T& elem (octave_idx_type i, octave_idx_type j)
+  { return elem (dim1 ()*j+i); }
 
-  T& elem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
+  OCTARRAY_OVERRIDABLE_FUNC_API T& elem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
   { return elem (i, dim2 ()*k+j); }
 
-  T& elem (const Array<octave_idx_type>& ra_idx)
+  OCTARRAY_OVERRIDABLE_FUNC_API T& elem (const Array<octave_idx_type>& ra_idx)
   { return Array<T, Alloc>::elem (compute_index_unchecked (ra_idx)); }
 
-  T& operator () (octave_idx_type n) { return elem (n); }
-  T& operator () (octave_idx_type i, octave_idx_type j) { return elem (i, j); }
-  T& operator () (octave_idx_type i, octave_idx_type j, octave_idx_type k)
+  OCTARRAY_OVERRIDABLE_FUNC_API T& operator () (octave_idx_type n)
+  { return elem (n); }
+  OCTARRAY_OVERRIDABLE_FUNC_API T& operator () (octave_idx_type i, octave_idx_type j)
+  { return elem (i, j); }
+  OCTARRAY_OVERRIDABLE_FUNC_API T& operator () (octave_idx_type i, octave_idx_type j, octave_idx_type k)
   { return elem (i, j, k); }
-  T& operator () (const Array<octave_idx_type>& ra_idx)
+  OCTARRAY_OVERRIDABLE_FUNC_API T& operator () (const Array<octave_idx_type>& ra_idx)
   { return elem (ra_idx); }
 
   OCTARRAY_API crefT checkelem (octave_idx_type n) const;
@@ -561,24 +592,31 @@
 
   OCTARRAY_API crefT checkelem (const Array<octave_idx_type>& ra_idx) const;
 
-  crefT elem (octave_idx_type n) const { return xelem (n); }
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT elem (octave_idx_type n) const
+  { return xelem (n); }
 
-  crefT elem (octave_idx_type i, octave_idx_type j) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  elem (octave_idx_type i, octave_idx_type j) const
   { return xelem (i, j); }
 
-  crefT elem (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  elem (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
   { return xelem (i, j, k); }
 
-  crefT elem (const Array<octave_idx_type>& ra_idx) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  elem (const Array<octave_idx_type>& ra_idx) const
   { return Array<T, Alloc>::xelem (compute_index_unchecked (ra_idx)); }
 
-  crefT operator () (octave_idx_type n) const { return elem (n); }
-  crefT operator () (octave_idx_type i, octave_idx_type j) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  operator () (octave_idx_type n) const { return elem (n); }
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  operator () (octave_idx_type i, octave_idx_type j) const
   { return elem (i, j); }
-  crefT operator () (octave_idx_type i, octave_idx_type j,
-                     octave_idx_type k) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  operator () (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
   { return elem (i, j, k); }
-  crefT operator () (const Array<octave_idx_type>& ra_idx) const
+  OCTARRAY_OVERRIDABLE_FUNC_API crefT
+  operator () (const Array<octave_idx_type>& ra_idx) const
   { return elem (ra_idx); }
 
   // Fast extractors.  All of these produce shallow copies.
@@ -590,41 +628,54 @@
 
   //! Extract a slice from this array as a column vector: A(:)(lo+1:up).
   //! Must be 0 <= lo && up <= numel.  May be up < lo.
-  OCTARRAY_API Array<T, Alloc> linear_slice (octave_idx_type lo, octave_idx_type up) const;
+  OCTARRAY_API Array<T, Alloc>
+  linear_slice (octave_idx_type lo, octave_idx_type up) const;
 
-  Array<T, Alloc> reshape (octave_idx_type nr, octave_idx_type nc) const
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc>
+  reshape (octave_idx_type nr, octave_idx_type nc) const
   { return Array<T, Alloc> (*this, dim_vector (nr, nc)); }
 
-  Array<T, Alloc> reshape (const dim_vector& new_dims) const
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc> 
+  reshape (const dim_vector& new_dims) const
   { return Array<T, Alloc> (*this, new_dims); }
 
-  OCTARRAY_API Array<T, Alloc> permute (const Array<octave_idx_type>& vec, bool inv = false) const;
-  Array<T, Alloc> ipermute (const Array<octave_idx_type>& vec) const
+  OCTARRAY_API Array<T, Alloc>
+  permute (const Array<octave_idx_type>& vec, bool inv = false) const;
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc>
+  ipermute (const Array<octave_idx_type>& vec) const
   { return permute (vec, true); }
 
-  bool issquare (void) const { return (dim1 () == dim2 ()); }
+  OCTARRAY_OVERRIDABLE_FUNC_API bool issquare (void) const
+  { return (dim1 () == dim2 ()); }
 
-  bool isempty (void) const { return numel () == 0; }
+  OCTARRAY_OVERRIDABLE_FUNC_API bool isempty (void) const
+  { return numel () == 0; }
 
-  bool isvector (void) const { return m_dimensions.isvector (); }
+  OCTARRAY_OVERRIDABLE_FUNC_API bool isvector (void) const
+  { return m_dimensions.isvector (); }
 
-  bool is_nd_vector (void) const { return m_dimensions.is_nd_vector (); }
+  OCTARRAY_OVERRIDABLE_FUNC_API bool is_nd_vector (void) const
+  { return m_dimensions.is_nd_vector (); }
 
   OCTARRAY_API Array<T, Alloc> transpose (void) const;
   OCTARRAY_API Array<T, Alloc> hermitian (T (*fcn) (const T&) = nullptr) const;
 
-  const T * data (void) const { return m_slice_data; }
+  OCTARRAY_OVERRIDABLE_FUNC_API const T * data (void) const
+  { return m_slice_data; }
 
 #if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
   OCTAVE_DEPRECATED (7, "for read-only access, use 'data' method instead")
-  const T * fortran_vec (void) const { return data (); }
+  OCTARRAY_OVERRIDABLE_FUNC_API const T * fortran_vec (void) const
+  { return data (); }
 #endif
 
   OCTARRAY_API T * fortran_vec (void);
 
-  bool is_shared (void) { return m_rep->m_count > 1; }
+  OCTARRAY_OVERRIDABLE_FUNC_API bool is_shared (void)
+  { return m_rep->m_count > 1; }
 
-  int ndims (void) const { return m_dimensions.ndims (); }
+  OCTARRAY_OVERRIDABLE_FUNC_API int ndims (void) const
+  { return m_dimensions.ndims (); }
 
   //@{
   //! Indexing without resizing.
@@ -640,16 +691,18 @@
   //@{
   //! Resizing (with fill).
   OCTARRAY_API void resize2 (octave_idx_type nr, octave_idx_type nc, const T& rfv);
-  void resize2 (octave_idx_type nr, octave_idx_type nc)
+  OCTARRAY_OVERRIDABLE_FUNC_API void resize2 (octave_idx_type nr, octave_idx_type nc)
   {
     resize2 (nr, nc, resize_fill_value ());
   }
 
   OCTARRAY_API void resize1 (octave_idx_type n, const T& rfv);
-  void resize1 (octave_idx_type n) { resize1 (n, resize_fill_value ()); }
+  OCTARRAY_OVERRIDABLE_FUNC_API void resize1 (octave_idx_type n)
+  { resize1 (n, resize_fill_value ()); }
 
   OCTARRAY_API void resize (const dim_vector& dv, const T& rfv);
-  void resize (const dim_vector& dv) { resize (dv, resize_fill_value ()); }
+  OCTARRAY_OVERRIDABLE_FUNC_API void resize (const dim_vector& dv)
+  { resize (dv, resize_fill_value ()); }
   //@}
 
   //@{
@@ -658,24 +711,29 @@
   // FIXME: this is really a corner case, that should better be
   // handled directly in liboctinterp.
 
-  OCTARRAY_API Array<T, Alloc> index (const octave::idx_vector& i, bool resize_ok, const T& rfv) const;
-  Array<T, Alloc> index (const octave::idx_vector& i, bool resize_ok) const
+  OCTARRAY_API Array<T, Alloc>
+  index (const octave::idx_vector& i, bool resize_ok, const T& rfv) const;
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc>
+  index (const octave::idx_vector& i, bool resize_ok) const
   {
     return index (i, resize_ok, resize_fill_value ());
   }
 
-  OCTARRAY_API Array<T, Alloc> index (const octave::idx_vector& i, const octave::idx_vector& j,
-                               bool resize_ok,
-                               const T& rfv) const;
-  Array<T, Alloc> index (const octave::idx_vector& i, const octave::idx_vector& j,
-                  bool resize_ok) const
+  OCTARRAY_API Array<T, Alloc>
+  index (const octave::idx_vector& i, const octave::idx_vector& j,
+         bool resize_ok, const T& rfv) const;
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc>
+  index (const octave::idx_vector& i, const octave::idx_vector& j,
+         bool resize_ok) const
   {
     return index (i, j, resize_ok, resize_fill_value ());
   }
 
-  OCTARRAY_API Array<T, Alloc> index (const Array<octave::idx_vector>& ia, bool resize_ok,
-                               const T& rfv) const;
-  Array<T, Alloc> index (const Array<octave::idx_vector>& ia, bool resize_ok) const
+  OCTARRAY_API Array<T, Alloc>
+  index (const Array<octave::idx_vector>& ia, bool resize_ok,
+         const T& rfv) const;
+  OCTARRAY_OVERRIDABLE_FUNC_API Array<T, Alloc>
+  index (const Array<octave::idx_vector>& ia, bool resize_ok) const
   {
     return index (ia, resize_ok, resize_fill_value ());
   }
@@ -683,22 +741,28 @@
 
   //@{
   //! Indexed assignment (always with resize & fill).
-  OCTARRAY_API void assign (const octave::idx_vector& i, const Array<T, Alloc>& rhs, const T& rfv);
-  void assign (const octave::idx_vector& i, const Array<T, Alloc>& rhs)
+  OCTARRAY_API void
+  assign (const octave::idx_vector& i, const Array<T, Alloc>& rhs, const T& rfv);
+  OCTARRAY_OVERRIDABLE_FUNC_API void
+  assign (const octave::idx_vector& i, const Array<T, Alloc>& rhs)
   {
     assign (i, rhs, resize_fill_value ());
   }
 
-  OCTARRAY_API void assign (const octave::idx_vector& i, const octave::idx_vector& j,
-                            const Array<T, Alloc>& rhs,
-                            const T& rfv);
-  void assign (const octave::idx_vector& i, const octave::idx_vector& j, const Array<T, Alloc>& rhs)
+  OCTARRAY_API void
+  assign (const octave::idx_vector& i, const octave::idx_vector& j,
+          const Array<T, Alloc>& rhs, const T& rfv);
+  OCTARRAY_OVERRIDABLE_FUNC_API void
+  assign (const octave::idx_vector& i, const octave::idx_vector& j,
+          const Array<T, Alloc>& rhs)
   {
     assign (i, j, rhs, resize_fill_value ());
   }
 
-  OCTARRAY_API void assign (const Array<octave::idx_vector>& ia, const Array<T, Alloc>& rhs, const T& rfv);
-  void assign (const Array<octave::idx_vector>& ia, const Array<T, Alloc>& rhs)
+  OCTARRAY_API void
+  assign (const Array<octave::idx_vector>& ia, const Array<T, Alloc>& rhs, const T& rfv);
+  OCTARRAY_OVERRIDABLE_FUNC_API void
+  assign (const Array<octave::idx_vector>& ia, const Array<T, Alloc>& rhs)
   {
     assign (ia, rhs, resize_fill_value ());
   }
@@ -721,12 +785,14 @@
   //! size (a) is [d1 d2 ... dN] and idx is [i1 i2 ... iN], this
   //! method is equivalent to x(i1:i1+d1-1, i2:i2+d2-1, ... ,
   //! iN:iN+dN-1) = a.
-  OCTARRAY_API Array<T, Alloc>& insert (const Array<T, Alloc>& a, const Array<octave_idx_type>& idx);
+  OCTARRAY_API Array<T, Alloc>&
+  insert (const Array<T, Alloc>& a, const Array<octave_idx_type>& idx);
 
   //! This is just a special case for idx = [r c 0 ...]
-  OCTARRAY_API Array<T, Alloc>& insert (const Array<T, Alloc>& a, octave_idx_type r, octave_idx_type c);
+  OCTARRAY_API Array<T, Alloc>&
+  insert (const Array<T, Alloc>& a, octave_idx_type r, octave_idx_type c);
 
-  void maybe_economize (void)
+  OCTARRAY_OVERRIDABLE_FUNC_API void maybe_economize (void)
   {
     if (m_rep->m_count == 1 && m_slice_len != m_rep->m_len)
       {
@@ -759,7 +825,7 @@
   //! Ditto, but for an array of values, specializing on the case when values
   //! are sorted.  NaNs get the value N.
   OCTARRAY_API Array<octave_idx_type> lookup (const Array<T, Alloc>& values,
-                                                sortmode mode = UNSORTED) const;
+                                              sortmode mode = UNSORTED) const;
 
   //! Count nonzero elements.
   OCTARRAY_API octave_idx_type nnz (void) const;
@@ -767,7 +833,7 @@
   //! Find indices of (at most n) nonzero elements.  If n is specified,
   //! backward specifies search from backward.
   OCTARRAY_API Array<octave_idx_type> find (octave_idx_type n = -1,
-                                              bool backward = false) const;
+                                            bool backward = false) const;
 
   //! Returns the n-th element in increasing order, using the same
   //! ordering as used for sort.  n can either be a scalar index or a
--- a/liboctave/array/MArray-C.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/MArray-C.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -34,7 +34,7 @@
 #include "MArray.h"
 #include "MArray.cc"
 
-INSTANTIATE_MARRAY (Complex, OCTAVE_API);
+INSTANTIATE_MARRAY (Complex, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 
 INSTANTIATE_MARRAY_FRIENDS (Complex, OCTAVE_API)
 
--- a/liboctave/array/MArray-d.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/MArray-d.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -32,7 +32,7 @@
 #include "MArray.h"
 #include "MArray.cc"
 
-INSTANTIATE_MARRAY (double, OCTAVE_API);
+INSTANTIATE_MARRAY (double, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 
 INSTANTIATE_MARRAY_FRIENDS (double, OCTAVE_API)
 
--- a/liboctave/array/MArray-f.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/MArray-f.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -32,7 +32,7 @@
 #include "MArray.h"
 #include "MArray.cc"
 
-INSTANTIATE_MARRAY (float, OCTAVE_API);
+INSTANTIATE_MARRAY (float, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 
 INSTANTIATE_MARRAY_FRIENDS (float, OCTAVE_API)
 
--- a/liboctave/array/MArray-fC.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/MArray-fC.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -34,7 +34,7 @@
 #include "MArray.h"
 #include "MArray.cc"
 
-INSTANTIATE_MARRAY (FloatComplex, OCTAVE_API);
+INSTANTIATE_MARRAY (FloatComplex, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 
 INSTANTIATE_MARRAY_FRIENDS (FloatComplex, OCTAVE_API)
 
--- a/liboctave/array/MArray-fwd.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/MArray-fwd.h	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,6 @@
 
 #include "octave-config.h"
 
-template <typename T> class OCTARRAY_API MArray;
+template <typename T> class OCTAVE_TEMPLATE_API MArray;
 
 #endif
--- a/liboctave/array/MArray-i.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/MArray-i.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -34,9 +34,9 @@
 #include "MArray.h"
 #include "MArray.cc"
 
-INSTANTIATE_MARRAY (int, OCTAVE_API);
+INSTANTIATE_MARRAY (int, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 #if defined (OCTAVE_ENABLE_64)
-INSTANTIATE_MARRAY (int64_t, OCTAVE_API);
+INSTANTIATE_MARRAY (int64_t, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 #endif
 
 INSTANTIATE_MARRAY_FRIENDS (int, OCTAVE_API)
@@ -44,20 +44,20 @@
 INSTANTIATE_MARRAY_FRIENDS (int64_t, OCTAVE_API)
 #endif
 
-INSTANTIATE_MARRAY (octave_int8, OCTAVE_API);
-INSTANTIATE_MARRAY (octave_int16, OCTAVE_API);
-INSTANTIATE_MARRAY (octave_int32, OCTAVE_API);
-INSTANTIATE_MARRAY (octave_int64, OCTAVE_API);
+INSTANTIATE_MARRAY (octave_int8, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_MARRAY (octave_int16, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_MARRAY (octave_int32, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_MARRAY (octave_int64, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 
 INSTANTIATE_MARRAY_FRIENDS (octave_int8, OCTAVE_API)
 INSTANTIATE_MARRAY_FRIENDS (octave_int16, OCTAVE_API)
 INSTANTIATE_MARRAY_FRIENDS (octave_int32, OCTAVE_API)
 INSTANTIATE_MARRAY_FRIENDS (octave_int64, OCTAVE_API)
 
-INSTANTIATE_MARRAY (octave_uint8, OCTAVE_API);
-INSTANTIATE_MARRAY (octave_uint16, OCTAVE_API);
-INSTANTIATE_MARRAY (octave_uint32, OCTAVE_API);
-INSTANTIATE_MARRAY (octave_uint64, OCTAVE_API);
+INSTANTIATE_MARRAY (octave_uint8, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_MARRAY (octave_uint16, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_MARRAY (octave_uint32, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
+INSTANTIATE_MARRAY (octave_uint64, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 
 INSTANTIATE_MARRAY_FRIENDS (octave_uint8, OCTAVE_API)
 INSTANTIATE_MARRAY_FRIENDS (octave_uint16, OCTAVE_API)
--- a/liboctave/array/MArray-s.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/MArray-s.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -32,7 +32,7 @@
 #include "MArray.h"
 #include "MArray.cc"
 
-INSTANTIATE_MARRAY (short, OCTAVE_API);
+INSTANTIATE_MARRAY (short, OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API);
 
 INSTANTIATE_MARRAY_FRIENDS (short, OCTAVE_API)
 
--- a/liboctave/array/MArray.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/MArray.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -380,16 +380,8 @@
   T::__xXxXx__ ();
 }
 
-#if defined (__clang__)
-#  define INSTANTIATE_MARRAY(T, API)            \
+#define INSTANTIATE_MARRAY(T, API)            \
   template <> API void                          \
   MArray<T>::instantiation_guard () { }         \
                                                 \
   template class API MArray<T>
-#else
-#  define INSTANTIATE_MARRAY(T, API)            \
-  template <> API void                          \
-  MArray<T>::instantiation_guard () { }         \
-                                                \
-  template class MArray<T>
-#endif
--- a/liboctave/array/Sparse-fwd.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/Sparse-fwd.h	Tue Nov 15 13:15:28 2022 -0800
@@ -32,12 +32,12 @@
 #  include <memory_resource>
 
 template <typename T, typename Alloc = std::pmr::polymorphic_allocator<T>>
-class OCTAVE_API Sparse;
+class OCTAVE_TEMPLATE_API Sparse;
 
 #else
 
 template <typename T, typename Alloc = std::allocator<T>>
-class OCTARRAY_API Sparse;
+class OCTAVE_TEMPLATE_API Sparse;
 
 #endif
 
--- a/liboctave/array/idx-vector.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/idx-vector.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -103,8 +103,10 @@
                                             octave_idx_type limit,
                                             octave_idx_type step)
     : idx_base_rep (), m_start(start),
-      m_len (step ? std::max ((limit - start) / step,
-                              static_cast<octave_idx_type> (0))
+      // Round length away from zero to catch incomplete intervals
+      m_len (step
+             ? std::max ((limit - start + step - (step > 0 ? 1 : -1)) / step,
+                         static_cast<octave_idx_type> (0))
              : -1),
       m_step (step)
   {
--- a/liboctave/array/idx-vector.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/idx-vector.h	Tue Nov 15 13:15:28 2022 -0800
@@ -171,7 +171,8 @@
                      octave_idx_type step, direct)
         : idx_base_rep (), m_start (start), m_len (len), m_step (step) { }
 
-      // Zero-based constructor.
+      // Zero-based constructor for index range starting at `start` (inclusive)
+      // and ending at `limit` (exclusive) in steps of `step`.
       idx_range_rep (octave_idx_type start, octave_idx_type limit,
                      octave_idx_type step);
 
--- a/liboctave/array/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/array/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -121,7 +121,8 @@
   %reldir%/uint8NDArray.cc
 
 LIBOCTAVE_TEMPLATE_SRC += \
-  %reldir%/Array.cc \
+  %reldir%/Array-base.cc \
+  %reldir%/Array-oct.cc \
   %reldir%/DiagArray2.cc \
   %reldir%/MArray.cc \
   %reldir%/MDiagArray2.cc \
--- a/liboctave/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -127,8 +127,6 @@
 
 DIRSTAMP_FILES += %reldir%/$(octave_dirstamp)
 
-pkgconfig_DATA += $(%canon_reldir%_pkgconfig_DATA)
-
 EXTRA_DIST += $(%canon_reldir%_EXTRA_DIST)
 
 %canon_reldir%_CLEANFILES += \
--- a/liboctave/numeric/DAEFunc.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/DAEFunc.h	Tue Nov 15 13:15:28 2022 -0800
@@ -48,22 +48,22 @@
                                 double t, double cj);
 
   DAEFunc (void)
-    : m_fun (nullptr), m_jac (nullptr), m_reset (true) { }
+    : m_fcn (nullptr), m_jac (nullptr), m_reset (true) { }
 
   DAEFunc (DAERHSFunc f)
-    : m_fun (f), m_jac (nullptr), m_reset (true) { }
+    : m_fcn (f), m_jac (nullptr), m_reset (true) { }
 
   DAEFunc (DAERHSFunc f, DAEJacFunc j)
-    : m_fun (f), m_jac (j), m_reset (true) { }
+    : m_fcn (f), m_jac (j), m_reset (true) { }
 
   DAEFunc (const DAEFunc& a)
-    : m_fun (a.m_fun), m_jac (a.m_jac), m_reset (a.m_reset) { }
+    : m_fcn (a.m_fcn), m_jac (a.m_jac), m_reset (a.m_reset) { }
 
   DAEFunc& operator = (const DAEFunc& a)
   {
     if (this != &a)
       {
-        m_fun = a.m_fun;
+        m_fcn = a.m_fcn;
         m_jac = a.m_jac;
         m_reset = a.m_reset;
       }
@@ -72,11 +72,11 @@
 
   virtual ~DAEFunc (void) = default;
 
-  DAERHSFunc function (void) const { return m_fun; }
+  DAERHSFunc function (void) const { return m_fcn; }
 
   DAEFunc& set_function (DAERHSFunc f)
   {
-    m_fun = f;
+    m_fcn = f;
     m_reset = true;
     return *this;
   }
@@ -92,7 +92,7 @@
 
 protected:
 
-  DAERHSFunc m_fun;
+  DAERHSFunc m_fcn;
   DAEJacFunc m_jac;
 
   // This variable is TRUE when this object is constructed, and also
--- a/liboctave/numeric/DASPK.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/DASPK.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -61,7 +61,7 @@
                              daspk_jac_ptr, daspk_psol_ptr);
 }
 
-static DAEFunc::DAERHSFunc user_fun;
+static DAEFunc::DAERHSFunc user_fcn;
 static DAEFunc::DAEJacFunc user_jac;
 static F77_INT nn;
 
@@ -81,7 +81,7 @@
 
   octave_idx_type tmp_ires = ires;
 
-  tmp_delta = user_fun (tmp_state, tmp_deriv, time, tmp_ires);
+  tmp_delta = user_fcn (tmp_state, tmp_deriv, time, tmp_ires);
 
   ires = octave::to_f77_int (tmp_ires);
 
@@ -172,14 +172,14 @@
 
       // DAEFunc
 
-      user_fun = DAEFunc::function ();
+      user_fcn = DAEFunc::function ();
       user_jac = DAEFunc::jacobian_function ();
 
-      if (user_fun)
+      if (user_fcn)
         {
           octave_idx_type ires = 0;
 
-          ColumnVector res = (*user_fun) (m_x, m_xdot, m_t, ires);
+          ColumnVector res = (*user_fcn) (m_x, m_xdot, m_t, ires);
 
           if (res.numel () != m_x.numel ())
             {
--- a/liboctave/numeric/DASSL.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/DASSL.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -55,7 +55,7 @@
                              dassl_jac_ptr);
 }
 
-static DAEFunc::DAERHSFunc user_fun;
+static DAEFunc::DAERHSFunc user_fcn;
 static DAEFunc::DAEJacFunc user_jac;
 
 static F77_INT nn;
@@ -78,7 +78,7 @@
 
   octave_idx_type tmp_ires = ires;
 
-  tmp_delta = user_fun (tmp_state, tmp_deriv, time, tmp_ires);
+  tmp_delta = user_fcn (tmp_state, tmp_deriv, time, tmp_ires);
 
   ires = octave::to_f77_int (tmp_ires);
 
@@ -161,14 +161,14 @@
 
       // DAEFunc
 
-      user_fun = DAEFunc::function ();
+      user_fcn = DAEFunc::function ();
       user_jac = DAEFunc::jacobian_function ();
 
-      if (user_fun)
+      if (user_fcn)
         {
           octave_idx_type ires = 0;
 
-          ColumnVector res = (*user_fun) (m_x, m_xdot, m_t, ires);
+          ColumnVector res = (*user_fcn) (m_x, m_xdot, m_t, ires);
 
           if (res.numel () != m_x.numel ())
             {
--- a/liboctave/numeric/LSODE-opts.in	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/LSODE-opts.in	Tue Nov 15 13:15:28 2022 -0800
@@ -159,8 +159,73 @@
   NAME = "step limit"
   DOC_ITEM
 Maximum number of steps allowed (default is 100000).
+
   END_DOC_ITEM
   TYPE = "octave_idx_type"
   INIT_VALUE = "100000"
   SET_EXPR = "val"
 END_OPTION
+
+OPTION
+  NAME = "jacobian type"
+  DOC_ITEM
+A string specifying the type of Jacobian used with the stiff backward
+differentiation formula (BDF) integration method.  Valid values are
+
+@table @asis
+@item @qcode{"full"}
+The default.  All partial derivatives are approximated or used from the
+user-supplied Jacobian function.
+
+@item @qcode{"banded"}
+Only the diagonal and the number of lower and upper subdiagonals specified by
+the options @qcode{"lower jacobian subdiagonals"} and @qcode{"upper jacobian
+subdiagonals"}, respectively, are approximated or used from the user-supplied
+Jacobian function.  A user-supplied Jacobian function may set all other
+partial derivatives to arbitrary values.
+
+@item @qcode{"diagonal"}
+If a Jacobian function is supplied by the user, this setting has no effect.
+A Jacobian approximated by @code{lsode} is restricted to the diagonal, where
+each partial derivative is computed by applying a finite change to all
+elements of the state together; if the real Jacobian is indeed always diagonal,
+this has the same effect as applying the finite change only to the respective
+element of the state, but is more efficient.
+@end table
+
+  END_DOC_ITEM
+  TYPE = "std::string"
+  SET_ARG_TYPE = "const $TYPE&"
+  INIT_VALUE = ""full""
+  SET_BODY
+    if (val == "full" || val == "banded" || val == "diagonal")
+      $OPTVAR = val;
+    else
+      (*current_liboctave_error_handler)
+        ("lsode_options: jacobian type must be \"full\", \"banded\", or \"diagonal\"");
+  END_SET_BODY
+END_OPTION
+
+OPTION
+  NAME = "lower jacobian subdiagonals"
+  DOC_ITEM
+Number of lower subdiagonals used if option @qcode{"jacobian type"} is set to
+@qcode{"banded"}.  The default is zero.
+
+  END_DOC_ITEM
+  TYPE = "octave_idx_type"
+  INIT_VALUE = "0"
+  SET_EXPR = "val"
+END_OPTION
+
+OPTION
+  NAME = "upper jacobian subdiagonals"
+  DOC_ITEM
+Number of upper subdiagonals used if option @qcode{"jacobian type"} is set to
+@qcode{"banded"}.  The default is zero.
+
+  END_DOC_ITEM
+  TYPE = "octave_idx_type"
+  INIT_VALUE = "0"
+  SET_EXPR = "val"
+END_OPTION
--- a/liboctave/numeric/LSODE.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/LSODE.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -52,9 +52,10 @@
                              F77_INT&);
 }
 
-static ODEFunc::ODERHSFunc user_fun;
+static ODEFunc::ODERHSFunc user_fcn;
 static ODEFunc::ODEJacFunc user_jac;
 static ColumnVector *tmp_x;
+static bool user_jac_ignore_ml_mu;
 
 static F77_INT
 lsode_f (const F77_INT& neq, const double& time, double *, double *deriv,
@@ -66,7 +67,7 @@
   //       In that case we have to create a temporary vector object
   //       and copy.
 
-  tmp_deriv = (*user_fun) (*tmp_x, time);
+  tmp_deriv = (*user_fcn) (*tmp_x, time);
 
   if (tmp_deriv.isempty ())
     ierr = -1;
@@ -80,8 +81,9 @@
 }
 
 static F77_INT
-lsode_j (const F77_INT& neq, const double& time, double *, const F77_INT&,
-         const F77_INT&, double *pd, const F77_INT& nrowpd)
+lsode_j (const F77_INT& neq, const double& time, double *, 
+         const F77_INT& ml, const F77_INT& mu,
+         double *pd, const F77_INT& nrowpd)
 {
   Matrix tmp_jac (neq, neq);
 
@@ -91,10 +93,17 @@
 
   tmp_jac = (*user_jac) (*tmp_x, time);
 
-  for (F77_INT j = 0; j < neq; j++)
-    for (F77_INT i = 0; i < neq; i++)
-      pd[nrowpd * j + i] = tmp_jac (i, j);
-
+  if (user_jac_ignore_ml_mu)
+    for (F77_INT j = 0; j < neq; j++)
+      for (F77_INT i = 0; i < neq; i++)
+        pd[nrowpd * j + i] = tmp_jac (i, j);
+  else
+    // upper left ends of subdiagonals in tmp_jac
+    for (F77_INT i = 0, j = mu; i <= ml; j == 0 ? i++ : j--)
+      // walk down the subdiagonal in tmp_jac
+      for (F77_INT k = i, l = j; k < neq && l < neq; k++, l++)
+        pd[nrowpd * l + k + mu - l] = tmp_jac (k, l);    
+      
   return 0;
 }
 
@@ -120,14 +129,45 @@
 
       octave_idx_type max_maxord = 0;
 
+      user_jac_ignore_ml_mu = true;
+
+      m_iwork = Array<octave_f77_int_type> (dim_vector (2, 1));
+
+      m_iwork(0) = lower_jacobian_subdiagonals ();  // 'ML' in dlsode.f
+
+      m_iwork(1) = upper_jacobian_subdiagonals ();  // 'MU' in dlsode.f
+
       if (integration_method () == "stiff")
         {
           max_maxord = 5;
 
           if (m_jac)
-            m_method_flag = 21;
+            {
+              if (jacobian_type () == "banded")
+                {
+                  m_method_flag = 24;
+                  user_jac_ignore_ml_mu = false;
+                }
+              else
+                m_method_flag = 21;
+            }
           else
-            m_method_flag = 22;
+            {
+              if (jacobian_type () == "full")
+                m_method_flag = 22;
+              else if (jacobian_type () == "banded")
+                m_method_flag = 25;
+              else if (jacobian_type () == "diagonal")
+                m_method_flag = 23;
+              else
+                {
+                  // should be prevented by lsode_options
+                  (*current_liboctave_error_handler)
+                    ("lsode: internal error, wrong jacobian type");
+                  m_integration_error = true;
+                  return retval;
+                }
+            }
 
           m_liw = 20 + n;
           m_lrw = 22 + n * (9 + n);
@@ -192,10 +232,10 @@
 
       tmp_x = &m_x;
 
-      user_fun = function ();
+      user_fcn = function ();
       user_jac = jacobian_function ();
 
-      ColumnVector m_xdot = (*user_fun) (m_x, m_t);
+      ColumnVector m_xdot = (*user_fcn) (m_x, m_t);
 
       if (m_x.numel () != m_xdot.numel ())
         {
--- a/liboctave/numeric/ODEFunc.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/ODEFunc.h	Tue Nov 15 13:15:28 2022 -0800
@@ -39,22 +39,22 @@
   typedef Matrix (*ODEJacFunc) (const ColumnVector&, double);
 
   ODEFunc (void)
-    : m_fun (nullptr), m_jac (nullptr), m_reset (true) { }
+    : m_fcn (nullptr), m_jac (nullptr), m_reset (true) { }
 
   ODEFunc (ODERHSFunc f)
-    : m_fun (f), m_jac (nullptr), m_reset (true) { }
+    : m_fcn (f), m_jac (nullptr), m_reset (true) { }
 
   ODEFunc (ODERHSFunc f, ODEJacFunc j)
-    : m_fun (f), m_jac (j), m_reset (true) { }
+    : m_fcn (f), m_jac (j), m_reset (true) { }
 
   ODEFunc (const ODEFunc& a)
-    : m_fun (a.m_fun), m_jac (a.m_jac), m_reset (true) { }
+    : m_fcn (a.m_fcn), m_jac (a.m_jac), m_reset (true) { }
 
   ODEFunc& operator = (const ODEFunc& a)
   {
     if (this != &a)
       {
-        m_fun = a.m_fun;
+        m_fcn = a.m_fcn;
         m_jac = a.m_jac;
         m_reset = a.m_reset;
       }
@@ -63,11 +63,11 @@
 
   virtual ~ODEFunc (void) = default;
 
-  ODERHSFunc function (void) const { return m_fun; }
+  ODERHSFunc function (void) const { return m_fcn; }
 
   ODEFunc& set_function (ODERHSFunc f)
   {
-    m_fun = f;
+    m_fcn = f;
     m_reset = true;
     return *this;
   }
@@ -83,7 +83,7 @@
 
 protected:
 
-  ODERHSFunc m_fun;
+  ODERHSFunc m_fcn;
   ODEJacFunc m_jac;
 
   // This variable is TRUE when this object is constructed, and also
--- a/liboctave/numeric/eigs-base.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/eigs-base.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -1378,7 +1378,7 @@
 
 template <typename M>
 octave_idx_type
-EigsRealSymmetricFunc (EigsFunc fun, octave_idx_type n_arg,
+EigsRealSymmetricFunc (EigsFunc fcn, octave_idx_type n_arg,
                        const std::string& _typ, double sigma,
                        octave_idx_type k_arg, octave_idx_type p_arg,
                        octave_idx_type& info, Matrix& eig_vec,
@@ -1592,7 +1592,7 @@
                     mtmp(i, 0) = workd[i + iptr(0) - 1];
 
                   mtmp = utsolve (bt, permB, mtmp);
-                  ColumnVector y = fun (mtmp, err);
+                  ColumnVector y = fcn (mtmp, err);
 
                   if (err)
                     return false;
@@ -1615,7 +1615,7 @@
                       for (F77_INT i = 0; i < n; i++)
                         x(i) = dtmp[i];
 
-                      ColumnVector y = fun (x, err);
+                      ColumnVector y = fcn (x, err);
 
                       if (err)
                         return false;
@@ -1634,7 +1634,7 @@
                       for (F77_INT i = 0; i < n; i++)
                         x(i) = *ip2++;
 
-                      ColumnVector y = fun (x, err);
+                      ColumnVector y = fcn (x, err);
 
                       if (err)
                         return false;
@@ -1653,7 +1653,7 @@
               for (F77_INT i = 0; i < n; i++)
                 x(i) = *ip2++;
 
-              ColumnVector y = fun (x, err);
+              ColumnVector y = fcn (x, err);
 
               if (err)
                 return false;
@@ -2482,7 +2482,7 @@
 
 template <typename M>
 octave_idx_type
-EigsRealNonSymmetricFunc (EigsFunc fun, octave_idx_type n_arg,
+EigsRealNonSymmetricFunc (EigsFunc fcn, octave_idx_type n_arg,
                           const std::string& _typ, double sigmar,
                           octave_idx_type k_arg, octave_idx_type p_arg,
                           octave_idx_type& info, ComplexMatrix& eig_vec,
@@ -2701,7 +2701,7 @@
                     mtmp(i, 0) = workd[i + iptr(0) - 1];
 
                   mtmp = utsolve (bt, permB, mtmp);
-                  ColumnVector y = fun (mtmp, err);
+                  ColumnVector y = fcn (mtmp, err);
 
                   if (err)
                     return false;
@@ -2724,7 +2724,7 @@
                       for (F77_INT i = 0; i < n; i++)
                         x(i) = dtmp[i];
 
-                      ColumnVector y = fun (x, err);
+                      ColumnVector y = fcn (x, err);
 
                       if (err)
                         return false;
@@ -2743,7 +2743,7 @@
                       for (F77_INT i = 0; i < n; i++)
                         x(i) = *ip2++;
 
-                      ColumnVector y = fun (x, err);
+                      ColumnVector y = fcn (x, err);
 
                       if (err)
                         return false;
@@ -2762,7 +2762,7 @@
               for (F77_INT i = 0; i < n; i++)
                 x(i) = *ip2++;
 
-              ColumnVector y = fun (x, err);
+              ColumnVector y = fcn (x, err);
 
               if (err)
                 return false;
@@ -3550,7 +3550,7 @@
 
 template <typename M>
 octave_idx_type
-EigsComplexNonSymmetricFunc (EigsComplexFunc fun, octave_idx_type n_arg,
+EigsComplexNonSymmetricFunc (EigsComplexFunc fcn, octave_idx_type n_arg,
                              const std::string& _typ, Complex sigma,
                              octave_idx_type k_arg, octave_idx_type p_arg,
                              octave_idx_type& info, ComplexMatrix& eig_vec,
@@ -3770,7 +3770,7 @@
                     mtmp(i, 0) = workd[i + iptr(0) - 1];
 
                   mtmp = utsolve (bt, permB, mtmp);
-                  ComplexColumnVector y = fun (mtmp, err);
+                  ComplexColumnVector y = fcn (mtmp, err);
 
                   if (err)
                     return false;
@@ -3793,7 +3793,7 @@
                       for (F77_INT i = 0; i < n; i++)
                         x(i) = ctmp[i];
 
-                      ComplexColumnVector y = fun (x, err);
+                      ComplexColumnVector y = fcn (x, err);
 
                       if (err)
                         return false;
@@ -3812,7 +3812,7 @@
                       for (F77_INT i = 0; i < n; i++)
                         x(i) = *ip2++;
 
-                      ComplexColumnVector y = fun (x, err);
+                      ComplexColumnVector y = fcn (x, err);
 
                       if (err)
                         return false;
@@ -3831,7 +3831,7 @@
               for (F77_INT i = 0; i < n; i++)
                 x(i) = *ip2++;
 
-              ComplexColumnVector y = fun (x, err);
+              ComplexColumnVector y = fcn (x, err);
 
               if (err)
                 return false;
@@ -3965,7 +3965,7 @@
 template
 OCTAVE_API octave_idx_type
 EigsRealSymmetricFunc<Matrix>
-(EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigma,
+(EigsFunc fcn, octave_idx_type n, const std::string& _typ, double sigma,
    octave_idx_type k, octave_idx_type p, octave_idx_type& info,
    Matrix& eig_vec, ColumnVector& eig_val, const Matrix& _b,
    ColumnVector& permB, ColumnVector& resid, std::ostream& os, double tol,
@@ -3992,7 +3992,7 @@
 template
 OCTAVE_API octave_idx_type
 EigsRealNonSymmetricFunc<Matrix>
-(EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigmar,
+(EigsFunc fcn, octave_idx_type n, const std::string& _typ, double sigmar,
    octave_idx_type k, octave_idx_type p, octave_idx_type& info,
    ComplexMatrix& eig_vec, ComplexColumnVector& eig_val, const Matrix& _b,
    ColumnVector& permB, ColumnVector& resid, std::ostream& os, double tol,
@@ -4021,7 +4021,7 @@
 template
 OCTAVE_API octave_idx_type
 EigsRealSymmetricFunc<SparseMatrix>
-(EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigma,
+(EigsFunc fcn, octave_idx_type n, const std::string& _typ, double sigma,
    octave_idx_type k, octave_idx_type p, octave_idx_type& info,
    Matrix& eig_vec, ColumnVector& eig_val, const SparseMatrix& _b,
    ColumnVector& permB, ColumnVector& resid, std::ostream& os, double tol,
@@ -4048,7 +4048,7 @@
 template
 OCTAVE_API octave_idx_type
 EigsRealNonSymmetricFunc<SparseMatrix>
-(EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigmar,
+(EigsFunc fcn, octave_idx_type n, const std::string& _typ, double sigmar,
    octave_idx_type k, octave_idx_type p, octave_idx_type& info,
    ComplexMatrix& eig_vec, ComplexColumnVector& eig_val,
    const SparseMatrix& _b, ColumnVector& permB, ColumnVector& resid,
@@ -4077,7 +4077,7 @@
 template
 OCTAVE_API octave_idx_type
 EigsComplexNonSymmetricFunc<ComplexMatrix>
-(EigsComplexFunc fun, octave_idx_type n, const std::string& _typ, Complex sigma,
+(EigsComplexFunc fcn, octave_idx_type n, const std::string& _typ, Complex sigma,
    octave_idx_type k, octave_idx_type p, octave_idx_type& info,
    ComplexMatrix& eig_vec, ComplexColumnVector& eig_val,
    const ComplexMatrix& _b, ColumnVector& permB, ComplexColumnVector& cresid,
@@ -4106,7 +4106,7 @@
 template
 OCTAVE_API octave_idx_type
 EigsComplexNonSymmetricFunc<SparseComplexMatrix>
-(EigsComplexFunc fun, octave_idx_type n, const std::string& _typ, Complex sigma,
+(EigsComplexFunc fcn, octave_idx_type n, const std::string& _typ, Complex sigma,
    octave_idx_type k, octave_idx_type p, octave_idx_type& info,
    ComplexMatrix& eig_vec, ComplexColumnVector& eig_val,
    const SparseComplexMatrix& _b, ColumnVector& permB,
--- a/liboctave/numeric/eigs-base.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/eigs-base.h	Tue Nov 15 13:15:28 2022 -0800
@@ -64,7 +64,7 @@
 
 template <typename M>
 OCTAVE_API octave_idx_type
-EigsRealSymmetricFunc (EigsFunc fun, octave_idx_type n,
+EigsRealSymmetricFunc (EigsFunc fcn, octave_idx_type n,
                        const std::string& _typ, double sigma,
                        octave_idx_type k, octave_idx_type p,
                        octave_idx_type& info, Matrix& eig_vec,
@@ -96,7 +96,7 @@
 
 template <typename M>
 OCTAVE_API octave_idx_type
-EigsRealNonSymmetricFunc (EigsFunc fun, octave_idx_type n,
+EigsRealNonSymmetricFunc (EigsFunc fcn, octave_idx_type n,
                           const std::string& _typ, double sigmar,
                           octave_idx_type k, octave_idx_type p,
                           octave_idx_type& info, ComplexMatrix& eig_vec,
@@ -130,7 +130,7 @@
 
 template <typename M>
 OCTAVE_API octave_idx_type
-EigsComplexNonSymmetricFunc (EigsComplexFunc fun, octave_idx_type n,
+EigsComplexNonSymmetricFunc (EigsComplexFunc fcn, octave_idx_type n,
                              const std::string& _typ, Complex sigma,
                              octave_idx_type k, octave_idx_type p,
                              octave_idx_type& info, ComplexMatrix& eig_vec,
--- a/liboctave/numeric/gsvd.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/gsvd.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -570,7 +570,8 @@
 
       if (info < 0)
         (*current_liboctave_error_handler)
-          ("*ggsvd.f: argument %d illegal", -info);
+          ("*ggsvd.f: argument %" OCTAVE_F77_INT_TYPE_FORMAT " illegal",
+           -info);
 
       if (info > 0)
         (*current_liboctave_error_handler)
--- a/liboctave/numeric/lo-specfun.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/lo-specfun.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -138,24 +138,12 @@
 
       F77_INT id = (deriv ? 1 : 0);
       F77_INT nz, t_ierr;
+      F77_INT sc = (scaled ? 2 : 1);
 
-      F77_FUNC (zairy, ZAIRY) (zr, zi, id, 2, ar, ai, nz, t_ierr);
+      F77_FUNC (zairy, ZAIRY) (zr, zi, id, sc, ar, ai, nz, t_ierr);
 
       ierr = t_ierr;
 
-      if (! scaled)
-        {
-          Complex expz = exp (- 2.0 / 3.0 * z * sqrt (z));
-
-          double rexpz = expz.real ();
-          double iexpz = expz.imag ();
-
-          double tmp = ar*rexpz - ai*iexpz;
-
-          ai = ar*iexpz + ai*rexpz;
-          ar = tmp;
-        }
-
       if (zi == 0.0 && (! scaled || zr >= 0.0))
         ai = 0.0;
 
@@ -204,8 +192,9 @@
 
       F77_INT id = (deriv ? 1 : 0);
       F77_INT nz, t_ierr;
+      F77_INT sc = (scaled ? 2 : 1);
 
-      F77_FUNC (cairy, CAIRY) (F77_CONST_CMPLX_ARG (&z), id, 2,
+      F77_FUNC (cairy, CAIRY) (F77_CONST_CMPLX_ARG (&z), id, sc,
                                F77_CMPLX_ARG (&a), nz, t_ierr);
 
       ierr = t_ierr;
@@ -213,19 +202,6 @@
       float ar = a.real ();
       float ai = a.imag ();
 
-      if (! scaled)
-        {
-          FloatComplex expz = exp (- 2.0f / 3.0f * z * sqrt (z));
-
-          float rexpz = expz.real ();
-          float iexpz = expz.imag ();
-
-          float tmp = ar*rexpz - ai*iexpz;
-
-          ai = ar*iexpz + ai*rexpz;
-          ar = tmp;
-        }
-
       if (z.imag () == 0.0 && (! scaled || z.real () >= 0.0))
         ai = 0.0;
 
@@ -1384,24 +1360,12 @@
 
       F77_INT id = (deriv ? 1 : 0);
       F77_INT t_ierr;
+      F77_INT sc = (scaled ? 2 : 1);
 
-      F77_FUNC (zbiry, ZBIRY) (zr, zi, id, 2, ar, ai, t_ierr);
+      F77_FUNC (zbiry, ZBIRY) (zr, zi, id, sc, ar, ai, t_ierr);
 
       ierr = t_ierr;
 
-      if (! scaled)
-        {
-          Complex expz = exp (std::abs (std::real (2.0 / 3.0 * z * sqrt (z))));
-
-          double rexpz = expz.real ();
-          double iexpz = expz.imag ();
-
-          double tmp = ar*rexpz - ai*iexpz;
-
-          ai = ar*iexpz + ai*rexpz;
-          ar = tmp;
-        }
-
       if (zi == 0.0 && (! scaled || zr >= 0.0))
         ai = 0.0;
 
@@ -1450,8 +1414,9 @@
 
       F77_INT id = (deriv ? 1 : 0);
       F77_INT t_ierr;
+      F77_INT sc = (scaled ? 2 : 1);
 
-      F77_FUNC (cbiry, CBIRY) (F77_CONST_CMPLX_ARG (&z), id, 2,
+      F77_FUNC (cbiry, CBIRY) (F77_CONST_CMPLX_ARG (&z), id, sc,
                                F77_CMPLX_ARG (&a), t_ierr);
 
       ierr = t_ierr;
@@ -1459,20 +1424,6 @@
       float ar = a.real ();
       float ai = a.imag ();
 
-      if (! scaled)
-        {
-          FloatComplex expz
-            = exp (std::abs (std::real (2.0f / 3.0f * z * sqrt (z))));
-
-          float rexpz = expz.real ();
-          float iexpz = expz.imag ();
-
-          float tmp = ar*rexpz - ai*iexpz;
-
-          ai = ar*iexpz + ai*rexpz;
-          ar = tmp;
-        }
-
       if (z.imag () == 0.0 && (! scaled || z.real () >= 0.0))
         ai = 0.0;
 
--- a/liboctave/numeric/oct-fftw.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/oct-fftw.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -80,11 +80,16 @@
     if (! init_ret)
       (*current_liboctave_error_handler) ("Error initializing FFTW threads");
 
-    // Use number of processors available to the current process
-    // This can be later changed with fftw ("threads", nthreads).
+    // Check number of processors available to the current process
     m_nthreads =
       octave_num_processors_wrapper (OCTAVE_NPROC_CURRENT_OVERRIDABLE);
 
+    // Limit number of threads to 3 by default
+    // See: https://octave.discourse.group/t/3121
+    // This can be later changed with fftw ("threads", nthreads).
+    if (m_nthreads > 3)
+      m_nthreads = 3;
+
     fftw_plan_with_nthreads (m_nthreads);
 #endif
 
--- a/liboctave/numeric/oct-norm.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/oct-norm.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -320,28 +320,28 @@
   }
 
   // now the dispatchers
-#define DEFINE_DISPATCHER(FUNC_NAME, ARG_TYPE, RES_TYPE)        \
+#define DEFINE_DISPATCHER(FCN_NAME, ARG_TYPE, RES_TYPE)         \
   template <typename T, typename R>                             \
-  RES_TYPE FUNC_NAME (const ARG_TYPE& v, R p)                   \
+  RES_TYPE FCN_NAME (const ARG_TYPE& v, R p)                    \
   {                                                             \
     RES_TYPE res;                                               \
     if (p == 2)                                                 \
-      FUNC_NAME (v, res, norm_accumulator_2<R> ());             \
+      FCN_NAME (v, res, norm_accumulator_2<R> ());              \
     else if (p == 1)                                            \
-      FUNC_NAME (v, res, norm_accumulator_1<R> ());             \
+      FCN_NAME (v, res, norm_accumulator_1<R> ());              \
     else if (lo_ieee_isinf (p))                                 \
       {                                                         \
         if (p > 0)                                              \
-          FUNC_NAME (v, res, norm_accumulator_inf<R> ());       \
+          FCN_NAME (v, res, norm_accumulator_inf<R> ());        \
         else                                                    \
-          FUNC_NAME (v, res, norm_accumulator_minf<R> ());      \
+          FCN_NAME (v, res, norm_accumulator_minf<R> ());       \
       }                                                         \
     else if (p == 0)                                            \
-      FUNC_NAME (v, res, norm_accumulator_0<R> ());             \
+      FCN_NAME (v, res, norm_accumulator_0<R> ());              \
     else if (p > 0)                                             \
-      FUNC_NAME (v, res, norm_accumulator_p<R> (p));            \
+      FCN_NAME (v, res, norm_accumulator_p<R> (p));             \
     else                                                        \
-      FUNC_NAME (v, res, norm_accumulator_mp<R> (p));           \
+      FCN_NAME (v, res, norm_accumulator_mp<R> (p));            \
     return res;                                                 \
   }
 
@@ -564,7 +564,7 @@
 
   // and finally, here's what we've promised in the header file
 
-#define DEFINE_XNORM_FUNCS(PREFIX, RTYPE)                               \
+#define DEFINE_XNORM_FCNS(PREFIX, RTYPE)                                \
   RTYPE xnorm (const PREFIX##ColumnVector& x, RTYPE p)                  \
   {                                                                     \
     return vector_norm (x, p);                                          \
@@ -582,10 +582,10 @@
     return vector_norm (x, static_cast<RTYPE> (2));                     \
   }
 
-  DEFINE_XNORM_FUNCS(, double)
-  DEFINE_XNORM_FUNCS(Complex, double)
-  DEFINE_XNORM_FUNCS(Float, float)
-  DEFINE_XNORM_FUNCS(FloatComplex, float)
+  DEFINE_XNORM_FCNS(, double)
+  DEFINE_XNORM_FCNS(Complex, double)
+  DEFINE_XNORM_FCNS(Float, float)
+  DEFINE_XNORM_FCNS(FloatComplex, float)
 
   // this is needed to avoid copying the sparse matrix for xfrobnorm
   template <typename T, typename R>
@@ -598,7 +598,7 @@
     res = acc;
   }
 
-#define DEFINE_XNORM_SPARSE_FUNCS(PREFIX, RTYPE)                \
+#define DEFINE_XNORM_SPARSE_FCNS(PREFIX, RTYPE)                 \
   RTYPE xnorm (const Sparse##PREFIX##Matrix& x, RTYPE p)        \
   {                                                             \
     return matrix_norm (x, p, PREFIX##Matrix ());               \
@@ -610,10 +610,10 @@
     return res;                                                 \
   }
 
-  DEFINE_XNORM_SPARSE_FUNCS(, double)
-  DEFINE_XNORM_SPARSE_FUNCS(Complex, double)
+  DEFINE_XNORM_SPARSE_FCNS(, double)
+  DEFINE_XNORM_SPARSE_FCNS(Complex, double)
 
-#define DEFINE_COLROW_NORM_FUNCS(PREFIX, RPREFIX, RTYPE)        \
+#define DEFINE_COLROW_NORM_FCNS(PREFIX, RPREFIX, RTYPE)         \
   RPREFIX##RowVector                                            \
   xcolnorms (const PREFIX##Matrix& m, RTYPE p)                  \
   {                                                             \
@@ -625,11 +625,11 @@
     return row_norms (m, p);                                    \
   }                                                             \
 
-  DEFINE_COLROW_NORM_FUNCS(, , double)
-  DEFINE_COLROW_NORM_FUNCS(Complex, , double)
-  DEFINE_COLROW_NORM_FUNCS(Float, Float, float)
-  DEFINE_COLROW_NORM_FUNCS(FloatComplex, Float, float)
+  DEFINE_COLROW_NORM_FCNS(, , double)
+  DEFINE_COLROW_NORM_FCNS(Complex, , double)
+  DEFINE_COLROW_NORM_FCNS(Float, Float, float)
+  DEFINE_COLROW_NORM_FCNS(FloatComplex, Float, float)
 
-  DEFINE_COLROW_NORM_FUNCS(Sparse, , double)
-  DEFINE_COLROW_NORM_FUNCS(SparseComplex, , double)
+  DEFINE_COLROW_NORM_FCNS(Sparse, , double)
+  DEFINE_COLROW_NORM_FCNS(SparseComplex, , double)
 }
--- a/liboctave/numeric/sparse-qr.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/sparse-qr.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -509,9 +509,9 @@
       octave_idx_type nr = a.rows ();
       octave_idx_type nc = a.cols ();
 
-      if (nr <= 0 || nc <= 0)
+      if (nr < 0 || nc < 0)
         (*current_liboctave_error_handler)
-          ("matrix dimension with negative or zero size");
+          ("matrix dimension with negative size");
 
       if (order < 0 || order > 9)
         (*current_liboctave_error_handler)
@@ -707,9 +707,9 @@
       if (nrows != b_nr)
         (*current_liboctave_error_handler)
           ("sparse_qr: matrix dimension mismatch");
-      else if (b_nc <= 0 || b_nr <= 0)
+      else if (b_nc < 0 || b_nr < 0)
         (*current_liboctave_error_handler)
-          ("sparse_qr: matrix dimension with negative or zero size");
+          ("sparse_qr: matrix dimension with negative size");
 
       cholmod_dense *QTB;  // Q' * B
       cholmod_dense B = rod2rcd (b);
@@ -904,9 +904,9 @@
       octave_idx_type b_nc = b.cols ();
       Matrix x (ncols, b_nc);  // X = m_E'*(m_R\(Q'*B))
 
-      if (nrows <= 0 || ncols <= 0 || b_nc <= 0 || b_nr <= 0)
+      if (nrows < 0 || ncols < 0 || b_nc < 0 || b_nr < 0)
         (*current_liboctave_error_handler)
-          ("matrix dimension with negative or zero size");
+          ("matrix dimension with negative size");
 
       if (nrows < 0 || ncols < 0 || nrows != b_nr)
         (*current_liboctave_error_handler) ("matrix dimension mismatch");
@@ -1444,9 +1444,9 @@
       octave_idx_type nr = a.rows ();
       octave_idx_type nc = a.cols ();
 
-      if (nr <= 0 || nc <= 0)
+      if (nr < 0 || nc < 0)
         (*current_liboctave_error_handler)
-          ("matrix dimension with negative or zero size");
+          ("matrix dimension with negative size");
 
       if (order < 0 || order > 9)
         (*current_liboctave_error_handler)
@@ -1643,9 +1643,9 @@
       if (nrows != b_nr)
         (*current_liboctave_error_handler) ("matrix dimension mismatch");
 
-      if (b_nc <= 0 || b_nr <= 0)
+      if (b_nc < 0 || b_nr < 0)
         (*current_liboctave_error_handler)
-          ("matrix dimension with negative or zero size");
+          ("matrix dimension with negative size");
 
       cholmod_dense *QTB;  // Q' * B
       cholmod_dense B = cod2ccd (b);
@@ -3118,9 +3118,9 @@
 
       int order = cxsparse_defaults<SPARSE_T>::order;
 
-      if (nr <= 0 || nc <= 0 || b_nc <= 0 || b_nr <= 0)
+      if (nr < 0 || nc < 0 || b_nc < 0 || b_nr < 0)
         (*current_liboctave_error_handler)
-          ("matrix dimension with negative or zero size");
+          ("matrix dimension with negative size");
 
       if ( nr != b_nr)
         (*current_liboctave_error_handler)
--- a/liboctave/numeric/sparse-qr.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/numeric/sparse-qr.h	Tue Nov 15 13:15:28 2022 -0800
@@ -111,13 +111,11 @@
       std::shared_ptr<sparse_qr_rep> m_rep;
     };
 
-#if defined (__clang__) || defined (_WIN32)
     // extern instantiations with set visibility/export/import attribute
 
-    extern template class OCTAVE_API sparse_qr<SparseMatrix>;
+    extern template class OCTAVE_EXTERN_TEMPLATE_API sparse_qr<SparseMatrix>;
 
-    extern template class OCTAVE_API sparse_qr<SparseComplexMatrix>;
-#endif
+    extern template class OCTAVE_EXTERN_TEMPLATE_API sparse_qr<SparseComplexMatrix>;
 
     // Provide qrsolve for backward compatibility.
 
--- a/liboctave/operators/mx-inlines.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/operators/mx-inlines.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -213,12 +213,12 @@
       r[i] = xx OP (NOT2 logical_value (y[i]));                         \
   }
 
-DEFMXBOOLOP (mx_inline_and, , &, )
-DEFMXBOOLOP (mx_inline_or, , |, )
-DEFMXBOOLOP (mx_inline_not_and, !, &, )
-DEFMXBOOLOP (mx_inline_not_or, !, |, )
-DEFMXBOOLOP (mx_inline_and_not, , &, !)
-DEFMXBOOLOP (mx_inline_or_not, , |, !)
+DEFMXBOOLOP (mx_inline_and, , &&, )
+DEFMXBOOLOP (mx_inline_or, , ||, )
+DEFMXBOOLOP (mx_inline_not_and, !, &&, )
+DEFMXBOOLOP (mx_inline_not_or, !, ||, )
+DEFMXBOOLOP (mx_inline_and_not, , &&, !)
+DEFMXBOOLOP (mx_inline_or_not, , ||, !)
 
 template <typename X>
 inline void
@@ -441,18 +441,18 @@
 
 // Arbitrary function appliers.
 // The function is a template parameter to enable inlining.
-template <typename R, typename X, R fun (X x)>
+template <typename R, typename X, R fcn (X x)>
 inline void mx_inline_map (std::size_t n, R *r, const X *x)
 {
   for (std::size_t i = 0; i < n; i++)
-    r[i] = fun (x[i]);
+    r[i] = fcn (x[i]);
 }
 
-template <typename R, typename X, R fun (const X& x)>
+template <typename R, typename X, R fcn (const X& x)>
 inline void mx_inline_map (std::size_t n, R *r, const X *x)
 {
   for (std::size_t i = 0; i < n; i++)
-    r[i] = fun (x[i]);
+    r[i] = fcn (x[i]);
 }
 
 // Appliers.  Since these call the operation just once, we pass it as
@@ -470,18 +470,18 @@
 
 // Shortcuts for applying mx_inline_map.
 
-template <typename R, typename X, R fun (X)>
+template <typename R, typename X, R fcn (X)>
 inline Array<R>
 do_mx_unary_map (const Array<X>& x)
 {
-  return do_mx_unary_op<R, X> (x, mx_inline_map<R, X, fun>);
+  return do_mx_unary_op<R, X> (x, mx_inline_map<R, X, fcn>);
 }
 
-template <typename R, typename X, R fun (const X&)>
+template <typename R, typename X, R fcn (const X&)>
 inline Array<R>
 do_mx_unary_map (const Array<X>& x)
 {
-  return do_mx_unary_op<R, X> (x, mx_inline_map<R, X, fun>);
+  return do_mx_unary_op<R, X> (x, mx_inline_map<R, X, fcn>);
 }
 
 template <typename R>
--- a/liboctave/system/file-ops.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/system/file-ops.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -416,6 +416,59 @@
       return status;
     }
 
+    int recursive_mkdir (const std::string& name, mode_t mode)
+    {
+      std::string msg;
+      return recursive_mkdir (name, mode, msg);
+    }
+
+    int recursive_mkdir (const std::string& name, mode_t mode, std::string& msg)
+    {
+      int status;
+
+      // account for root in absolute directories
+#if defined (OCTAVE_USE_WINDOWS_API)
+      // root of current drive
+      std::size_t skip_root = 0;
+      if (name.size () > 1)
+        {
+          if (name[1] == ':')
+            // drive root (e.g., C:\)
+            skip_root = 2;
+          else if (file_ops::is_dir_sep (name[0])
+                   && file_ops::is_dir_sep (name[1]))
+            {
+              // UNC path root (e.g., \\SERVER\share\)
+              skip_root = name.find_first_of (file_ops::dir_sep_chars (), 2);
+              skip_root = name.find_first_of (file_ops::dir_sep_chars (),
+                                              skip_root + 1);
+            }
+        }
+
+      std::size_t delim = name.find_first_of (file_ops::dir_sep_chars (),
+                                              skip_root + 1);
+#else
+      std::size_t delim = name.find_first_of (file_ops::dir_sep_chars (), 1);
+#endif
+
+      // iterate over all componenents of NAME and make directories
+      while (delim != std::string::npos)
+        {
+          std::string base = name.substr (0, delim);
+          sys::file_stat fs (base);
+          if (! fs.is_dir ())
+          {
+            status = mkdir (base, mode, msg);
+            if (status < 0)
+              return status;
+          }
+          delim = name.find_first_of (file_ops::dir_sep_chars (), delim + 1);
+        }
+
+      // finally, create requested directory
+      return mkdir (name, mode, msg);
+    }
+
     int mkfifo (const std::string& nm, mode_t md)
     {
       std::string msg;
--- a/liboctave/system/file-ops.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/system/file-ops.h	Tue Nov 15 13:15:28 2022 -0800
@@ -122,6 +122,12 @@
     mkdir (const std::string&, mode_t, std::string&);
 
     extern OCTAVE_API int
+    recursive_mkdir (const std::string& name, mode_t mode);
+
+    extern OCTAVE_API int
+    recursive_mkdir (const std::string& name, mode_t mode, std::string& msg);
+
+    extern OCTAVE_API int
     mkfifo (const std::string&, mode_t);
 
     extern OCTAVE_API int
--- a/liboctave/system/lo-sysdep.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/system/lo-sysdep.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -382,6 +382,30 @@
 #endif
     }
 
+    std::FILE *
+    fopen_tmp (const std::string& name, const std::string& mode)
+    {
+#if defined (OCTAVE_USE_WINDOWS_API)
+
+      // Append "D" to the mode string to indicate that this is a temporary
+      // file that should be deleted when the last open handle is closed.
+      std::string tmp_mode = mode + "D";
+
+      return std::fopen (name.c_str (), tmp_mode.c_str ());
+
+#else
+
+      std::FILE *fptr = std::fopen (name.c_str (), mode.c_str ());
+
+      // From gnulib: This relies on the Unix semantics that a file is not
+      // really removed until it is closed.
+      octave_unlink_wrapper (name.c_str ());
+
+      return fptr;
+
+#endif
+    }
+
     std::fstream
     fstream (const std::string& filename, const std::ios::openmode mode)
     {
@@ -699,17 +723,19 @@
         = (oct_ascii_dir + file_ops::dir_sep_str ()
            + crypto::hash ("SHA1", orig_file_name));
 
+      // FIXME: This is just to check if the file exists.  Use a more efficient
+      // method.
       std::string abs_filename_hash = canonicalize_file_name (filename_hash);
 
       if (! abs_filename_hash.empty ())
         sys::unlink (filename_hash);
 
-      wchar_t w_filename_hash[filename_hash.length ()+1] = {0};
+      // At this point, we know that we have only ASCII characters.
+      // So instead of converting, just copy the characters to std::wstring.
+      std::wstring w_filename_hash (filename_hash.begin (),
+                                    filename_hash.end ());
 
-      for (std::size_t i=0; i < filename_hash.length (); i++)
-        w_filename_hash[i] = filename_hash.at (i);
-
-      if (CreateHardLinkW (w_filename_hash, w_orig_file_name, nullptr))
+      if (CreateHardLinkW (w_filename_hash.c_str (), w_orig_file_name, nullptr))
         return filename_hash;
 
 #else
--- a/liboctave/system/lo-sysdep.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/system/lo-sysdep.h	Tue Nov 15 13:15:28 2022 -0800
@@ -54,6 +54,9 @@
     extern OCTAVE_API std::FILE *
     fopen (const std::string& name, const std::string& mode);
 
+    extern OCTAVE_API std::FILE *
+    fopen_tmp (const std::string& name, const std::string& mode);
+
     extern OCTAVE_API std::fstream
     fstream (const std::string& name,
              const std::ios::openmode mode = std::ios::in | std::ios::out);
--- a/liboctave/system/oct-env.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/system/oct-env.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -207,11 +207,12 @@
     std::string
     env::do_get_temp_directory (void) const
     {
-      std::string tempd;
+      std::string tempd = do_getenv ("TMPDIR");
 
 #if defined (__MINGW32__) || defined (_MSC_VER)
 
-      tempd = do_getenv ("TEMP");
+      if (tempd.empty ())
+        tempd = do_getenv ("TEMP");
 
       if (tempd.empty ())
         tempd = do_getenv ("TMP");
@@ -228,7 +229,8 @@
 
 #else
 
-      tempd = do_getenv ("TMP");
+      if (tempd.empty ())
+        tempd = do_getenv ("TMP");
 
 #if defined (P_tmpdir)
       if (tempd.empty ())
--- a/liboctave/util/cmd-hist.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/cmd-hist.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -370,7 +370,8 @@
             if (! hist_dir.empty ())
               {
                 sys::file_stat fs (hist_dir);
-                if (! fs.is_dir () && (sys::mkdir (hist_dir, 0777) < 0))
+                if (! fs.is_dir ()
+                    && (sys::recursive_mkdir (hist_dir, 0777) < 0))
                   (*current_liboctave_error_handler)
                     ("%s: Could not create directory \"%s\" for history",
                      "gnu_history::do_write", hist_dir.c_str ());
--- a/liboctave/util/f2c-main.c	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-////////////////////////////////////////////////////////////////////////
-//
-// Copyright (C) 1996-2022 The Octave Project Developers
-//
-// See the file COPYRIGHT.md in the top-level directory of this
-// distribution or <https://octave.org/copyright/>.
-//
-// This file is part of Octave.
-//
-// Octave is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Octave is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Octave; see the file COPYING.  If not, see
-// <https://www.gnu.org/licenses/>.
-//
-////////////////////////////////////////////////////////////////////////
-
-#if defined (HAVE_CONFIG_H)
-#  include "config.h"
-#endif
-
-#include <assert.h>
-
-/* Dummy Fortran main declaration, needed in order to link to some
-   Fortran libraries.  See the AC_F77_DUMMY_MAIN macro documentation.
-   This function should never be called. */
-
-#if defined (F77_DUMMY_MAIN)
-#  if defined (__cplusplus)
-extern "C"
-#  endif
-int F77_DUMMY_MAIN () { assert (0); return 1; }
-#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/util/f77-dummy-main.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 1996-2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+
+#include <cassert>
+
+// Dummy Fortran main declaration, needed in order to link to some
+// Fortran libraries.  See the AC_F77_DUMMY_MAIN macro documentation.
+// This function should never be called.
+
+#if defined (F77_DUMMY_MAIN)
+
+extern "C"
+int
+F77_DUMMY_MAIN (void)
+{
+  assert (0);
+
+  return 1;
+}
+
+#endif
--- a/liboctave/util/lo-array-errwarn.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/lo-array-errwarn.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -301,21 +301,6 @@
            "matrix singular to machine precision, rcond = %g", rcond);
       }
   }
-
-  // DEPRECATED in Octave 6.
-
-  // Complain of an index that is out of range, but we don't know matrix size
-  void
-  err_index_out_of_range (int nd, int dim, octave_idx_type idx,
-                          octave_idx_type ext)
-  {
-    // The dim_vector setting here doesn't really make sense.  However,
-    // this function has been deprecated and will be removed in version
-    // 8, so there's no need to attempt to fix it.
-
-    throw out_of_range (std::to_string (idx), nd, dim, ext,
-                        dim_vector (1, 1, 1, 1, 1, 1, 1));
-  }
 }
 
 /* Tests in test/index.tst */
--- a/liboctave/util/lo-array-errwarn.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/lo-array-errwarn.h	Tue Nov 15 13:15:28 2022 -0800
@@ -131,13 +131,6 @@
   err_index_out_of_range (int ndims, int dim, octave_idx_type idx,
                           octave_idx_type ext, const dim_vector& dv);
 
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-  OCTAVE_DEPRECATED (6, "use err_index_out_of_range (int, int, octave_idx_type, octave_idx_type, const dim_vector&) instead")
-  OCTAVE_NORETURN extern OCTAVE_API void
-  err_index_out_of_range (int ndims, int dim, octave_idx_type idx,
-                          octave_idx_type ext);
-#endif
-
   OCTAVE_NORETURN extern OCTAVE_API void
   err_del_index_out_of_range (bool is1d, octave_idx_type iext,
                               octave_idx_type ext);
--- a/liboctave/util/lo-cutils.c	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-////////////////////////////////////////////////////////////////////////
-//
-// Copyright (C) 2000-2022 The Octave Project Developers
-//
-// See the file COPYRIGHT.md in the top-level directory of this
-// distribution or <https://octave.org/copyright/>.
-//
-// This file is part of Octave.
-//
-// Octave is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Octave is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Octave; see the file COPYING.  If not, see
-// <https://www.gnu.org/licenses/>.
-//
-////////////////////////////////////////////////////////////////////////
-
-#if defined (HAVE_CONFIG_H)
-#  include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "lo-cutils.h"
-
-OCTAVE_API void
-octave_qsort (void *base, size_t n, size_t size,
-              int (*cmp) (const void *, const void *))
-{
-  qsort (base, n, size, cmp);
-}
-
-OCTAVE_API int
-octave_strcasecmp (const char *s1, const char *s2)
-{
-  return strcasecmp (s1, s2);
-}
-
-OCTAVE_API int
-octave_strncasecmp (const char *s1, const char *s2, size_t n)
-{
-  return strncasecmp (s1, s2, n);
-}
--- a/liboctave/util/lo-cutils.h	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-////////////////////////////////////////////////////////////////////////
-//
-// Copyright (C) 2012-2022 The Octave Project Developers
-//
-// See the file COPYRIGHT.md in the top-level directory of this
-// distribution or <https://octave.org/copyright/>.
-//
-// This file is part of Octave.
-//
-// Octave is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Octave is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Octave; see the file COPYING.  If not, see
-// <https://www.gnu.org/licenses/>.
-//
-////////////////////////////////////////////////////////////////////////
-
-#if ! defined (octave_lo_cutils_h)
-#define octave_lo_cutils_h 1
-
-#include "octave-config.h"
-
-#if defined (__cplusplus)
-#include <cstddef>
-using std::size_t;
-extern "C" {
-#else
-#include <stddef.h>
-#endif
-
-OCTAVE_API void
-octave_qsort (void *base, size_t n, size_t size,
-              int (*cmp) (const void *, const void *));
-
-OCTAVE_API int
-octave_strcasecmp (const char *s1, const char *s2);
-
-OCTAVE_API int
-octave_strncasecmp (const char *s1, const char *s2, size_t n);
-
-#if defined (__cplusplus)
-}
-#endif
-
-#endif
--- a/liboctave/util/lo-regexp.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/lo-regexp.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -32,10 +32,19 @@
 #include <string>
 #include <vector>
 
-#if defined (HAVE_PCRE_H)
-#  include <pcre.h>
-#elif defined (HAVE_PCRE_PCRE_H)
-#  include <pcre/pcre.h>
+#if defined (HAVE_PCRE2_H) || defined (HAVE_PCRE2_PCRE2_H)
+#  define PCRE2_CODE_UNIT_WIDTH 8
+#  if defined (HAVE_PCRE2_H)
+#    include <pcre2.h>
+#  elif defined (HAVE_PCRE2_PCRE2_H)
+#    include <pcre2/pcre2.h>
+#  endif
+#elif defined (HAVE_PCRE_H) || defined (HAVE_PCRE_PCRE_H)
+#  if defined (HAVE_PCRE_H)
+#    include <pcre.h>
+#  elif defined (HAVE_PCRE_PCRE_H)
+#    include <pcre/pcre.h>
+#  endif
 #endif
 
 #include "Matrix.h"
@@ -46,6 +55,47 @@
 #include "lo-regexp.h"
 #include "str-vec.h"
 #include "unistr-wrappers.h"
+#include "unwind-prot.h"
+
+#if defined (HAVE_PCRE2)
+typedef pcre2_code octave_pcre_code;
+typedef PCRE2_SIZE OCTAVE_PCRE_SIZE;
+void (*octave_pcre_code_free) (octave_pcre_code *) = pcre2_code_free;
+#  define OCTAVE_PCRE_CASELESS PCRE2_CASELESS
+#  define OCTAVE_PCRE_DOTALL PCRE2_DOTALL
+#  define OCTAVE_PCRE_MULTILINE PCRE2_MULTILINE
+#  define OCTAVE_PCRE_EXTENDED PCRE2_EXTENDED
+#  define OCTAVE_PCRE_UTF PCRE2_UTF
+#  define OCTAVE_PCRE_INFO_CAPTURECOUNT PCRE2_INFO_CAPTURECOUNT
+#  define OCTAVE_PCRE_INFO_NAMECOUNT PCRE2_INFO_NAMECOUNT
+#  define OCTAVE_PCRE_INFO_NAMEENTRYSIZE PCRE2_INFO_NAMEENTRYSIZE
+#  define OCTAVE_PCRE_INFO_NAMETABLE PCRE2_INFO_NAMETABLE
+#elif defined (HAVE_PCRE)
+typedef pcre octave_pcre_code;
+typedef int OCTAVE_PCRE_SIZE;
+void (*octave_pcre_code_free) (void *) = pcre_free;
+#  define OCTAVE_PCRE_CASELESS PCRE_CASELESS
+#  define OCTAVE_PCRE_DOTALL PCRE_DOTALL
+#  define OCTAVE_PCRE_MULTILINE PCRE_MULTILINE
+#  define OCTAVE_PCRE_EXTENDED PCRE_EXTENDED
+#  define OCTAVE_PCRE_UTF PCRE_UTF8
+#  define OCTAVE_PCRE_INFO_CAPTURECOUNT PCRE_INFO_CAPTURECOUNT
+#  define OCTAVE_PCRE_INFO_NAMECOUNT PCRE_INFO_NAMECOUNT
+#  define OCTAVE_PCRE_INFO_NAMEENTRYSIZE PCRE_INFO_NAMEENTRYSIZE
+#  define OCTAVE_PCRE_INFO_NAMETABLE PCRE_INFO_NAMETABLE
+#else
+#  error "PCRE2 or PCRE library is required to build Octave"
+#endif
+
+static inline int
+octave_pcre_pattern_info (const octave_pcre_code *code, int what, void *where)
+{
+#if defined (HAVE_PCRE2)
+  return pcre2_pattern_info (code, what, where);
+#else
+  return pcre_fullinfo (code, nullptr, what, where);
+#endif
+}
 
 namespace octave
 {
@@ -64,8 +114,7 @@
   void
   regexp::free (void)
   {
-    if (m_data)
-      pcre_free (static_cast<pcre *> (m_data));
+    octave_pcre_code_free (static_cast<octave_pcre_code *> (m_code));
   }
 
   void
@@ -83,11 +132,15 @@
 
     while ((new_pos = m_pattern.find ("(?", pos)) != std::string::npos)
       {
+        std::size_t tmp_pos;
         if (m_pattern.size () > new_pos + 2
             && m_pattern.at (new_pos + 2) == '<'
             && ! (m_pattern.size () > new_pos + 3
                   && (m_pattern.at (new_pos + 3) == '='
-                      || m_pattern.at (new_pos + 3) == '!')))
+                      || m_pattern.at (new_pos + 3) == '!'))
+            && (tmp_pos = m_pattern.find_first_of ('>', new_pos))
+               != std::string::npos
+            && m_pattern.find_first_of (')', tmp_pos) != std::string::npos)
           {
             // The syntax of named tokens in pcre is "(?P<name>...)" while
             // we need a syntax "(?<name>...)", so fix that here.  Also an
@@ -98,12 +151,6 @@
             // that here by replacing name tokens by dummy names, and dealing
             // with the dummy names later.
 
-            std::size_t tmp_pos = m_pattern.find_first_of ('>', new_pos);
-
-            if (tmp_pos == std::string::npos)
-              (*current_liboctave_error_handler)
-                ("regexp: syntax error in pattern");
-
             std::string tmp_name
               = m_pattern.substr (new_pos+3, tmp_pos-new_pos-3);
 
@@ -231,22 +278,50 @@
     while ((pos = buf_str.find ('\0')) != std::string::npos)
       buf_str.replace (pos, 1, "\\000");
 
+    int pcre_options
+      = (  (m_options.case_insensitive () ? OCTAVE_PCRE_CASELESS : 0)
+         | (m_options.dotexceptnewline () ? 0 : OCTAVE_PCRE_DOTALL)
+         | (m_options.lineanchors () ? OCTAVE_PCRE_MULTILINE : 0)
+         | (m_options.freespacing () ? OCTAVE_PCRE_EXTENDED : 0)
+         | OCTAVE_PCRE_UTF);
+
+#if defined (HAVE_PCRE2)
+    PCRE2_SIZE erroffset;
+    int errnumber;
+
+    m_code = pcre2_compile (reinterpret_cast<PCRE2_SPTR> (buf_str.c_str ()),
+                            PCRE2_ZERO_TERMINATED, pcre_options,
+                            &errnumber, &erroffset, nullptr);
+
+    if (! m_code)
+      {
+        // PCRE docs say:
+        //
+        //   If the buffer is too small, the message is truncated (but
+        //   still with a trailing zero), and the negative error code
+        //   PCRE2_ERROR_NOMEMORY is returned. None of the messages are
+        //   very long; a buffer size of 120 code units is ample.
+        //
+        // so we assume that 256 will be large enough to avoid truncated
+        // messages.
+
+        PCRE2_UCHAR err [256];
+        pcre2_get_error_message (errnumber, err, sizeof (err));
+        (*current_liboctave_error_handler)
+          ("%s: %s at position %zu of expression", m_who.c_str (), err,
+           erroffset);
+      }
+#else
     const char *err;
     int erroffset;
 
-    int pcre_options
-      = (  (m_options.case_insensitive () ? PCRE_CASELESS : 0)
-         | (m_options.dotexceptnewline () ? 0 : PCRE_DOTALL)
-         | (m_options.lineanchors () ? PCRE_MULTILINE : 0)
-         | (m_options.freespacing () ? PCRE_EXTENDED : 0)
-         | PCRE_UTF8);
-
-    m_data = pcre_compile (buf_str.c_str (), pcre_options,
+    m_code = pcre_compile (buf_str.c_str (), pcre_options,
                            &err, &erroffset, nullptr);
 
-    if (! m_data)
+    if (! m_code)
       (*current_liboctave_error_handler)
         ("%s: %s at position %d of expression", m_who.c_str (), err, erroffset);
+#endif
   }
 
   regexp::match_data
@@ -268,14 +343,17 @@
     char *nametable;
     std::size_t idx = 0;
 
-    pcre *re = static_cast<pcre *> (m_data);
+    octave_pcre_code *re = static_cast<octave_pcre_code *> (m_code);
 
-    pcre_fullinfo (re, nullptr, PCRE_INFO_CAPTURECOUNT,  &subpatterns);
-    pcre_fullinfo (re, nullptr, PCRE_INFO_NAMECOUNT, &namecount);
-    pcre_fullinfo (re, nullptr, PCRE_INFO_NAMEENTRYSIZE, &nameentrysize);
-    pcre_fullinfo (re, nullptr, PCRE_INFO_NAMETABLE, &nametable);
+    octave_pcre_pattern_info (re, OCTAVE_PCRE_INFO_CAPTURECOUNT, &subpatterns);
+    octave_pcre_pattern_info (re, OCTAVE_PCRE_INFO_NAMECOUNT, &namecount);
+    octave_pcre_pattern_info (re, OCTAVE_PCRE_INFO_NAMEENTRYSIZE, &nameentrysize);
+    octave_pcre_pattern_info (re, OCTAVE_PCRE_INFO_NAMETABLE, &nametable);
 
-    OCTAVE_LOCAL_BUFFER (int, ovector, (subpatterns+1)*3);
+#if defined (HAVE_PCRE)
+    OCTAVE_LOCAL_BUFFER (OCTAVE_PCRE_SIZE, ovector, (subpatterns+1)*3);
+#endif
+
     OCTAVE_LOCAL_BUFFER (int, nidx, namecount);
 
     for (int i = 0; i < namecount; i++)
@@ -290,6 +368,28 @@
       {
         octave_quit ();
 
+#if defined (HAVE_PCRE2)
+        pcre2_match_data *m_data
+          = pcre2_match_data_create_from_pattern (re, nullptr);
+
+        unwind_action cleanup_match_data
+          ([=] () { pcre2_match_data_free (m_data); });
+
+        int matches = pcre2_match (re, reinterpret_cast<PCRE2_SPTR> (buffer.c_str ()),
+                                   buffer.length (), idx,
+                                   PCRE2_NO_UTF_CHECK | (idx ? PCRE2_NOTBOL : 0),
+                                   m_data, nullptr);
+
+        if (matches < 0 && matches != PCRE2_ERROR_NOMATCH)
+            (*current_liboctave_error_handler)
+              ("%s: internal error calling pcre2_match; "
+               "error code from pcre2_match is %i", m_who.c_str (), matches);
+
+        if (matches == PCRE2_ERROR_NOMATCH)
+          break;
+
+        OCTAVE_PCRE_SIZE *ovector = pcre2_get_ovector_pointer (m_data);
+#else
         int matches = pcre_exec (re, nullptr, buffer.c_str (),
                                  buffer.length (), idx,
                                  PCRE_NO_UTF8_CHECK | (idx ? PCRE_NOTBOL : 0),
@@ -332,7 +432,8 @@
 
         if (matches == PCRE_ERROR_NOMATCH)
           break;
-        else if (ovector[0] >= ovector[1] && ! m_options.emptymatch ())
+#endif
+        if (ovector[0] >= ovector[1] && ! m_options.emptymatch ())
           {
             // Zero length match.  Skip to next char.
             idx = ovector[0] + 1;
@@ -348,7 +449,12 @@
 
             for (int i = 1; i < matches; i++)
               {
-                if (ovector[2*i] >= 0 && ovector[2*i+1] > 0
+#if defined (HAVE_PCRE2)
+                if (ovector[2*i] != PCRE2_SIZE_MAX
+#else
+                if (ovector[2*i] >= 0
+#endif
+                    && ovector[2*i+1] > 0
                     && (i == 1 || ovector[2*i] != ovector[2*i-2]
                         || ovector[2*i-1] != ovector[2*i+1]))
                   {
@@ -359,9 +465,14 @@
 
             token_extents.resize (pos_match, 2);
 
-            double start = double (ovector[0]+1);
-            double end = double (ovector[1]);
+            OCTAVE_PCRE_SIZE start = ovector[0] + 1;
+            OCTAVE_PCRE_SIZE end = ovector[1];
 
+#if defined (HAVE_PCRE2)
+             // Must use explicit length constructor as match can contain '\0'.
+            std::string match_string = std::string (buffer.c_str() + start - 1,
+                                                    end - start + 1);
+#else
             const char **listptr;
             int status = pcre_get_substring_list (buffer.c_str (), ovector,
                                                   matches, &listptr);
@@ -373,6 +484,7 @@
 
             // Must use explicit length constructor as match can contain '\0'.
             std::string match_string = std::string (*listptr, end - start + 1);
+#endif
 
             string_vector tokens (pos_match);
             string_vector named_tokens (m_names);
@@ -381,7 +493,12 @@
 
             for (int i = 1; i < matches; i++)
               {
-                if (ovector[2*i] >= 0 && ovector[2*i+1] > 0)
+#if defined (HAVE_PCRE2)
+                if (ovector[2*i] != PCRE2_SIZE_MAX
+#else
+                if (ovector[2*i] >= 0
+#endif
+                    && ovector[2*i+1] > 0)
                   {
                     if (i == 1 || ovector[2*i] != ovector[2*i-2]
                         || ovector[2*i-1] != ovector[2*i+1])
@@ -398,25 +515,45 @@
                                   {
                                     std::size_t len = ovector[2*i+1] - ovector[2*i];
                                     named_tokens(m_named_idx(j))
-                                      = std::string (*(listptr+i-pos_offset),
-                                                     len);
+#if defined (HAVE_PCRE2)
+                                      = std::string (buffer.c_str () + ovector[2*i], len);
+#else
+                                      = std::string (*(listptr+i-pos_offset), len);
+#endif
                                     break;
                                   }
                               }
                           }
 
                         std::size_t len = ovector[2*i+1] - ovector[2*i];
+#if defined (HAVE_PCRE2)
+                        tokens(pos_match++) = std::string (buffer.c_str() + ovector[2*i], len);
+#else
                         tokens(pos_match++) = std::string (*(listptr+i), len);
+#endif
                       }
                     else
                       pos_offset++;
                   }
               }
 
+#if ! defined (HAVE_PCRE2)
             pcre_free_substring_list (listptr);
+#endif
+
+            // FIXME: MATCH_ELEMENT uses double values for these,
+            // presumably because that is what the Octave interpreter
+            // uses.  Should we check that the values don't exceed
+            // flintmax here?  It seems unlikely that it would happen,
+            // but...
+
+            double dstart = static_cast<double> (start);
+            double dend = static_cast<double> (end);
 
             regexp::match_element new_elem (named_tokens, tokens, match_string,
-                                            token_extents, start, end);
+                                            token_extents,
+                                            dstart, dend);
+
             lst.push_back (new_elem);
 
             if (ovector[1] <= ovector[0])
--- a/liboctave/util/lo-regexp.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/lo-regexp.h	Tue Nov 15 13:15:28 2022 -0800
@@ -51,7 +51,7 @@
     regexp (const std::string& pat = "",
             const regexp::opts& opt = regexp::opts (),
             const std::string& w = "regexp")
-      : m_pattern (pat), m_options (opt), m_data (nullptr), m_named_pats (),
+      : m_pattern (pat), m_options (opt), m_code (nullptr), m_named_pats (),
         m_names (0), m_named_idx (), m_who (w)
     {
       compile_internal ();
@@ -188,6 +188,10 @@
       string_vector m_named_tokens;
       string_vector m_tokens;
       Matrix m_token_extents;
+
+      // FIXME: Are these values declared as double because that's what
+      // Octave interpreter functions will store?  Should they be int or
+      // size_t instead?
       double m_start;
       double m_end;
     };
@@ -225,7 +229,7 @@
     opts m_options;
 
     // Internal data describing the regular expression.
-    void *m_data;
+    void *m_code;
 
     string_vector m_named_pats;
     int m_names;
--- a/liboctave/util/lo-utils.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/lo-utils.h	Tue Nov 15 13:15:28 2022 -0800
@@ -33,7 +33,6 @@
 #include <iosfwd>
 #include <string>
 
-#include "lo-cutils.h"
 #include "oct-cmplx.h"
 #include "quit.h"
 
--- a/liboctave/util/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -9,7 +9,6 @@
   %reldir%/file-info.h \
   %reldir%/glob-match.h \
   %reldir%/lo-array-errwarn.h \
-  %reldir%/lo-cutils.h \
   %reldir%/lo-hash.h \
   %reldir%/lo-ieee.h \
   %reldir%/lo-regexp.h \
@@ -51,8 +50,6 @@
   %reldir%/r1mach.f
 
 UTIL_C_SRC = \
-  %reldir%/f2c-main.c \
-  %reldir%/lo-cutils.c \
   %reldir%/blaswrap.c \
   %reldir%/f77-fcn.c \
   %reldir%/lo-error.c \
@@ -64,6 +61,7 @@
   %reldir%/cmd-edit.cc \
   %reldir%/cmd-hist.cc \
   %reldir%/data-conv.cc \
+  %reldir%/f77-dummy-main.cc \
   %reldir%/file-info.cc \
   %reldir%/glob-match.cc \
   %reldir%/kpse.cc \
@@ -75,6 +73,7 @@
   %reldir%/quit.cc \
   %reldir%/oct-atomic.c \
   %reldir%/oct-base64.cc \
+  %reldir%/oct-cmplx.cc \
   %reldir%/oct-glob.cc \
   %reldir%/oct-inttypes.cc \
   %reldir%/oct-mutex.cc \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/util/oct-cmplx.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,201 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 1995-2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+
+#include <complex>
+
+// For complex-complex and complex-real comparisons, Octave uses the following
+// ordering: compare absolute values first; if they match, compare phase
+// angles.  This is partially inconsistent with M*b, which compares complex
+// numbers only by their real parts; OTOH, it uses the same definition for
+// max/min and sort.  The abs/arg comparison is definitely more useful (the
+// other one is emulated rather trivially), so let's be consistent and use that
+// all over.
+
+// The standard C library function arg() returns [-pi,pi], which creates a
+// non-unique representation for numbers along the negative real axis branch
+// cut.  Change this to principal value (-pi,pi] by mapping -pi to pi.
+
+// General templated code for all (double, float) complex operators
+#define DEF_COMPLEXR_COMP(OP, OPS)                                           \
+   template <typename T>                                                     \
+   bool operator OP (const std::complex<T>& a, const std::complex<T>& b)     \
+   {                                                                         \
+     OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                        \
+     OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                        \
+     if (ax == bx)                                                           \
+       {                                                                     \
+         OCTAVE_FLOAT_TRUNCATE const T ay = std::arg (a);                    \
+         OCTAVE_FLOAT_TRUNCATE const T by = std::arg (b);                    \
+         if (ay == static_cast<T> (-M_PI))                                   \
+           {                                                                 \
+             if (by != static_cast<T> (-M_PI))                               \
+               return static_cast<T> (M_PI) OP by;                           \
+           }                                                                 \
+         else if (by == static_cast<T> (-M_PI))                              \
+           {                                                                 \
+             return ay OP static_cast<T> (M_PI);                             \
+           }                                                                 \
+         return ay OP by;                                                    \
+       }                                                                     \
+     else                                                                    \
+       return ax OPS bx;                                                     \
+   }                                                                         \
+   template <typename T>                                                     \
+   bool operator OP (const std::complex<T>& a, T b)                          \
+   {                                                                         \
+     OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                        \
+     OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                        \
+     if (ax == bx)                                                           \
+       {                                                                     \
+         OCTAVE_FLOAT_TRUNCATE const T ay = std::arg (a);                    \
+         if (ay == static_cast<T> (-M_PI))                                   \
+           return static_cast<T> (M_PI) OP 0;                                \
+         return ay OP 0;                                                     \
+       }                                                                     \
+     else                                                                    \
+       return ax OPS bx;                                                     \
+   }                                                                         \
+   template <typename T>                                                     \
+   bool operator OP (T a, const std::complex<T>& b)                          \
+   {                                                                         \
+     OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                        \
+     OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                        \
+     if (ax == bx)                                                           \
+       {                                                                     \
+         OCTAVE_FLOAT_TRUNCATE const T by = std::arg (b);                    \
+         if (by == static_cast<T> (-M_PI))                                   \
+           return 0 OP static_cast<T> (M_PI);                                \
+         return 0 OP by;                                                     \
+       }                                                                     \
+     else                                                                    \
+       return ax OPS bx;                                                     \
+   }
+
+#if defined (__APPLE__)
+   // Apple specializations
+
+   // FIXME: Apple's math library chooses to return a different value for
+   // std::arg with floats than the constant static_cast<float> (M_PI).
+   // Work around this obtuse behavior by providing the constant A_PI which
+   // is Apple's definition of the constant PI for float variables.
+   // The template code for doubles is the same as that for UNIX platforms.
+   // Use C++ template specialization to add specific functions for float
+   // values that make use of A_PI.
+
+   // Apple version of PI in single precision
+#  define A_PI 3.1415925025939941f
+
+#  define INST_SPECIAL_COMPLEXR_COMP(OP, OPS)                                \
+     template <> OCTAVE_API                                                  \
+     bool operator OP<float> (const std::complex<float>& a,                  \
+                              const std::complex<float>& b)                  \
+     {                                                                       \
+       OCTAVE_FLOAT_TRUNCATE const float ax = std::abs (a);                  \
+       OCTAVE_FLOAT_TRUNCATE const float bx = std::abs (b);                  \
+       if (ax == bx)                                                         \
+         {                                                                   \
+           OCTAVE_FLOAT_TRUNCATE const float ay = std::arg (a);              \
+           OCTAVE_FLOAT_TRUNCATE const float by = std::arg (b);              \
+           if (ay == -A_PI)                                                  \
+             {                                                               \
+               if (by != -A_PI)                                              \
+                 return static_cast<float> (M_PI) OP by;                     \
+             }                                                               \
+           else if (by == -A_PI)                                             \
+             {                                                               \
+               return ay OP static_cast<float> (M_PI);                       \
+             }                                                               \
+           return ay OP by;                                                  \
+         }                                                                   \
+       else                                                                  \
+         return ax OPS bx;                                                   \
+     }                                                                       \
+     template <> OCTAVE_API                                                  \
+     bool operator OP<float> (const std::complex<float>& a, float b)         \
+     {                                                                       \
+       OCTAVE_FLOAT_TRUNCATE const float ax = std::abs (a);                  \
+       OCTAVE_FLOAT_TRUNCATE const float bx = std::abs (b);                  \
+       if (ax == bx)                                                         \
+         {                                                                   \
+           OCTAVE_FLOAT_TRUNCATE const float ay = std::arg (a);              \
+           if (ay == -A_PI)                                                  \
+             return static_cast<float> (M_PI) OP 0;                          \
+           return ay OP 0;                                                   \
+         }                                                                   \
+       else                                                                  \
+         return ax OPS bx;                                                   \
+     }                                                                       \
+     template <> OCTAVE_API                                                  \
+     bool operator OP<float> (float a, const std::complex<float>& b)         \
+     {                                                                       \
+       OCTAVE_FLOAT_TRUNCATE const float ax = std::abs (a);                  \
+       OCTAVE_FLOAT_TRUNCATE const float bx = std::abs (b);                  \
+       if (ax == bx)                                                         \
+         {                                                                   \
+           OCTAVE_FLOAT_TRUNCATE const float by = std::arg (b);              \
+           if (by == -A_PI)                                                  \
+             return 0 OP static_cast<float> (M_PI);                          \
+           return 0 OP by;                                                   \
+         }                                                                   \
+       else                                                                  \
+         return ax OPS bx;                                                   \
+     }
+
+#endif
+
+DEF_COMPLEXR_COMP (>, >)
+DEF_COMPLEXR_COMP (<, <)
+DEF_COMPLEXR_COMP (>=, >)
+DEF_COMPLEXR_COMP (<=, <)
+
+
+// Instantiate templates
+
+# define INST_COMPLEXR_COMP(OP, T)                                           \
+    template OCTAVE_API bool operator OP (const std::complex<T>& a,          \
+                                          const std::complex<T>& b);         \
+    template OCTAVE_API bool operator OP (const std::complex<T>& a, T b);    \
+    template OCTAVE_API bool operator OP (T a, const std::complex<T>& b);
+
+INST_COMPLEXR_COMP (>, double)
+INST_COMPLEXR_COMP (<, double)
+INST_COMPLEXR_COMP (>=, double)
+INST_COMPLEXR_COMP (<=, double)
+
+#if defined (__APPLE__)
+INST_SPECIAL_COMPLEXR_COMP (>, >)
+INST_SPECIAL_COMPLEXR_COMP (<, <)
+INST_SPECIAL_COMPLEXR_COMP (>=, >)
+INST_SPECIAL_COMPLEXR_COMP (<=, <)
+#else
+INST_COMPLEXR_COMP (>, float)
+INST_COMPLEXR_COMP (<, float)
+INST_COMPLEXR_COMP (>=, float)
+INST_COMPLEXR_COMP (<=, float)
+#endif
--- a/liboctave/util/oct-cmplx.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/oct-cmplx.h	Tue Nov 15 13:15:28 2022 -0800
@@ -33,206 +33,34 @@
 typedef std::complex<double> Complex;
 typedef std::complex<float> FloatComplex;
 
-// For complex-complex and complex-real comparisons, Octave uses the following
-// ordering: compare absolute values first; if they match, compare phase
-// angles.  This is partially inconsistent with M*b, which compares complex
-// numbers only by their real parts; OTOH, it uses the same definition for
-// max/min and sort.  The abs/arg comparison is definitely more useful (the
-// other one is emulated rather trivially), so let's be consistent and use that
-// all over.
-
-// The standard C library function arg() returns [-pi,pi], which creates a
-// non-unique representation for numbers along the negative real axis branch
-// cut.  Change this to principal value (-pi,pi] by mapping -pi to pi.
-
-#if ! defined (__APPLE__)
+// template declaration
+# define DECL_COMPLEXR_COMP(OP)                                               \
+    template <typename T> bool operator OP (const std::complex<T>& a,         \
+                                            const std::complex<T>& b);        \
+    template <typename T> bool operator OP (const std::complex<T>& a, T b);   \
+    template <typename T> bool operator OP (T a, const std::complex<T>& b);
 
-   // General templated code for all (double, float) complex operators
-#  define DEF_COMPLEXR_COMP(OP, OPS)                                         \
-     template <typename T>                                                   \
-     inline bool operator OP (const std::complex<T>& a,                      \
-                              const std::complex<T>& b)                      \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                      \
-       OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                      \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const T ay = std::arg (a);                  \
-           OCTAVE_FLOAT_TRUNCATE const T by = std::arg (b);                  \
-           if (ay == static_cast<T> (-M_PI))                                 \
-             {                                                               \
-               if (by != static_cast<T> (-M_PI))                             \
-                 return static_cast<T> (M_PI) OP by;                         \
-             }                                                               \
-           else if (by == static_cast<T> (-M_PI))                            \
-             {                                                               \
-               return ay OP static_cast<T> (M_PI);                           \
-             }                                                               \
-           return ay OP by;                                                  \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }                                                                       \
-     template <typename T>                                                   \
-     inline bool operator OP (const std::complex<T>& a, T b)                 \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                      \
-       OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                      \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const T ay = std::arg (a);                  \
-           if (ay == static_cast<T> (-M_PI))                                 \
-             return static_cast<T> (M_PI) OP 0;                              \
-           return ay OP 0;                                                   \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }                                                                       \
-     template <typename T>                                                   \
-     inline bool operator OP (T a, const std::complex<T>& b)                 \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                      \
-       OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                      \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const T by = std::arg (b);                  \
-           if (by == static_cast<T> (-M_PI))                                 \
-             return 0 OP static_cast<T> (M_PI);                              \
-           return 0 OP by;                                                   \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }
-
-#else
-   // Apple specialization.
-
-   // FIXME: Apple's math library chooses to return a different value for
-   // std::arg with floats than the constant static_cast<float> (M_PI).
-   // Work around this obtuse behavior by providing the constant A_PI which
-   // is Apple's definition of the constant PI for float variables.
-   // The template code for doubles is the same as that for UNIX platforms.
-   // Use C++ template specialization to add specific functions for float
-   // values that make use of A_PI.
-
-   // Apple version of PI
-#  define A_PI 3.1415925025939941f
+DECL_COMPLEXR_COMP(>)
+DECL_COMPLEXR_COMP(<)
+DECL_COMPLEXR_COMP(>=)
+DECL_COMPLEXR_COMP(<=)
 
-#  define DEF_COMPLEXR_COMP(OP, OPS)                                         \
-     template <typename T>                                                   \
-     inline bool operator OP (const std::complex<T>& a,                      \
-                              const std::complex<T>& b)                      \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                      \
-       OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                      \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const T ay = std::arg (a);                  \
-           OCTAVE_FLOAT_TRUNCATE const T by = std::arg (b);                  \
-           if (ay == static_cast<T> (-M_PI))                                 \
-             {                                                               \
-               if (by != static_cast<T> (-M_PI))                             \
-                 return static_cast<T> (M_PI) OP by;                         \
-             }                                                               \
-           else if (by == static_cast<T> (-M_PI))                            \
-             {                                                               \
-               return ay OP static_cast<T> (M_PI);                           \
-             }                                                               \
-           return ay OP by;                                                  \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }                                                                       \
-     template <typename T>                                                   \
-     inline bool operator OP (const std::complex<T>& a, T b)                 \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                      \
-       OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                      \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const T ay = std::arg (a);                  \
-           if (ay == static_cast<T> (-M_PI))                                 \
-             return static_cast<T> (M_PI) OP 0;                              \
-           return ay OP 0;                                                   \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }                                                                       \
-     template <typename T>                                                   \
-     inline bool operator OP (T a, const std::complex<T>& b)                 \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const T ax = std::abs (a);                      \
-       OCTAVE_FLOAT_TRUNCATE const T bx = std::abs (b);                      \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const T by = std::arg (b);                  \
-           if (by == static_cast<T> (-M_PI))                                 \
-             return 0 OP static_cast<T> (M_PI);                              \
-           return 0 OP by;                                                   \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }                                                                       \
-     template <>                                                             \
-     inline bool operator OP<float> (const std::complex<float>& a,           \
-                                     const std::complex<float>& b)           \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const float ax = std::abs (a);                  \
-       OCTAVE_FLOAT_TRUNCATE const float bx = std::abs (b);                  \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const float ay = std::arg (a);              \
-           OCTAVE_FLOAT_TRUNCATE const float by = std::arg (b);              \
-           if (ay == -A_PI)                                                  \
-             {                                                               \
-               if (by != -A_PI)                                              \
-                 return static_cast<float> (M_PI) OP by;                     \
-             }                                                               \
-           else if (by == -A_PI)                                             \
-             {                                                               \
-               return ay OP static_cast<float> (M_PI);                       \
-             }                                                               \
-           return ay OP by;                                                  \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }                                                                       \
-     template <>                                                             \
-     inline bool operator OP<float> (const std::complex<float>& a, float b)  \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const float ax = std::abs (a);                  \
-       OCTAVE_FLOAT_TRUNCATE const float bx = std::abs (b);                  \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const float ay = std::arg (a);              \
-           if (ay == -A_PI)                                                  \
-             return static_cast<float> (M_PI) OP 0;                          \
-           return ay OP 0;                                                   \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }                                                                       \
-     template <>                                                             \
-     inline bool operator OP<float> (float a, const std::complex<float>& b)  \
-     {                                                                       \
-       OCTAVE_FLOAT_TRUNCATE const float ax = std::abs (a);                  \
-       OCTAVE_FLOAT_TRUNCATE const float bx = std::abs (b);                  \
-       if (ax == bx)                                                         \
-         {                                                                   \
-           OCTAVE_FLOAT_TRUNCATE const float by = std::arg (b);              \
-           if (by == -A_PI)                                                  \
-             return 0 OP static_cast<float> (M_PI);                          \
-           return 0 OP by;                                                   \
-         }                                                                   \
-       else                                                                  \
-         return ax OPS bx;                                                   \
-     }
+// extern template instantiations
+# define EXT_INST_COMPLEXR_COMP(OP, T)                                       \
+    extern template OCTAVE_EXTERN_TEMPLATE_API                               \
+    bool operator OP (const std::complex<T>& a, const std::complex<T>& b);   \
+    extern template OCTAVE_EXTERN_TEMPLATE_API                               \
+    bool operator OP (const std::complex<T>& a, T b);                        \
+    extern template OCTAVE_EXTERN_TEMPLATE_API                               \
+    bool operator OP (T a, const std::complex<T>& b);
+
+EXT_INST_COMPLEXR_COMP(>, double)
+EXT_INST_COMPLEXR_COMP(>, float)
+EXT_INST_COMPLEXR_COMP(<, double)
+EXT_INST_COMPLEXR_COMP(<, float)
+EXT_INST_COMPLEXR_COMP(>=, double)
+EXT_INST_COMPLEXR_COMP(>=, float)
+EXT_INST_COMPLEXR_COMP(<=, double)
+EXT_INST_COMPLEXR_COMP(<=, float)
 
 #endif
-
-DEF_COMPLEXR_COMP (>, >)
-DEF_COMPLEXR_COMP (<, <)
-DEF_COMPLEXR_COMP (<=, <)
-DEF_COMPLEXR_COMP (>=, >)
-
-#endif
--- a/liboctave/util/oct-inttypes-fwd.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/oct-inttypes-fwd.h	Tue Nov 15 13:15:28 2022 -0800
@@ -28,7 +28,7 @@
 
 #include "octave-config.h"
 
-template <typename T> class OCTAVE_API octave_int;
+template <typename T> class OCTAVE_TEMPLATE_API octave_int;
 
 typedef octave_int<int8_t> octave_int8;
 typedef octave_int<int16_t> octave_int16;
--- a/liboctave/util/oct-inttypes.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/oct-inttypes.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -819,7 +819,7 @@
 }
 
 #define INSTANTIATE_INTTYPE(T)                                          \
-  template class octave_int<T>;                                         \
+  template class OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API octave_int<T>; \
                                                                         \
   template OCTAVE_API octave_int<T>                                     \
   pow (const octave_int<T>&, const octave_int<T>&);                     \
--- a/liboctave/util/oct-inttypes.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/oct-inttypes.h	Tue Nov 15 13:15:28 2022 -0800
@@ -779,7 +779,9 @@
 { };
 
 template <typename T>
-class octave_int : public octave_int_base<T>
+class
+OCTAVE_TEMPLATE_API
+octave_int : public octave_int_base<T>
 {
 public:
 
@@ -862,6 +864,12 @@
 
 #undef OCTAVE_INT_UN_OP
 
+  octave_int<T> operator ~ (void) const
+  {
+    T bitinv = ~ m_ival;
+    return bitinv;
+  }
+
   // Homogeneous binary integer operations.
 #define OCTAVE_INT_BIN_OP(OP, NAME, ARGT)               \
   inline octave_int<T>                                  \
--- a/liboctave/util/oct-rl-edit.c	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/oct-rl-edit.c	Tue Nov 15 13:15:28 2022 -0800
@@ -134,7 +134,7 @@
 }
 
 void
-octave_rl_restore_terminal_state ()
+octave_rl_restore_terminal_state (void)
 {
   if (rl_deprep_term_function)
     rl_deprep_term_function ();
--- a/liboctave/util/oct-sort.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/oct-sort.h	Tue Nov 15 13:15:28 2022 -0800
@@ -98,7 +98,7 @@
 
 template <typename T>
 class
-OCTARRAY_API
+OCTAVE_TEMPLATE_API
 octave_sort
 {
 public:
@@ -348,7 +348,7 @@
 
 template <typename T>
 class
-OCTARRAY_API
+OCTAVE_TEMPLATE_API
 vec_index
 {
 public:
--- a/liboctave/util/oct-string.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/oct-string.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -607,6 +607,90 @@
   return num_replacements;
 }
 
+typedef octave::string::codecvt_u8::InternT InternT;
+typedef octave::string::codecvt_u8::ExternT ExternT;
+typedef octave::string::codecvt_u8::StateT StateT;
+
+typename std::codecvt<InternT, ExternT, StateT>::result
+octave::string::codecvt_u8::do_out
+  (StateT& /* state */,
+   const InternT* from, const InternT* from_end, const InternT*& from_next,
+   ExternT* to, ExternT* to_end, ExternT*& to_next) const
+{
+  if (from_end < from)
+    return std::codecvt<InternT, ExternT, StateT>::noconv;
+
+  // Convert from UTF-8 to output encoding
+  std::size_t srclen = (from_end-from) * sizeof (InternT);
+  std::size_t lengthp = (to_end-to) * sizeof (ExternT);
+  const uint8_t *u8_str = reinterpret_cast<const uint8_t *> (from);
+  char *enc_str = octave_u8_conv_to_encoding (m_enc.c_str (), u8_str, srclen,
+                                              &lengthp);
+
+  size_t max = to_end - to;
+  if (lengthp < max)
+    max = lengthp;
+
+  // copy conversion result to output
+  // FIXME: Handle incomplete UTF-8 characters at end of buffer.
+  std::copy_n (enc_str, max, to);
+  ::free (enc_str);
+
+  from_next = from + srclen;
+  to_next = to + max;
+
+  return std::codecvt<InternT, ExternT, StateT>::ok;
+}
+
+typename std::codecvt<InternT, ExternT, StateT>::result
+octave::string::codecvt_u8::do_in
+  (StateT& /* state */,
+   const ExternT* from, const ExternT* from_end, const ExternT*& from_next,
+   InternT* to, InternT* to_end, InternT*& to_next) const
+{
+  // Convert from input encoding to UTF-8
+  std::size_t srclen = (from_end-from) * sizeof (ExternT);
+  std::size_t lengthp = (to_end-to) * sizeof (InternT);
+  const char *enc_str = reinterpret_cast<const char *> (from);
+  uint8_t *u8_str = octave_u8_conv_from_encoding (m_enc.c_str (),
+                                                  enc_str, srclen, &lengthp);
+
+  std::size_t max = to_end - to;
+  if (lengthp < max)
+    max = lengthp;
+
+  // copy conversion result to output
+  std::copy_n (u8_str, max, to);
+  ::free (u8_str);
+
+  from_next = from + srclen;
+  to_next = to + max;
+
+  return std::codecvt<InternT, ExternT, StateT>::ok;
+}
+
+int octave::string::codecvt_u8::do_length
+  (StateT& /* state */, const ExternT *src, const ExternT *end,
+   std::size_t max) const
+{
+  // return number of external characters that produce MAX internal ones
+  std::size_t srclen = end-src;
+  std::size_t offsets[srclen];
+  std::size_t lengthp = max;
+  octave_u8_conv_from_encoding_offsets (m_enc.c_str (), src, srclen, offsets,
+                                        &lengthp);
+  std::size_t ext_char;
+  for (ext_char = 0; ext_char < srclen; ext_char++)
+  {
+    if (offsets[ext_char] != static_cast<size_t> (-1)
+        && offsets[ext_char] >= max)
+      break;
+  }
+
+  return ext_char;
+}
+
+
 template <typename T>
 std::string
 rational_approx (T val, int len)
@@ -644,7 +728,6 @@
       T n = octave::math::round (val);
       T d = 1;
       T frac = val - n;
-      int m = 0;
 
       std::ostringstream init_buf;
       init_buf.flags (std::ios::fixed);
@@ -676,7 +759,6 @@
           buf.flags (std::ios::fixed);
           buf << std::setprecision (0) << static_cast<int> (n)
               << '/' << static_cast<int> (d);
-          m++;
 
           if (n < 0 && d < 0)
             {
--- a/liboctave/util/oct-string.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/oct-string.h	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,8 @@
 
 #include "octave-config.h"
 
+#include <locale>
+
 #include "oct-cmplx.h"
 
 namespace octave
@@ -155,6 +157,94 @@
     extern OCTAVE_API unsigned int
     u8_validate (const std::string& who, std::string& in_string,
                  const u8_fallback_type type = U8_REPLACEMENT_CHAR);
+
+
+    template<class Facet>
+    struct
+    deletable_facet : Facet
+    {
+      template<class ...Args>
+      deletable_facet (Args&& ...args)
+      : Facet (std::forward<Args> (args)...)
+      { }
+
+      // destructor needs to be public
+      ~deletable_facet () {}
+    };
+
+    class
+    OCTAVE_API
+    codecvt_u8 : public std::codecvt<char, char, std::mbstate_t>
+    {
+    public:
+
+      // No copying!
+
+      codecvt_u8 (codecvt_u8 &) = delete;
+
+      codecvt_u8& operator = (codecvt_u8 &) = delete;
+
+      codecvt_u8 (const std::string &enc)
+      : m_enc (enc)
+      { }
+
+      virtual ~codecvt_u8 () { }
+
+      typedef char InternT;
+      typedef char ExternT;
+      typedef std::mbstate_t StateT;
+
+    private:
+
+      OCTAVE_API
+      typename std::codecvt<InternT, ExternT, StateT>::result
+      do_out (StateT& state,
+              const InternT* from, const InternT* from_end, const InternT*& from_next,
+              ExternT* to, ExternT* to_end, ExternT*& to_next) const;
+
+      OCTAVE_API
+      typename std::codecvt<InternT, ExternT, StateT>::result
+      do_in (StateT& state,
+             const ExternT* from, const ExternT* from_end, const ExternT*& from_next,
+             InternT* to, InternT* to_end, InternT*& to_next) const;
+
+      typename std::codecvt<InternT, ExternT, StateT>::result
+      do_unshift (StateT& /* state */, ExternT* to, ExternT* /* to_end */,
+                  ExternT*& to_next) const
+      {
+        // FIXME: What is the correct thing to unshift?
+        // Just reset?
+        to_next = to;
+
+        return std::codecvt<InternT, ExternT, StateT>::ok;
+      }
+
+      int do_encoding () const throw ()
+      {
+        // return 0 because UTF-8 encoding is variable length
+        return 0;
+      }
+
+      bool do_always_noconv () const throw ()
+      {
+        // return false to indicate non-identity conversion
+        return false;
+      }
+
+      OCTAVE_API int
+      do_length (StateT& state, const ExternT *src, const ExternT *end,
+                 std::size_t max) const;
+
+      int do_max_length() const throw ()
+      {
+        // For UTF-8, a maximum of 4 bytes are needed for one character.
+        return 4;
+      }
+
+      std::string m_enc;
+
+    };
+
   }
 }
 
--- a/liboctave/util/quit.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/quit.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -37,32 +37,11 @@
 
 sig_atomic_t octave_interrupt_state = 0;
 
-// DEPRECATED in Octave 6.
-// This variable should never have been public.
-sig_atomic_t octave_exception_state = 0;
-// Use this variable internally until the functions that use it can be
-// removed.
-static sig_atomic_t internal_exception_state;
-
 volatile sig_atomic_t octave_signal_caught = 0;
 
 void (*octave_signal_hook) (void) = nullptr;
 void (*octave_interrupt_hook) (void) = nullptr;
 
-// DEPRECATED in Octave 6.
-void (*octave_bad_alloc_hook) (void) = nullptr;
-
-// The octave_exception enum values were DEPRECATED in Octave 6.
-// Use these values internally until the functions that use them can be
-// removed.
-enum octave_internal_exception
-{
-  octave_internal_no_exception = 0,
-  octave_internal_exec_exception = 1,
-  octave_internal_alloc_exception = 3,
-  octave_internal_quit_exception = 4
-};
-
 namespace octave
 {
   std::string execution_exception::stack_trace (void) const
@@ -130,61 +109,3 @@
       throw octave::interrupt_exception ();
     }
 }
-
-// DEPRECATED in Octave 6
-void
-octave_throw_interrupt_exception (void)
-{
-  if (octave_interrupt_hook)
-    octave_interrupt_hook ();
-
-  throw octave::interrupt_exception ();
-}
-
-// DEPRECATED in Octave 6
-void
-octave_throw_execution_exception (void)
-{
-  // FIXME: would a hook function be useful here?
-
-  internal_exception_state = octave_internal_exec_exception;
-
-  throw octave::execution_exception ();
-}
-
-// DEPRECATED in Octave 6
-void
-octave_throw_bad_alloc (void)
-{
-  internal_exception_state = octave_internal_alloc_exception;
-
-  throw std::bad_alloc ();
-}
-
-// DEPRECATED in Octave 6
-void
-octave_rethrow_exception (void)
-{
-  if (octave_interrupt_state)
-    {
-      octave_interrupt_state = -1;
-
-      throw octave::interrupt_exception ();
-    }
-  else
-    {
-      switch (internal_exception_state)
-        {
-        case octave_internal_exec_exception:
-          throw octave::execution_exception ();
-          break;
-
-        case octave_internal_alloc_exception:
-          throw std::bad_alloc ();
-          break;
-
-        default:
-          break;
-        }
-    }
-}
--- a/liboctave/util/quit.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/quit.h	Tue Nov 15 13:15:28 2022 -0800
@@ -224,29 +224,10 @@
 */
 extern OCTAVE_API sig_atomic_t octave_interrupt_state;
 
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-OCTAVE_DEPRECATED (6, "'octave_exception_state' is an obsolete internal variable; any uses should be removed")
-extern OCTAVE_API sig_atomic_t octave_exception_state;
-#endif
-
 extern OCTAVE_API volatile sig_atomic_t octave_signal_caught;
 
 extern OCTAVE_API void octave_handle_signal (void);
 
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-OCTAVE_DEPRECATED (6, "use 'throw octave::interrupt_exception' instead")
-OCTAVE_NORETURN extern OCTAVE_API void octave_throw_interrupt_exception (void);
-
-OCTAVE_DEPRECATED (6, "use 'throw octave::execution_exception' instead")
-OCTAVE_NORETURN extern OCTAVE_API void octave_throw_execution_exception (void);
-
-OCTAVE_DEPRECATED (6, "use 'throw std::bad_alloc' instead")
-OCTAVE_NORETURN extern OCTAVE_API void octave_throw_bad_alloc (void);
-
-OCTAVE_DEPRECATED (6, "use 'throw' instead")
-extern OCTAVE_API void octave_rethrow_exception (void);
-#endif
-
 #if defined (__cplusplus)
 
 inline void octave_quit (void)
@@ -312,11 +293,6 @@
 extern OCTAVE_API void (*octave_signal_hook) (void);
 extern OCTAVE_API void (*octave_interrupt_hook) (void);
 
-#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
-OCTAVE_DEPRECATED (6, "'octave_bad_alloc_hook' is obsolete and no longer used")
-extern OCTAVE_API void (*octave_bad_alloc_hook) (void);
 #endif
 
 #endif
-
-#endif
--- a/liboctave/util/str-vec.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/util/str-vec.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -244,7 +244,6 @@
   for (octave_idx_type row = 0; row < nr; row++)
     {
       count = row;
-      octave_idx_type pos = 0;
 
       // Print the next row.
 
@@ -264,7 +263,6 @@
           octave_idx_type spaces_to_pad = max_name_length - name_length;
           for (octave_idx_type i = 0; i < spaces_to_pad; i++)
             os << ' ';
-          pos += max_name_length;
         }
       os << "\n";
     }
--- a/liboctave/wrappers/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/wrappers/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -24,12 +24,12 @@
   %reldir%/set-program-name-wrapper.h \
   %reldir%/signal-wrappers.h \
   %reldir%/stat-wrappers.h \
+  %reldir%/strcase-wrappers.h \
   %reldir%/strdup-wrapper.h \
   %reldir%/strftime-wrapper.h \
   %reldir%/strmode-wrapper.h \
   %reldir%/strptime-wrapper.h \
   %reldir%/time-wrappers.h \
-  %reldir%/tmpfile-wrapper.h \
   %reldir%/uname-wrapper.h \
   %reldir%/unicase-wrappers.h \
   %reldir%/uniconv-wrappers.h \
@@ -67,12 +67,12 @@
   %reldir%/set-program-name-wrapper.c \
   %reldir%/signal-wrappers.c \
   %reldir%/stat-wrappers.c \
+  %reldir%/strcase-wrappers.c \
   %reldir%/strdup-wrapper.c \
   %reldir%/strftime-wrapper.c \
   %reldir%/strmode-wrapper.c \
   %reldir%/strptime-wrapper.c \
   %reldir%/time-wrappers.c \
-  %reldir%/tmpfile-wrapper.c \
   %reldir%/uname-wrapper.c \
   %reldir%/unicase-wrappers.c \
   %reldir%/uniconv-wrappers.c \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/wrappers/strcase-wrappers.c	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,44 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+
+#include <strings.h>
+
+#include "strcase-wrappers.h"
+
+OCTAVE_API int
+octave_strcasecmp (const char *s1, const char *s2)
+{
+  return strcasecmp (s1, s2);
+}
+
+OCTAVE_API int
+octave_strncasecmp (const char *s1, const char *s2, size_t n)
+{
+  return strncasecmp (s1, s2, n);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/wrappers/strcase-wrappers.h	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,49 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if ! defined (octave_strcase_wrappers_h)
+#define octave_strcase_wrappers_h 1
+
+#include "octave-config.h"
+
+#if defined (__cplusplus)
+#include <cstddef>
+using std::size_t;
+extern "C" {
+#else
+#include <stddef.h>
+#endif
+
+OCTAVE_API int
+octave_strcasecmp (const char *s1, const char *s2);
+
+OCTAVE_API int
+octave_strncasecmp (const char *s1, const char *s2, size_t n);
+
+#if defined (__cplusplus)
+}
+#endif
+
+#endif
--- a/liboctave/wrappers/tmpfile-wrapper.c	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-////////////////////////////////////////////////////////////////////////
-//
-// Copyright (C) 2016-2022 The Octave Project Developers
-//
-// See the file COPYRIGHT.md in the top-level directory of this
-// distribution or <https://octave.org/copyright/>.
-//
-// This file is part of Octave.
-//
-// Octave is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Octave is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Octave; see the file COPYING.  If not, see
-// <https://www.gnu.org/licenses/>.
-//
-////////////////////////////////////////////////////////////////////////
-
-// tmpfile may be provided by gnulib.  We don't include gnulib headers
-// directly in Octave's C++ source files to avoid problems that may be
-// caused by the way that gnulib overrides standard library functions.
-
-#if defined (HAVE_CONFIG_H)
-#  include "config.h"
-#endif
-
-#include <stdio.h>
-
-#include "tmpfile-wrapper.h"
-
-FILE *
-octave_tmpfile_wrapper (void)
-{
-  return tmpfile ();
-}
--- a/liboctave/wrappers/tmpfile-wrapper.h	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-////////////////////////////////////////////////////////////////////////
-//
-// Copyright (C) 2016-2022 The Octave Project Developers
-//
-// See the file COPYRIGHT.md in the top-level directory of this
-// distribution or <https://octave.org/copyright/>.
-//
-// This file is part of Octave.
-//
-// Octave is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Octave is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Octave; see the file COPYING.  If not, see
-// <https://www.gnu.org/licenses/>.
-//
-////////////////////////////////////////////////////////////////////////
-
-#if ! defined (octave_tmpfile_wrapper_h)
-#define octave_tmpfile_wrapper_h 1
-
-#if defined __cplusplus
-#  include <cstdio>
-#else
-#  include <stdio.h>
-#endif
-
-#if defined __cplusplus
-extern "C" {
-#endif
-
-// c++11 provides std::tmpfile but it appears to fail on 64-bit
-// Windows systems.
-
-extern OCTAVE_API FILE * octave_tmpfile_wrapper (void);
-
-#if defined __cplusplus
-}
-#endif
-
-#endif
--- a/liboctave/wrappers/uniconv-wrappers.c	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/wrappers/uniconv-wrappers.c	Tue Nov 15 13:15:28 2022 -0800
@@ -72,6 +72,24 @@
                                src, srclen, NULL, NULL, lengthp);
 }
 
+uint8_t *
+octave_u8_conv_from_encoding_offsets
+  (const char *fromcode, const char *src, size_t srclen,
+   size_t *offsets, size_t *lengthp)
+{
+  return u8_conv_from_encoding (fromcode, iconveh_question_mark,
+                                src, srclen, offsets, NULL, lengthp);
+}
+
+char *
+octave_u8_conv_to_encoding_offsets
+  (const char *tocode, const uint8_t *src, size_t srclen,
+   size_t *offsets, size_t *lengthp)
+{
+  return u8_conv_to_encoding (tocode, iconveh_question_mark,
+                              src, srclen, offsets, NULL, lengthp);
+}
+
 char *
 u8_from_wchar (const wchar_t *wc)
 {
--- a/liboctave/wrappers/uniconv-wrappers.h	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/wrappers/uniconv-wrappers.h	Tue Nov 15 13:15:28 2022 -0800
@@ -57,6 +57,16 @@
 octave_u32_conv_to_encoding_strict (const char *tocode, const uint32_t *src,
                                     size_t srclen, size_t *lengthp);
 
+extern OCTAVE_API uint8_t *
+octave_u8_conv_from_encoding_offsets
+  (const char *fromcode, const char *src, size_t srclen,
+   size_t *offsets, size_t *lengthp);
+
+extern OCTAVE_API char *
+octave_u8_conv_to_encoding_offsets
+  (const char *tocode, const uint8_t *src, size_t srclen,
+   size_t *offsets, size_t *lengthp);
+
 extern OCTAVE_API char * u8_from_wchar (const wchar_t *wc);
 
 extern OCTAVE_API wchar_t * u8_to_wchar (const char *u8_char);
--- a/liboctave/wrappers/unistd-wrappers.c	Tue Nov 15 13:25:31 2022 -0300
+++ b/liboctave/wrappers/unistd-wrappers.c	Tue Nov 15 13:15:28 2022 -0800
@@ -380,8 +380,16 @@
 {
 #if defined (OCTAVE_USE_WINDOWS_API)
   wchar_t *wnm = u8_to_wchar (nm);
+
+  // _wunlink fails on files with the read-only flag set. Try to un-set it.
+  DWORD file_attributes = GetFileAttributesW (wnm);
+  if (file_attributes != INVALID_FILE_ATTRIBUTES
+      && file_attributes & FILE_ATTRIBUTE_READONLY)
+    SetFileAttributesW (wnm, file_attributes & ~FILE_ATTRIBUTE_READONLY);
+
   int status = _wunlink (wnm);
   free ((void *) wnm);
+
   return status;
 #else
   return unlink (nm);
--- a/m4/acinclude.m4	Tue Nov 15 13:25:31 2022 -0300
+++ b/m4/acinclude.m4	Tue Nov 15 13:15:28 2022 -0800
@@ -1,12 +1,11 @@
-dnl aclocal.m4 -- extra macros for configuring Octave
+dnl acinclude.m4 -- extra macros for configuring Octave
 dnl
 dnl --------------------------------------------------------------------
 dnl
 dnl Copyright (C) 1995-2022 The Octave Project Developers
 dnl
 dnl See the file COPYRIGHT.md in the top-level directory of this
-dnl or <https://octave.org/copyright/>.
-dnl
+dnl distribution or <https://octave.org/copyright/>.
 dnl
 dnl This file is part of Octave.
 dnl
@@ -689,7 +688,7 @@
 dnl
 AC_DEFUN([OCTAVE_CHECK_FUNC_QPRINTER_SETPAGESIZE], [
   AC_CACHE_CHECK([for QPrinter::setPageSize in <QPrinter>],
-    [octave_cv_func_qprinter_setpagesizes],
+    [octave_cv_func_qprinter_setpagesize],
     [AC_LANG_PUSH(C++)
     ac_octave_save_CPPFLAGS="$CPPFLAGS"
     ac_octave_save_CXXFLAGS="$CXXFLAGS"
@@ -805,6 +804,35 @@
   fi
 ])
 dnl
+dnl Check whether the Qt method QPainter::setRenderHint accepts the
+dnl QPainter::LosslessImageRendering flag.  This flag was introduced in Qt 5.13.
+dnl
+AC_DEFUN([OCTAVE_CHECK_FUNC_QPAINTER_SETRENDERHINT_LOSSLESS], [
+  AC_CACHE_CHECK([for QPainter::LosslessImageRendering flag],
+    [octave_cv_func_qpainter_setrenderhint_lossless],
+    [AC_LANG_PUSH(C++)
+    ac_octave_save_CPPFLAGS="$CPPFLAGS"
+    ac_octave_save_CXXFLAGS="$CXXFLAGS"
+    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        #include <QPainter>
+        ]], [[
+        QPainter painter;
+        painter.setRenderHint (QPainter::LosslessImageRendering);
+        ]])],
+      octave_cv_func_qpainter_setrenderhint_lossless=yes,
+      octave_cv_func_qpainter_setrenderhint_lossless=no)
+    CPPFLAGS="$ac_octave_save_CPPFLAGS"
+    CXXFLAGS="$ac_octave_save_CXXFLAGS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_func_qpainter_setrenderhint_lossless = yes; then
+    AC_DEFINE(HAVE_QPAINTER_RENDERHINT_LOSSLESS, 1,
+      [Define to 1 if you have the `QPainter::LosslessImageRendering' flag.])
+  fi
+])
+dnl
 dnl Check whether HDF5 library has version 1.6 API functions.
 dnl
 AC_DEFUN([OCTAVE_CHECK_HDF5_HAS_VER_16_API], [
@@ -1354,7 +1382,7 @@
       [octave_cv_lib_hdf5_dll=no],
       [save_CFLAGS="$CFLAGS"
       CFLAGS="$CFLAGS -DWIN32 -D_HDF5USEDLL_"
-      save_LIBS="$LIBS"
+      ac_octave_save_LIBS="$LIBS"
       LIBS="$HDF5_LIBS $LIBS"
       AC_LINK_IFELSE([AC_LANG_PROGRAM([[
           #include <hdf5.h>
@@ -1365,7 +1393,7 @@
         octave_cv_lib_hdf5_dll=yes,
         octave_cv_lib_hdf5_dll=no)
       CFLAGS="$save_CFLAGS"
-      LIBS="$save_LIBS"
+      LIBS="$ac_octave_save_LIBS"
     ])
   ])
   if test $octave_cv_lib_hdf5_dll = yes; then
@@ -1433,7 +1461,7 @@
       ])
       case $canonical_host_type in
         *-*-mingw32* | *-*-msdosmsvc)
-          save_LIBS="$LIBS"
+          ac_octave_save_LIBS="$LIBS"
           LIBS="$LIBS -lopengl32"
           AC_MSG_CHECKING([for glEnable in -lopengl32])
           AC_LINK_IFELSE([AC_LANG_PROGRAM([[
@@ -1449,7 +1477,7 @@
             glEnable(GL_SMOOTH);
             ]])], [OPENGL_LIBS="-lopengl32 -lglu32"])
 
-          LIBS="$save_LIBS"
+          LIBS="$ac_octave_save_LIBS"
           if test -n "$OPENGL_LIBS"; then
             AC_MSG_RESULT([yes])
           else
@@ -1503,6 +1531,41 @@
   fi
 ])
 dnl
+dnl Check whether PCRE2 is compiled with --enable-utf.
+dnl
+AC_DEFUN([OCTAVE_CHECK_LIB_PCRE2_OK], [
+  AC_CACHE_CHECK([whether PCRE2 library was compiled with UTF support],
+    [octave_cv_lib_pcre2_ok],
+    [AC_LANG_PUSH(C++)
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+        #include <stdio.h>
+        #define PCRE2_CODE-uNIT_WIDTH 8
+        #if defined (HAVE_PCRE2_H)
+        #  include <pcre2.h>
+        #elif defined (HAVE_PCRE2_PCRE2_H)
+        #  include <pcre2/pcre2.h>
+        #endif
+        ]], [[
+        const char *pattern = "test";
+        int err;
+        PCRE2_SIZE erroffset;
+        pcre2_code *data = pcre2_compile ((PCRE2_SPTR) pattern, PCRE2_ZERO_TERMINATED, PCRE2_UTF, &err, &erroffset, nullptr);
+        return (! data);
+      ]])],
+      octave_cv_lib_pcre2_ok=yes,
+      octave_cv_lib_pcre2_ok=no,
+      octave_cv_lib_pcre2_ok=yes)
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_lib_pcre2_ok = yes; then
+    $1
+    :
+  else
+    $2
+    :
+  fi
+])
+dnl
 dnl Check whether Qhull works (does not crash).
 dnl
 AC_DEFUN([OCTAVE_CHECK_LIB_QHULL_OK], [
@@ -1570,37 +1633,6 @@
   fi
 ])
 dnl
-dnl Find a suitable termlib to use.
-dnl
-AC_DEFUN([OCTAVE_CHECK_LIB_TERMLIB], [
-  TERM_LIBS=
-  ac_octave_save_LIBS="$LIBS"
-  AC_SEARCH_LIBS([tputs],
-                 [ncurses curses termcap terminfo termlib],
-                 [], [])
-  LIBS="$ac_octave_save_LIBS"
-  case "$ac_cv_search_tputs" in
-    -l*)
-      TERM_LIBS="$ac_cv_search_tputs"
-    ;;
-    no)
-      warn_termlibs="I couldn't find -ltermcap, -lterminfo, -lncurses, -lcurses, or -ltermlib!"
-      AC_MSG_WARN([$warn_termlibs])
-    ;;
-  esac
-
-dnl  Old code (9/9/2012).  Delete when new code is definitely proven.
-dnl
-dnl  for _termlib in ncurses curses termcap terminfo termlib; do
-dnl    AC_CHECK_LIB([${_termlib}], [tputs], [
-dnl      TERM_LIBS="-l${termlib}"
-dnl      octave_cv_lib_found_termlib=yes
-dnl      break])
-dnl  done
-
-  AC_SUBST(TERM_LIBS)
-])
-dnl
 dnl Check whether new API is used with QHelpIndexWidget.
 dnl Under new API, QHelpIndexWidget emits documentActivates.
 dnl Under old API, QHelpIndexWidget emits linkActivated.
@@ -1760,7 +1792,7 @@
       [save_CPPFLAGS="$CPPFLAGS"
       save_CXXFLAGS="$CXXFLAGS"
       save_LDFLAGS="$LDFLAGS"
-      save_LIBS="$LIBS"
+      ac_octave_save_LIBS="$LIBS"
       CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
       CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
       LDFLAGS="$QT_LDFLAGS $LDFLAGS"
@@ -1783,7 +1815,7 @@
       CPPFLAGS="$save_CPPFLAGS"
       CXXFLAGS="$save_CXXFLAGS"
       LDFLAGS="$save_LDFLAGS"
-      LIBS="$save_LIBS"
+      LIBS="$ac_octave_save_LIBS"
       AC_LANG_POP([C++])
     ])
 
@@ -2280,6 +2312,7 @@
     OCTAVE_CHECK_FUNC_QHELPENGINE_DOCUMENTSFORIDENTIFIER
     OCTAVE_CHECK_FUNC_QWHEELEVENT_ANGLEDELTA
     OCTAVE_CHECK_FUNC_QWHEELEVENT_POSITION
+    OCTAVE_CHECK_FUNC_QPAINTER_SETRENDERHINT_LOSSLESS
 
     OCTAVE_CHECK_QOVERLOAD_TEMPLATE
     OCTAVE_CHECK_QREGION_ITERATORS
@@ -2525,7 +2558,7 @@
     AC_DEFINE(HAVE_SUNDIALS_SUNLINSOL_KLU, 1,
       [Define to 1 if SUNDIALS IDA is configured with SUNLINSOL_KLU enabled.])
   else
-    warn_sundials_sunlinsol_klu="SUNDIALS IDA library not configured with SUNLINSOL_KLU or sunlinksol_klu.h is not usable.  The solvers ode15i and ode15s will not support the sparse Jacobian feature."
+    warn_sundials_sunlinsol_klu="SUNDIALS IDA library not configured with SUNLINSOL_KLU or sunlinsol_klu.h is not usable.  The solvers ode15i and ode15s will not support the sparse Jacobian feature."
     OCTAVE_CONFIGURE_WARNING([warn_sundials_sunlinsol_klu])
   fi
 ])
@@ -2886,7 +2919,6 @@
 dnl
 AC_DEFUN([OCTAVE_ENABLE_READLINE], [
   USE_READLINE=yes
-  READLINE_LIBS=
   AC_ARG_ENABLE([readline],
     [AS_HELP_STRING([--disable-readline],
       [do not use readline library])],
@@ -2895,20 +2927,14 @@
        warn_readline="command editing and history features require GNU Readline"
      fi])
   if test $USE_READLINE = yes; then
-    dnl RHEL 5 and older systems require termlib set before enabling readline
-    AC_REQUIRE([OCTAVE_CHECK_LIB_TERMLIB])
-    ac_octave_save_LIBS="$LIBS"
-    LIBS="$TERM_LIBS"
-    AC_CHECK_LIB([readline], [rl_set_keyboard_input_timeout],
-      [READLINE_LIBS="-lreadline"
+    gl_FUNC_READLINE
+    if test "$gl_cv_lib_readline" != no; then
       AC_DEFINE(USE_READLINE, 1, [Define to 1 to use the readline library.])
-      ],
-      [AC_MSG_WARN([I need GNU Readline 4.2 or later])
+    else
+      AC_MSG_WARN([I need GNU Readline 4.2 or later])
       AC_MSG_ERROR([this is fatal unless you specify --disable-readline])
-    ])
-    LIBS="$ac_octave_save_LIBS"
+    fi
   fi
-  AC_SUBST(READLINE_LIBS)
 ])
 dnl
 dnl Check if Fortran compiler handles FLAG command line option.  If
@@ -3240,7 +3266,7 @@
 AC_DEFUN([OCTAVE_PROG_GHOSTSCRIPT], [
   case "$canonical_host_type" in
     *-*-mingw* | *-*-msdosmsvc)
-      ac_octave_gs_names="gswin32c gs mgs"
+      ac_octave_gs_names="gs gswin32c gswin64c mgs"
     ;;
     *)
       ac_octave_gs_names="gs"
@@ -3409,7 +3435,7 @@
 dnl Find Python program.
 dnl
 AC_DEFUN([OCTAVE_PROG_PYTHON], [
-  AC_CHECK_PROG(PYTHON, python, python, [])
+  AC_CHECK_PROGS(PYTHON, [python3 python], python, [])
   AC_SUBST(PYTHON)
 ])
 dnl
@@ -3500,23 +3526,26 @@
 dnl
 AC_DEFUN([OCTAVE_PROG_TAR_REPRODUCIBLE], [
   AC_MSG_CHECKING([for options to make reproducible archives with GNU tar])
-dnl This uses Automake's logic for finding GNU tar under various names
-  for octave_tar in tar gnutar gtar :; do
-    $octave_tar --version >/dev/null 2>&1 && break
-  done
-dnl If we have a valid GNU tar program, see if it supports sets of options
-  if test x"$octave_tar" != x:; then
-    octave_tar_flags=
-    echo > conftest.txt
-    for octave_tar_flag in --owner=0 --group=0 --numeric-owner --sort=name; do
-      $octave_tar -cf conftest.tar $octave_tar_flags $octave_tar_flag conftest.txt 2>/dev/null
-      if test $? -eq 0; then
-        octave_tar_flags="${octave_tar_flags:+$octave_tar_flags }$octave_tar_flag"
-      fi
+  AC_CACHE_VAL([octave_cv_tar_flags],
+    [octave_cv_tar_flags=
+    dnl This uses Automake's logic for finding GNU tar under various names
+    for octave_tar in tar gnutar gtar :; do
+      $octave_tar --version >/dev/null 2>&1 && break
     done
-    rm -f conftest.tar conftest.txt
-    REPRODUCIBLE_TAR_FLAGS="$octave_tar_flags"
-  fi
+    dnl If we have a valid GNU tar program, see if it supports sets of options
+    if test x"$octave_tar" != x:; then
+      echo > conftest.txt
+      for octave_tar_flag in --owner=0 --group=0 --numeric-owner --sort=name; do
+        $octave_tar -cf conftest.tar $octave_cv_tar_flags $octave_tar_flag conftest.txt 2>/dev/null
+        if test $? -eq 0; then
+          octave_cv_tar_flags="${octave_cv_tar_flags:+$octave_cv_tar_flags }$octave_tar_flag"
+        fi
+      done
+      rm -f conftest.tar conftest.txt
+    fi
+  ])
+
+  REPRODUCIBLE_TAR_FLAGS="$octave_cv_tar_flags"
   AC_SUBST(REPRODUCIBLE_TAR_FLAGS)
   AC_MSG_RESULT([$REPRODUCIBLE_TAR_FLAGS])
 ])
--- a/m4/ax_cxx_compile_stdcxx.m4	Tue Nov 15 13:25:31 2022 -0300
+++ b/m4/ax_cxx_compile_stdcxx.m4	Tue Nov 15 13:15:28 2022 -0800
@@ -10,8 +10,8 @@
 #
 #   Check for baseline language coverage in the compiler for the specified
 #   version of the C++ standard.  If necessary, add switches to CXX and
-#   CXXCPP to enable support.  VERSION may be '11' (for the C++11 standard)
-#   or '14' (for the C++14 standard).
+#   CXXCPP to enable support.  VERSION may be '11', '14', '17', or '20' for
+#   the respective C++ standard version.
 #
 #   The second argument, if specified, indicates whether you insist on an
 #   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
@@ -36,13 +36,14 @@
 #   Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
 #   Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>
 #   Copyright (c) 2020 Jason Merrill <jason@redhat.com>
+#   Copyright (c) 2021 Jörn Heusipp <osmanx@problemloesungsmaschine.de>
 #
 #   Copying and distribution of this file, with or without modification, are
 #   permitted in any medium without royalty provided the copyright notice
 #   and this notice are preserved.  This file is offered as-is, without any
 #   warranty.
 
-#serial 12
+#serial 14
 
 dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
 dnl  (serial version number 13).
@@ -51,6 +52,7 @@
   m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
         [$1], [14], [ax_cxx_compile_alternatives="14 1y"],
         [$1], [17], [ax_cxx_compile_alternatives="17 1z"],
+        [$1], [20], [ax_cxx_compile_alternatives="20"],
         [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
   m4_if([$2], [], [],
         [$2], [ext], [],
@@ -151,7 +153,6 @@
   _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
 )
 
-
 dnl  Test body for checking C++14 support
 
 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
@@ -159,12 +160,24 @@
   _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
 )
 
+dnl  Test body for checking C++17 support
+
 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17],
   _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
   _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
   _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
 )
 
+dnl  Test body for checking C++20 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20],
+  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
+  _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
+  _AX_CXX_COMPILE_STDCXX_testbody_new_in_20
+)
+
+
 dnl  Tests for new features in C++11
 
 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
@@ -960,3 +973,33 @@
 #endif  // __cplusplus < 201703L
 
 ]])
+
+
+dnl  Tests for new features in C++20
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 202002L
+
+#error "This is not a C++20 compiler"
+
+#else
+
+#include <version>
+
+namespace cxx20
+{
+
+// As C++20 supports feature test macros in the standard, there is no
+// immediate need to actually test for feature availability on the
+// Autoconf side.
+
+}  // namespace cxx20
+
+#endif  // __cplusplus < 202002L
+
+]])
--- a/m4/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/m4/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -12,5 +12,5 @@
   %reldir%/ltsugar.m4 \
   %reldir%/ltversion.m4 \
   %reldir%/lt~obsolete.m4 \
-  %reldir%/octave_blas_f77_func.m4 \
+  %reldir%/octave_blas.m4 \
   %reldir%/pkg.m4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m4/octave_blas.m4	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,109 @@
+dnl --------------------------------------------------------------------
+dnl
+dnl Copyright (C) 2022 The Octave Project Developers
+dnl
+dnl See the file COPYRIGHT.md in the top-level directory of this
+dnl distribution or <https://octave.org/copyright/>.
+dnl
+dnl This file is part of Octave.
+dnl
+dnl Octave is free software: you can redistribute it and/or modify it
+dnl under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation, either version 3 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl Octave is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with Octave; see the file COPYING.  If not, see
+dnl <https://www.gnu.org/licenses/>.
+dnl
+dnl --------------------------------------------------------------------
+dnl
+dnl Check for BLAS library and, if valid, determine integer size of library
+dnl
+AC_DEFUN([OCTAVE_BLAS], [
+  AC_PREREQ(2.50)
+  dnl Call reference macro to find BLAS library
+  AX_BLAS
+
+  if test "$cross_compiling" = yes ; then
+    dnl Assume BLAS library exists when cross compiling
+    ax_blas_ok=yes
+    AC_MSG_CHECKING([BLAS can be called from Fortran])
+    AC_MSG_RESULT([yes assumed for cross compilation])
+    dnl Assume generic 4-byte BLAS library if not specified
+    AC_MSG_CHECKING([BLAS library integer size])
+    if test -z "$ax_cv_blas_integer_size" ; then
+      ax_cv_blas_integer_size=4
+    fi
+    AC_MSG_RESULT([$ax_cv_blas_integer_size assumed for cross compilation])
+  elif test $ax_blas_ok = yes; then
+    ac_octave_save_LIBS="$LIBS"
+    LIBS="$BLAS_LIBS $LIBS"
+    AC_LANG_PUSH(Fortran 77)
+    ## Check BLAS library integer size.
+    ## If it does not appear to be 8 bytes, we assume it is 4 bytes.
+    ## FIXME: this may fail with options like -ftrapping-math.
+    AC_CACHE_CHECK([BLAS library integer size],
+      [ax_cv_blas_integer_size],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM(,[[
+      integer*8 two, n
+      integer*4 n2(2)
+      double precision d, a(1), b(1), ddot
+      equivalence (n, n2)
+
+      a(1) = 1.0
+      b(1) = 1.0
+
+c Generate 2**32 + 1 in an 8-byte integer.  Whether we have a big
+c endian or little endian system, both 4-byte words of this value
+c should be 1.
+
+      two = 2
+      n = (two ** 32) + 1
+
+c Check that our expectation about the type conversions are correct.
+
+      if (n2(1) .ne. 1 .or. n2(2) .ne. 1) then
+        print *, 'invalid assumption about integer type conversion'
+        stop 2
+      endif
+
+*     print *, n, n2(1), n2(2)
+*     print *, a(1), b(1)
+
+c DDOT will either see 1 or a large value for N.  Since INCX and INCY
+c are both 0, we will never increment the index, so A and B only need to
+c have a single element.  If N is interpreted as 1 (BLAS compiled with
+c 4-byte integers) then the result will be 1.  If N is interpreted as a
+c large value (BLAS compiled with 8-byte integers) then the result will
+c be the summation a(1)*b(1) 2^32+1 times.  This will also take some
+c time to compute, but at least for now it is the unusual case so we are
+c much more likely to exit quickly after detecting that the BLAS library
+c was compiled with 4-byte integers.
+
+      d = ddot (n, a, 0, b, 0)
+
+*     print *, a(1), b(1), d
+
+c Success (0 exit status) means we detected BLAS compiled with
+c 8-byte integers.
+
+      if (d .eq. 1.0) then
+        stop 1
+      endif
+
+        ]])],
+        ax_cv_blas_integer_size=8,
+        ax_cv_blas_integer_size=4)
+      ])
+
+  AC_LANG_POP(Fortran 77)
+  LIBS="$ac_octave_save_LIBS"
+fi
+
+])
--- a/m4/octave_blas_f77_func.m4	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-# OCTAVE_BLAS_F77_FUNC
-#
-# The same as AX_BLAS_F77_FUNC (described below) except attempt to
-# determine whether the BLAS library uses 32- or 64-bit integers instead
-# of failing if the default size of Fortran integers does not appear to
-# match the size of integers used by the BLAS library.
-
-# ===========================================================================
-#     https://www.gnu.org/software/autoconf-archive/ax_blas_f77_func.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_BLAS_F77_FUNC([ACTION-IF-PASS[, ACTION-IF-FAIL[, ACTION-IF-CROSS-COMPILING]])
-#   AX_BLAS_WITH_F77_FUNC([ACTION-IF-FOUND-AND-PASS[, ACTION-IF-NOT-FOUND-OR-FAIL]])
-#
-# DESCRIPTION
-#
-#   These macros are intended as a supplement to the AX_BLAS macro, to
-#   verify that BLAS functions are properly callable from Fortran. This is
-#   necessary, for example, if you want to build the LAPACK library on top
-#   of the BLAS.
-#
-#   AX_BLAS_F77_FUNC uses the defined BLAS_LIBS and Fortran environment to
-#   check for compatibility, and takes a specific action in case of success,
-#   resp. failure, resp. cross-compilation.
-#
-#   AX_BLAS_WITH_F77_FUNC is a drop-in replacement wrapper for AX_BLAS that
-#   calls AX_BLAS_F77_FUNC after detecting a BLAS library and rejects it on
-#   failure (i.e. pretends that no library was found).
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Jaroslav Hajek <highegg@gmail.com>
-#
-#   This program is free software: you can redistribute it and/or modify it
-#   under the terms of the GNU General Public License as published by the
-#   Free Software Foundation, either version 3 of the License, or (at your
-#   option) any later version.
-#
-#   This program is distributed in the hope that it will be useful, but
-#   WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-#   Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License along
-#   with this program. If not, see <https://www.gnu.org/licenses/>.
-#
-#   As a special exception, the respective Autoconf Macro's copyright owner
-#   gives unlimited permission to copy, distribute and modify the configure
-#   scripts that are the output of Autoconf when processing the Macro. You
-#   need not follow the terms of the GNU General Public License when using
-#   or distributing such scripts, even though portions of the text of the
-#   Macro appear in them. The GNU General Public License (GPL) does govern
-#   all other use of the material that constitutes the Autoconf Macro.
-#
-#   This special exception to the GPL applies to versions of the Autoconf
-#   Macro released by the Autoconf Archive. When you make and distribute a
-#   modified version of the Autoconf Macro, you may extend this special
-#   exception to the GPL to apply to your modified version as well.
-
-#serial 8
-
-## Derived from
-AC_DEFUN([OCTAVE_BLAS_F77_FUNC], [
-AC_PREREQ(2.50)
-AC_REQUIRE([AX_BLAS])
-
-# F77 call-compatibility checks
-if test "$cross_compiling" = yes ; then
-        ifelse($3, ,$1,$3)
-elif test x"$ax_blas_ok" = xyes; then
-        save_ax_blas_f77_func_LIBS="$LIBS"
-        LIBS="$BLAS_LIBS $LIBS"
-        AC_LANG_PUSH(Fortran 77)
-# LSAME check (LOGICAL return values)
-        AC_MSG_CHECKING([whether LSAME is called correctly from Fortran])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
-      logical lsame,w
-      external lsame
-      character c1,c2
-      c1 = 'A'
-      c2 = 'B'
-      w = lsame(c1,c2)
-      if (w) stop 1
-      w = lsame(c1,c1)
-      if (.not. w) stop 1
-      ]]),[ax_blas_lsame_fcall_ok=yes],
-        [ax_blas_lsame_fcall_ok=no])
-        AC_MSG_RESULT([$ax_blas_lsame_fcall_ok])
-# ISAMAX check (INTEGER return values)
-        AC_MSG_CHECKING([whether ISAMAX is called correctly from Fortran])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
-      integer isamax,i
-      external isamax
-      real a(2)
-      a(1) = 1e0
-      a(2) = -2e0
-      i = isamax(2,a,1)
-      if (i.ne.2) stop 1
-      ]]),[ax_blas_isamax_fcall_ok=yes],
-        [ax_blas_isamax_fcall_ok=no])
-        AC_MSG_RESULT([$ax_blas_isamax_fcall_ok])
-# SDOT check (REAL return values)
-        AC_MSG_CHECKING([whether SDOT is called correctly from Fortran])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
-      real sdot,a(1),b(1),w
-      external sdot
-      a(1) = 1e0
-      b(1) = 2e0
-      w = sdot(1,a,1,b,1)
-      if (w .ne. a(1)*b(1)) stop 1
-      ]]),[ax_blas_sdot_fcall_ok=yes],
-        [ax_blas_sdot_fcall_ok=no])
-        AC_MSG_RESULT([$ax_blas_sdot_fcall_ok])
-# DDOT check (DOUBLE return values)
-        AC_MSG_CHECKING([whether DDOT is called correctly from Fortran])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
-      double precision ddot,a(1),b(1),w
-      external ddot
-      a(1) = 1d0
-      b(1) = 2d0
-      w = ddot(1,a,1,b,1)
-      if (w .ne. a(1)*b(1)) stop 1
-      ]]),[ax_blas_ddot_fcall_ok=yes],
-        [ax_blas_ddot_fcall_ok=no])
-        AC_MSG_RESULT([$ax_blas_ddot_fcall_ok])
-# CDOTU check (COMPLEX return values)
-        AC_MSG_CHECKING([whether CDOTU is called correctly from Fortran])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
-      complex cdotu,a(1),b(1),w
-      external cdotu
-      a(1) = cmplx(1e0,1e0)
-      b(1) = cmplx(1e0,2e0)
-      w = cdotu(1,a,1,b,1)
-      if (w .ne. a(1)*b(1)) stop 1
-      ]]),[ax_blas_cdotu_fcall_ok=yes],
-        [ax_blas_cdotu_fcall_ok=no])
-        AC_MSG_RESULT([$ax_blas_cdotu_fcall_ok])
-# ZDOTU check (DOUBLE COMPLEX return values)
-        AC_MSG_CHECKING([whether ZDOTU is called correctly from Fortran])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
-      double complex zdotu,a(1),b(1),w
-      external zdotu
-      a(1) = dcmplx(1d0,1d0)
-      b(1) = dcmplx(1d0,2d0)
-      w = zdotu(1,a,1,b,1)
-      if (w .ne. a(1)*b(1)) stop 1
-      ]]),[ax_blas_zdotu_fcall_ok=yes],
-        [ax_blas_zdotu_fcall_ok=no])
-        AC_MSG_RESULT([$ax_blas_zdotu_fcall_ok])
-# Check BLAS library integer size.  If it does not appear to be
-# 8 bytes, we assume it is 4 bytes.
-# FIXME: this may fail with things like -ftrapping-math.
-        AC_MSG_CHECKING([BLAS library integer size])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
-      integer*8 two, n
-      integer*4 n2(2)
-      double precision d, a(1), b(1), ddot
-      equivalence (n, n2)
-
-      a(1) = 1.0
-      b(1) = 1.0
-
-c Generate 2**32 + 1 in an 8-byte integer.  Whether we have a big
-c endian or little endian system, both 4-byte words of this value
-c should be 1.
-
-      two = 2
-      n = (two ** 32) + 1
-
-c Check that our expectation about the type conversions are correct.
-
-      if (n2(1) .ne. 1 .or. n2(2) .ne. 1) then
-        print *, 'invalid assumption about integer type conversion'
-        stop 2
-      endif
-
-*     print *, n, n2(1), n2(2)
-*     print *, a(1), b(1)
-
-c DDOT will either see 1 or a large value for N.  Since INCX and INCY
-c are both 0, we will never increment the index, so A and B only need to
-c have a single element.  If N is interpreted as 1 (BLAS compiled with 4
-c byte integers) then the result will be 1.  If N is interpreted as a
-c large value (BLAS compiled with 8 byte integers) then the result will
-c be the summation a(1)*b(1) 2^32+1 times.  This will also take some
-c time to compute, but at least for now it is the unusual case so we are
-c much more likely to exit quickly after detecting that the BLAS library
-c was compiled with 4-byte integers.
-
-      d = ddot (n, a, 0, b, 0)
-
-*     print *, a(1), b(1), d
-
-c Success (0 exit status) means we detected BLAS compiled with
-c 8-byte integers.
-
-      if (d .eq. 1.0) then
-        stop 1
-      endif
-
-       ]]),[ax_blas_integer_size=8],
-        [ax_blas_integer_size=4])
-        AC_MSG_RESULT([$ax_blas_integer_size])
-
-        AC_LANG_POP(Fortran 77)
-
-# if any of the tests failed, reject the BLAS library
-        if test $ax_blas_lsame_fcall_ok = yes \
-                -a $ax_blas_sdot_fcall_ok = yes \
-                -a $ax_blas_ddot_fcall_ok = yes \
-                -a $ax_blas_cdotu_fcall_ok = yes \
-                -a $ax_blas_zdotu_fcall_ok = yes ; then
-                ax_blas_f77_func_ok=yes;
-                $1
-        else
-                ax_blas_f77_func_ok=no;
-                $2
-        fi
-        LIBS="$save_ax_blas_f77_func_LIBS"
-fi
-
-])dnl AX_BLAS_F77_FUNC
-
-AC_DEFUN([OCTAVE_BLAS_WITH_F77_FUNC], [
-AC_PREREQ(2.50)
-AX_BLAS([# disable special action], [])
-if test x$ax_blas_ok = xyes ; then
-        OCTAVE_BLAS_F77_FUNC(
-        [ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1])],
-        [ax_blas_ok=no; BLAS_LIBS=])
-fi
-if test x$ax_blas_ok = xno ; then
-        :
-        $2
-fi
-])dnl AX_BLAS_WITH_F77_FUNC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/oct-conf-post-private.in.h	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,112 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 1993-2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if ! defined (HAVE_DEV_T)
+typedef short dev_t;
+#endif
+
+#if ! defined (HAVE_INO_T)
+typedef unsigned long ino_t;
+#endif
+
+#if defined (_MSC_VER)
+#  define __WIN32__ 1
+#  define WIN32 1
+   /* missing parameters in macros */
+#  pragma warning (disable: 4003)
+   /* missing implementations in template instantiation */
+#  pragma warning (disable: 4996)
+   /* deprecated function names (FIXME: ???) */
+#  pragma warning (disable: 4661)
+#endif
+
+#if defined (__APPLE__) && defined (__MACH__)
+#  define OCTAVE_USE_OS_X_API 1
+#endif
+
+/* Silence deprecated API warning from Apple OS > 10.14 */
+#if defined (__APPLE__) && defined (__MACH__) && defined (HAVE_OPENGL)
+#  define GL_SILENCE_DEPRECATION 1
+#endif
+
+/* Define to 1 if we expect to have <windows.h>, Sleep, etc. */
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+#  define OCTAVE_USE_WINDOWS_API 1
+#endif
+
+#if defined (OCTAVE_USE_WINDOWS_API)
+#  define OCTAVE_HAVE_WINDOWS_FILESYSTEM 1
+#elif defined (__CYGWIN__)
+#  define OCTAVE_HAVE_WINDOWS_FILESYSTEM 1
+#  define OCTAVE_HAVE_POSIX_FILESYSTEM 1
+#else
+#  define OCTAVE_HAVE_POSIX_FILESYSTEM 1
+#endif
+
+#if defined (__MINGW32__)
+  /* We need to include this header or __MSVCRT_VERSION__ might not be defined
+     to the correct value */
+#  include <_mingw.h>
+#endif
+/* assume that Windows will support UTF-8 locales when using UCRT */
+#if defined (__MSVCRT_VERSION__) && __MSVCRT_VERSION__ == 0x0E00
+#  define OCTAVE_HAVE_WINDOWS_UTF8_LOCALE 1
+#endif
+
+/* sigsetjmp is a macro, not a function. */
+#if defined (sigsetjmp) && defined (HAVE_SIGLONGJMP)
+#  define OCTAVE_HAVE_SIG_JUMP 1
+#endif
+
+/* To be able to use long doubles for 64-bit mixed arithmetics, we need
+   them at least 80 bits wide and we need roundl declared in math.h.
+   FIXME: Maybe substitute this by a more precise check in the future?  */
+#if (SIZEOF_LONG_DOUBLE >= 10) && defined (HAVE_ROUNDL)
+#  define OCTAVE_INT_USE_LONG_DOUBLE
+#  if (SIZEOF_LONG_DOUBLE < 16                                          \
+       && (defined __i386__ || defined __x86_64__) && defined __GNUC__)
+#    define OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED 1
+#  endif
+#endif
+
+/* Make all .oct file interpreter functions and methods static.  */
+#define OCTAVE_USE_STATIC_DEFUN
+
+/* This macro is intended to be used only to enable inline functions or
+   typedefs that provide access to symbols that have been moved to the
+   octave namespace.  It may be temporarily useful to define this macro
+   when moving a symbol to the octave namespace but it should not be
+   defined when building released versions of Octave, as building those
+   should not require deprecated symbols.  It is defined in
+   octave-config.h, so users of Octave may continue to access symbols
+   using the deprecated names.  */
+/* #undef OCTAVE_PROVIDE_DEPRECATED_SYMBOLS */
+
+/* Tag indicating Octave's autoconf-generated config.h has been
+   included.  This symbol is provided because autoconf-generated
+   config.h files do not define a multiple-inclusion guard.  See also
+   the notes at the top of the generated octave-config.h file.  */
+
+#define OCTAVE_AUTOCONFIG_H_INCLUDED 1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/oct-conf-post-public.in.h	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,310 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 1993-2022 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Octave is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if defined (__cplusplus)
+#  include <cinttypes>
+#else
+#  include <inttypes.h>
+#endif
+
+#  define OCTAVE_NAMESPACE_BEGIN namespace octave {
+#  define OCTAVE_NAMESPACE_END }
+
+/* The C++ standard is evolving to allow attribute hints in a
+   compiler-independent manner.  In C++ 2011 support for noreturn was
+   added.  In C++ 2014 support for deprecated was added.  The Octave
+   code base has been future-proofed by using macros of the form
+   OCTAVE_ATTRIBUTE_NAME in place of vendor specific attribute
+   mechanisms.  As compilers evolve, the underlying implementation can
+   be changed with the macro definitions below.  FIXME: Update macros
+   to use C++ standard attribute syntax when Octave moves to C++ 2011
+   standard.  */
+
+#if defined (__GNUC__)
+   /* The following attributes are used with gcc and clang compilers.  */
+#  if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+#    define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__ ("[" #ver "]: " msg)))
+#  else
+#    define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__))
+#  endif
+#  define HAVE_OCTAVE_DEPRECATED_ATTR 1
+
+#  define OCTAVE_NORETURN __attribute__ ((__noreturn__))
+#  define HAVE_OCTAVE_NORETURN_ATTR 1
+
+#  define OCTAVE_UNUSED __attribute__ ((__unused__))
+#  define HAVE_OCTAVE_UNUSED_ATTR 1
+#else
+#  define OCTAVE_DEPRECATED(ver, msg)
+#  define OCTAVE_NORETURN
+#  define OCTAVE_UNUSED
+
+/* #  undef HAVE_OCTAVE_DEPRECATED_ATTR */
+/* #  undef HAVE_OCTAVE_NORETURN_ATTR */
+/* #  undef HAVE_OCTAVE_UNUSED_ATTR */
+#endif
+
+#if defined (__MINGW32__)
+  /* MinGW requires special handling due to different format specifiers
+   * on different platforms.  The macro __MINGW_PRINTF_FORMAT maps to
+   * either gnu_printf or ms_printf depending on where we are compiling
+   * to avoid warnings on format specifiers that are legal.
+   * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331349  */
+#  if defined (__cplusplus)
+#    include <cstdio>
+#  else
+#    include <stdio.h>
+#  endif
+
+#  define OCTAVE_FORMAT_PRINTF(stringIndex, firstToCheck) \
+     __attribute__ ((format (__MINGW_PRINTF_FORMAT, stringIndex, firstToCheck)))
+
+#  define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
+#elif defined (__GNUC__)
+   /* The following attributes are used with gcc and clang compilers.  */
+#  define OCTAVE_FORMAT_PRINTF(index, first) \
+     __attribute__ ((__format__(printf, index, first)))
+
+#  define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
+#else
+#  define OCTAVE_FORMAT_PRINTF(index, first)
+
+/* #  undef HAVE_OCTAVE_FORMAT_PRINTF_ATTR */
+#endif
+
+#if ! defined (OCTAVE_FALLTHROUGH)
+#  if defined (__cplusplus) && __cplusplus > 201402L
+#    define OCTAVE_FALLTHROUGH [[fallthrough]]
+#  elif defined (__GNUC__) && __GNUC__ < 7
+#    define OCTAVE_FALLTHROUGH ((void) 0)
+#  else
+#    define OCTAVE_FALLTHROUGH __attribute__ ((__fallthrough__))
+#  endif
+#endif
+
+#if defined (__cplusplus)
+template <typename T>
+static inline void
+octave_unused_parameter (const T&)
+{ }
+#else
+#  define octave_unused_parameter(param) (void) param;
+#endif
+
+#if defined (OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS)
+#  if defined (_WIN32) || defined (__CYGWIN__)
+#    if defined (__GNUC__)
+       /* GCC */
+#      define OCTAVE_EXPORT __attribute__ ((dllexport))
+#      define OCTAVE_IMPORT __attribute__ ((dllimport))
+#    else
+       /* MSVC */
+#      define OCTAVE_EXPORT __declspec(dllexport)
+#      define OCTAVE_IMPORT __declspec(dllimport)
+#    endif
+#  else
+     /* All other platforms. */
+#    define OCTAVE_EXPORT __attribute__ ((visibility ("default")))
+#    define OCTAVE_IMPORT
+#  endif
+#else
+#  define OCTAVE_EXPORT
+#  define OCTAVE_IMPORT
+#endif
+
+/* API macros for liboctave */
+#if defined (OCTAVE_DLL)
+#  define OCTAVE_API OCTAVE_EXPORT
+#  if defined (_WIN32) || defined (__CYGWIN__)
+#    define OCTAVE_TEMPLATE_API
+#    if defined(__MINGW32__)
+#      define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#      define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
+#    else
+#      define OCTAVE_EXTERN_TEMPLATE_API
+#      define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
+#    endif
+#    define OCTAVE_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
+#  else
+#    define OCTAVE_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
+#    define OCTAVE_OVERRIDABLE_FUNC_API
+#  endif
+#else
+#  define OCTAVE_API OCTAVE_IMPORT
+#  define OCTAVE_TEMPLATE_API
+#  define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_IMPORT
+#  define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
+#  define OCTAVE_OVERRIDABLE_FUNC_API
+#endif
+
+/* API macros for liboctinterp */
+#if defined (OCTINTERP_DLL)
+#  define OCTINTERP_API OCTAVE_EXPORT
+#  if defined (_WIN32) || defined (__CYGWIN__)
+#    define OCTINTERP_TEMPLATE_API
+#    if defined(__MINGW32__)
+#      define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#      define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
+#    else
+#      define OCTINTERP_EXTERN_TEMPLATE_API
+#      define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
+#    endif
+#    define OCTINTERP_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
+#  else
+#    define OCTINTERP_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
+#    define OCTINTERP_OVERRIDABLE_FUNC_API
+#  endif
+#else
+#  define OCTINTERP_API OCTAVE_IMPORT
+#  define OCTINTERP_TEMPLATE_API
+#  define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_IMPORT
+#  define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
+#  define OCTINTERP_OVERRIDABLE_FUNC_API
+#endif
+
+/* API macros for the Array class in liboctave and liboctinterp */
+#if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL))
+#  define OCTARRAY_API OCTAVE_EXPORT
+#  if defined (_WIN32) || defined (__CYGWIN__)
+#    define OCTARRAY_TEMPLATE_API
+#    if defined(__MINGW32__)
+#      define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#      define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
+#    else
+#      define OCTARRAY_EXTERN_TEMPLATE_API
+#      define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
+#    endif
+#    define OCTARRAY_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
+#  else
+#    define OCTARRAY_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
+#    define OCTARRAY_OVERRIDABLE_FUNC_API
+#  endif
+#else
+#  define OCTARRAY_API OCTAVE_IMPORT
+#  define OCTARRAY_TEMPLATE_API
+#  define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_IMPORT
+#  define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
+#  define OCTARRAY_OVERRIDABLE_FUNC_API
+#endif
+
+/* API macros for libinterp/graphics */
+#if defined (OCTGRAPHICS_DLL)
+#  define OCTGRAPHICS_API OCTAVE_EXPORT
+#  if defined (_WIN32) || defined (__CYGWIN__)
+#    define OCTGRAPHICS_TEMPLATE_API
+#    if defined(__MINGW32__)
+#      define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#      define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
+#    else
+#      define OCTGRAPHICS_EXTERN_TEMPLATE_API
+#      define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
+#    endif
+#    define OCTGRAPHICS_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
+#  else
+#    define OCTGRAPHICS_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
+#    define OCTGRAPHICS_OVERRIDABLE_FUNC_API
+#  endif
+#else
+#  define OCTGRAPHICS_API OCTAVE_IMPORT
+#  define OCTGRAPHICS_TEMPLATE_API
+#  define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_IMPORT
+#  define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
+#  define OCTGRAPHICS_OVERRIDABLE_FUNC_API
+#endif
+
+/* API macros for libgui */
+#if defined (OCTGUI_DLL)
+#  define OCTGUI_API OCTAVE_EXPORT
+#  if defined (_WIN32) || defined (__CYGWIN__)
+#    define OCTGUI_TEMPLATE_API
+#    if defined(__MINGW32__)
+#      define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#      define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
+#    else
+#      define OCTGUI_EXTERN_TEMPLATE_API
+#      define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
+#    endif
+#    define OCTGUI_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
+#  else
+#    define OCTGUI_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_EXPORT
+#    define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
+#    define OCTGUI_OVERRIDABLE_FUNC_API
+#  endif
+#else
+#  define OCTGUI_API OCTAVE_IMPORT
+#  define OCTGUI_TEMPLATE_API
+#  define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_IMPORT
+#  define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
+#  define OCTGUI_OVERRIDABLE_FUNC_API
+#endif
+
+#if defined (OCTAVE_ENABLE_64)
+#  define OCTAVE_IDX_TYPE_FORMAT PRId64
+#else
+#  define OCTAVE_IDX_TYPE_FORMAT PRId32
+#endif
+
+#if OCTAVE_SIZEOF_F77_INT_TYPE == 8
+#  define OCTAVE_F77_INT_TYPE_FORMAT PRId64
+#else
+#  define OCTAVE_F77_INT_TYPE_FORMAT PRId32
+#endif
+
+#define OCTAVE_HAVE_F77_INT_TYPE 1
+
+/* time type in API is always 64 bits wide */
+#define OCTAVE_TIME_T int64_t
+
+#if defined (__cplusplus) && ! defined (OCTAVE_THREAD_LOCAL)
+#  define OCTAVE_THREAD_LOCAL
+#endif
+
+typedef OCTAVE_IDX_TYPE octave_idx_type;
+typedef OCTAVE_F77_INT_TYPE octave_f77_int_type;
+
+/* Backward compatibility */
+
+#if defined (OCTAVE_ENABLE_64)
+#  define USE_64_BIT_IDX_T 1
+#endif
+
+#if defined (OCTAVE_ENABLE_OPENMP)
+#  define HAVE_OPENMP 1
+#endif
+
+#if defined (OCTAVE_ENABLE_FLOAT_TRUNCATE)
+#  define OCTAVE_FLOAT_TRUNCATE volatile
+#else
+#  define OCTAVE_FLOAT_TRUNCATE
+#endif
--- a/oct-conf-post.in.h	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,297 +0,0 @@
-////////////////////////////////////////////////////////////////////////
-//
-// Copyright (C) 1993-2022 The Octave Project Developers
-//
-// See the file COPYRIGHT.md in the top-level directory of this
-// distribution or <https://octave.org/copyright/>.
-//
-// This file is part of Octave.
-//
-// Octave is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Octave is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Octave; see the file COPYING.  If not, see
-// <https://www.gnu.org/licenses/>.
-//
-////////////////////////////////////////////////////////////////////////
-
-#  define OCTAVE_NAMESPACE_BEGIN namespace octave {
-#  define OCTAVE_NAMESPACE_END }
-
-/* The C++ standard is evolving to allow attribute hints in a
-   compiler-independent manner.  In C++ 2011 support for noreturn was
-   added.  In C++ 2014 support for deprecated was added.  The Octave
-   code base has been future-proofed by using macros of the form
-   OCTAVE_ATTRIBUTE_NAME in place of vendor specific attribute
-   mechanisms.  As compilers evolve, the underlying implementation can
-   be changed with the macro definitions below.  FIXME: Update macros
-   to use C++ standard attribute syntax when Octave moves to C++ 2011
-   standard.  */
-
-#if defined (__GNUC__)
-   /* The following attributes are used with gcc and clang compilers.  */
-#  if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
-#    define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__ ("[" #ver "]: " msg)))
-#  else
-#    define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__))
-#  endif
-#  define HAVE_OCTAVE_DEPRECATED_ATTR 1
-
-#  define OCTAVE_NORETURN __attribute__ ((__noreturn__))
-#  define HAVE_OCTAVE_NORETURN_ATTR 1
-
-#  define OCTAVE_UNUSED __attribute__ ((__unused__))
-#  define HAVE_OCTAVE_UNUSED_ATTR 1
-#else
-#  define OCTAVE_DEPRECATED(ver, msg)
-#  define OCTAVE_NORETURN
-#  define OCTAVE_UNUSED
-#endif
-
-#if defined (__MINGW32__)
-  /* MinGW requires special handling due to different format specifiers
-   * on different platforms.  The macro __MINGW_PRINTF_FORMAT maps to
-   * either gnu_printf or ms_printf depending on where we are compiling
-   * to avoid warnings on format specifiers that are legal.
-   * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331349  */
-#  if defined (__cplusplus)
-#    include <cstdio>
-#  else
-#    include <stdio.h>
-#  endif
-
-#  define OCTAVE_FORMAT_PRINTF(stringIndex, firstToCheck) \
-     __attribute__ ((format (__MINGW_PRINTF_FORMAT, stringIndex, firstToCheck)))
-
-#  define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
-#elif defined (__GNUC__)
-   /* The following attributes are used with gcc and clang compilers.  */
-#  define OCTAVE_FORMAT_PRINTF(index, first) \
-     __attribute__ ((__format__(printf, index, first)))
-
-#  define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
-#else
-#  define OCTAVE_FORMAT_PRINTF(index, first)
-
-/* #  undef HAVE_OCTAVE_FORMAT_PRINTF_ATTR */
-#endif
-
-#if ! defined (OCTAVE_FALLTHROUGH)
-#  if defined (__cplusplus) && __cplusplus > 201402L
-#    define OCTAVE_FALLTHROUGH [[fallthrough]]
-#  elif defined (__GNUC__) && __GNUC__ < 7
-#    define OCTAVE_FALLTHROUGH ((void) 0)
-#  else
-#    define OCTAVE_FALLTHROUGH __attribute__ ((__fallthrough__))
-#  endif
-#endif
-
-/* This macro is intended to be used only to enable inline functions or
-   typedefs that provide access to symbols that have been moved to the
-   octave namespace.  It may be temporarily useful to define this macro
-   when moving a symbol to the octave namespace but it should not be
-   defined when building released versions of Octave, as building those
-   should not require deprecated symbols.  It is defined in
-   octave-config.h, so users of Octave may continue to access symbols
-   using the deprecated names.  */
-/* #undef OCTAVE_PROVIDE_DEPRECATED_SYMBOLS */
-
-#if defined (__cplusplus)
-template <typename T>
-static inline void
-octave_unused_parameter (const T&)
-{ }
-#else
-#  define octave_unused_parameter(param) (void) param;
-#endif
-
-#if ! defined (HAVE_DEV_T)
-typedef short dev_t;
-#endif
-
-#if ! defined (HAVE_INO_T)
-typedef unsigned long ino_t;
-#endif
-
-#if defined (_MSC_VER)
-#  define __WIN32__ 1
-#  define WIN32 1
-   /* missing parameters in macros */
-#  pragma warning (disable: 4003)
-   /* missing implementations in template instantiation */
-#  pragma warning (disable: 4996)
-   /* deprecated function names (FIXME: ???) */
-#  pragma warning (disable: 4661)
-#endif
-
-#if defined (__APPLE__) && defined (__MACH__)
-#  define OCTAVE_USE_OS_X_API 1
-#endif
-
-/* Silence deprecated API warning from Apple OS > 10.14 */
-#if defined (__APPLE__) && defined (__MACH__) && defined (HAVE_OPENGL)
-#  define GL_SILENCE_DEPRECATION 1
-#endif
-
-/* Define to 1 if we expect to have <windows.h>, Sleep, etc. */
-#if defined (__WIN32__) && ! defined (__CYGWIN__)
-#  define OCTAVE_USE_WINDOWS_API 1
-#endif
-
-#if defined (OCTAVE_USE_WINDOWS_API)
-#  define OCTAVE_HAVE_WINDOWS_FILESYSTEM 1
-#elif defined (__CYGWIN__)
-#  define OCTAVE_HAVE_WINDOWS_FILESYSTEM 1
-#  define OCTAVE_HAVE_POSIX_FILESYSTEM 1
-#else
-#  define OCTAVE_HAVE_POSIX_FILESYSTEM 1
-#endif
-
-#if defined (__MINGW32__)
-  /* We need to include this header or __MSVCRT_VERSION__ might not be defined
-     to the correct value */
-#  include <_mingw.h>
-#endif
-/* assume that Windows will support UTF-8 locales when using UCRT */
-#if defined (__MSVCRT_VERSION__) && __MSVCRT_VERSION__ == 0x0E00
-#  define OCTAVE_HAVE_WINDOWS_UTF8_LOCALE 1
-#endif
-
-/* sigsetjmp is a macro, not a function. */
-#if defined (sigsetjmp) && defined (HAVE_SIGLONGJMP)
-#  define OCTAVE_HAVE_SIG_JUMP 1
-#endif
-
-/* To be able to use long doubles for 64-bit mixed arithmetics, we need
-   them at least 80 bits wide and we need roundl declared in math.h.
-   FIXME: Maybe substitute this by a more precise check in the future?  */
-#if (SIZEOF_LONG_DOUBLE >= 10) && defined (HAVE_ROUNDL)
-#  define OCTAVE_INT_USE_LONG_DOUBLE
-#  if (SIZEOF_LONG_DOUBLE < 16                                          \
-       && (defined __i386__ || defined __x86_64__) && defined __GNUC__)
-#    define OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED 1
-#  endif
-#endif
-
-/* oct-dlldefs.h */
-
-#if defined (OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS)
-#  if defined (_WIN32) || defined (__CYGWIN__)
-#    if defined (__GNUC__)
-       /* GCC */
-#      define OCTAVE_EXPORT __attribute__ ((dllexport))
-#      define OCTAVE_IMPORT __attribute__ ((dllimport))
-#    else
-       /* MSVC */
-#      define OCTAVE_EXPORT __declspec(dllexport)
-#      define OCTAVE_IMPORT __declspec(dllimport)
-#    endif
-#  else
-     /* All other platforms. */
-#    define OCTAVE_EXPORT __attribute__ ((visibility ("default")))
-#    define OCTAVE_IMPORT
-#  endif
-#else
-#  define OCTAVE_EXPORT
-#  define OCTAVE_IMPORT
-#endif
-
-/* API macro for liboctave */
-#if defined (OCTAVE_DLL)
-#  define OCTAVE_API OCTAVE_EXPORT
-#else
-#  define OCTAVE_API OCTAVE_IMPORT
-#endif
-
-/* API macro for liboctinterp */
-#if defined (OCTINTERP_DLL)
-#  define OCTINTERP_API OCTAVE_EXPORT
-#else
-#  define OCTINTERP_API OCTAVE_IMPORT
-#endif
-
-/* API macro for the Array class in liboctave and liboctinterp */
-#if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL))
-#  define OCTARRAY_API OCTAVE_EXPORT
-#else
-#  define OCTARRAY_API OCTAVE_IMPORT
-#endif
-
-/* API macro for libinterp/graphics */
-#if defined (OCTGRAPHICS_DLL)
-#  define OCTGRAPHICS_API OCTAVE_EXPORT
-#else
-#  define OCTGRAPHICS_API OCTAVE_IMPORT
-#endif
-
-/* API macro for libgui */
-#if defined (OCTGUI_DLL)
-#  define OCTGUI_API OCTAVE_EXPORT
-#else
-#  define OCTGUI_API OCTAVE_IMPORT
-#endif
-
-/* Backward compatibility */
-
-#if defined (OCTAVE_ENABLE_64)
-#  define USE_64_BIT_IDX_T 1
-#endif
-
-#if defined (OCTAVE_ENABLE_OPENMP)
-#  define HAVE_OPENMP 1
-#endif
-
-#if defined (OCTAVE_ENABLE_FLOAT_TRUNCATE)
-#  define OCTAVE_FLOAT_TRUNCATE volatile
-#else
-#  define OCTAVE_FLOAT_TRUNCATE
-#endif
-
-#if defined (__cplusplus)
-#  include <cinttypes>
-#else
-#  include <inttypes.h>
-#endif
-
-typedef OCTAVE_IDX_TYPE octave_idx_type;
-
-#if defined (OCTAVE_ENABLE_64)
-#  define OCTAVE_IDX_TYPE_FORMAT PRId64
-#else
-#  define OCTAVE_IDX_TYPE_FORMAT PRId32
-#endif
-
-typedef OCTAVE_F77_INT_TYPE octave_f77_int_type;
-
-#if OCTAVE_SIZEOF_F77_INT_TYPE == 8
-#  define OCTAVE_F77_INT_TYPE_FORMAT PRId64
-#else
-#  define OCTAVE_F77_INT_TYPE_FORMAT PRId32
-#endif
-
-#define OCTAVE_HAVE_F77_INT_TYPE 1
-
-/* time type in API is always 64 bits wide */
-#define OCTAVE_TIME_T int64_t
-
-#if defined (__cplusplus) && ! defined (OCTAVE_THREAD_LOCAL)
-#  define OCTAVE_THREAD_LOCAL
-#endif
-
-/* Make all .oct file interpreter functions and methods static.  */
-#define OCTAVE_USE_STATIC_DEFUN
-
-/* Tag indicating Octave's autoconf-generated config.h has been
-   included.  This symbol is provided because autoconf-generated
-   config.h files do not define a multiple-inclusion guard.  See also
-   the notes at the top of the generated octave-config.h file.  */
-
-#define OCTAVE_AUTOCONFIG_H_INCLUDED 1
--- a/scripts/+containers/Map.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/+containers/Map.m	Tue Nov 15 13:15:28 2022 -0800
@@ -305,6 +305,7 @@
 
       ## -*- texinfo -*-
       ## @deftypefn {} {} Map.remove (@var{keySet})
+      ## @deftypefn {} {@var{newMap) =} Map.remove (@var{keySet})
       ## Remove the list of key/value pairs specified by a cell array of keys
       ## @var{keySet} from the map.
       ##
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/+matlab/+lang/MemoizedFunction.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,211 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+classdef MemoizedFunction < handle
+
+  properties (GetAccess = public, SetAccess = private)
+    Function = [];
+  endproperties
+
+  properties (Access = public)
+    Enabled = true;
+    CacheSize = 10;
+  endproperties
+
+  properties (Access = private, Hidden = true)
+    Cache;
+  endproperties
+
+  methods (Access = public)
+
+    function this = MemoizedFunction (fcn_handle)
+      if (! isa (fcn_handle, "function_handle"))
+        error ("matlab.lang.MemoizedFunction: FCN_HANDLE must be a function handle");
+      endif
+      this.Function = fcn_handle;
+      this.Cache = init_cache ();
+    endfunction
+
+    function varargout = subsref (this, s)
+
+      switch (s(1).type)
+
+        case "."
+          switch (s(1).subs)
+            case "Function"
+              varargout{1} = this.Function;
+            case "Enabled"
+              varargout{1} = this.Enabled;
+            case "CacheSize"
+              varargout{1} = this.CacheSize;
+            case "clearCache"
+              clearCache (this);
+              varargout = {};
+            case "stats"
+              varargout{1} = stats (this);
+            otherwise
+              error ("matlab.lang.MemoizedFunction: unknown property '%s'", ...
+                     s(1).subs);
+          endswitch
+
+        case "()"
+          n_out = ifelse (nargout == 0, 1, nargout);
+          if (! this.Enabled)
+            [varargout{1:n_out}] = feval (this.Function, s(1).subs{:});
+          else
+            cache_idx = [];
+            for i = 1:numel (this.Cache.Inputs)
+              if (isequaln (this.Cache.Inputs{i}, s(1).subs) ...
+                  && isequal (this.Cache.Nargout(i), nargout))
+                cache_idx = i;
+                break;
+              endif
+            endfor
+            if (! isempty (cache_idx))
+              [varargout{1:n_out}] = deal (this.Cache.Outputs{cache_idx}{:});
+              this.Cache.TotalHits += 1;
+              this.Cache.HitCount(cache_idx) += 1;
+            else
+              [varargout{1:n_out}] = feval (this.Function, s(1).subs{:});
+              n = numel (this.Cache.Inputs) + 1;
+              if (n > this.CacheSize)
+                this.Cache.Inputs(1)   = [];
+                this.Cache.Nargout(1)  = [];
+                this.Cache.Outputs(1)  = [];
+                this.Cache.HitCount(1) = [];
+                n -= 1;  # FIFO
+              endif
+              this.Cache.Inputs{n}   = s(1).subs;
+              this.Cache.Nargout(n)  = nargout;
+              this.Cache.Outputs{n}  = varargout;
+              this.Cache.HitCount(n) = 0;
+              this.Cache.TotalMisses += 1;
+            endif
+          endif
+
+        otherwise
+          error ("matlab.lang.MemoizedFunction: only '()' indexing is supported");
+
+      endswitch
+
+      if (numel (s) > 1)
+        varargout{1} = subsref (varargout{1}, s(2:end));
+      endif
+
+    endfunction
+
+    function this = subsasgn (this, s, val)
+
+      if (numel (s) > 1)
+        error ("matlab.lang.MemoizedFunction: only one level of indexing is supported");
+      endif
+
+      switch (s(1).type)
+
+        case "."
+          switch (s(1).subs)
+            case "Function"
+              error ("matlab.lang.MemoizedFunction: property Function is read-only");
+
+            case "Enabled"
+              if (! isscalar (val) || ! (isnumeric (val) || islogical (val)) ...
+                  || ! isfinite (val))
+                error ("matlab.lang.MemoizedFunction: Enabled must be a logical scalar");
+              endif
+              this.Enabled = logical (val);
+
+            case "CacheSize"
+              if (! isscalar (val) || ! isnumeric (val) || ! isfinite (val) ...
+                  || val < 1 || fix (val) != val)
+                error ("matlab.lang.MemoizedFunction: CacheSize must be a positive integer scalar");
+              endif
+              this.CacheSize = double (val);
+              n = numel(this.Cache.Inputs) - this.CacheSize;
+              if (n > 0)
+                this.Cache.Inputs(1:n)   = [];
+                this.Cache.Nargout(1:n)  = [];
+                this.Cache.Outputs(1:n)  = [];
+                this.Cache.HitCount(1:n) = [];
+              endif
+
+            otherwise
+              error ("matlab.lang.MemoizedFunction: unknown property '%s'", ...
+                     s(1).subs);
+          endswitch
+
+        otherwise
+          error ("matlab.lang.MemoizedFunction: only '.' indexing is supported for assigning values");
+
+      endswitch
+
+    endfunction
+
+    function clearCache (this)
+      this.Cache = init_cache ();
+    endfunction
+
+    function s = stats (this)
+
+      if (isempty (this.Cache.Inputs))
+        CacheHitRatePercent   = 0;
+        CacheOccupancyPercent = 0;
+        MostHitCachedInput    = [];
+      else
+        CacheHitRatePercent   = 100 * (this.Cache.TotalHits /
+                                (this.Cache.TotalHits + this.Cache.TotalMisses));
+        CacheOccupancyPercent = 100 * (numel (this.Cache.Inputs)
+                                       / this.CacheSize);
+        [~, i] = max (this.Cache.HitCount);
+        MostHitCachedInput    = struct ("Hits", this.Cache.HitCount(i),
+                                        "Input", {this.Cache.Inputs{i}});
+      endif
+      s = struct (
+        "Cache",                 this.Cache,
+        "MostHitCachedInput",    MostHitCachedInput,
+        "CacheHitRatePercent",   CacheHitRatePercent,
+        "CacheOccupancyPercent", CacheOccupancyPercent);
+
+    endfunction
+
+    function newobj = horzcat (varargin)
+      error ("matlab.lang.MemoizedFunction: concatenation is not allowed");
+    endfunction
+
+    function newobj = horzcat (varargin)
+      error ("matlab.lang.MemoizedFunction: concatenation is not allowed");
+    endfunction
+
+  endmethods
+
+endclassdef
+
+function cache = init_cache ()
+  cache = struct ("Inputs",      {{}},
+                  "Nargout",     [],
+                  "Outputs",     {{}},
+                  "HitCount",    [],
+                  "TotalHits",   0,
+                  "TotalMisses", 0);
+endfunction
--- a/scripts/+matlab/+lang/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/+matlab/+lang/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -2,7 +2,8 @@
 
 %canon_reldir%_FCN_FILES = \
   %reldir%/makeUniqueStrings.m \
-  %reldir%/makeValidName.m
+  %reldir%/makeValidName.m \
+  %reldir%/MemoizedFunction.m
 
 %canon_reldir%dir = $(fcnfiledir)/+matlab/+lang
 
--- a/scripts/@ftp/ascii.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/ascii.m	Tue Nov 15 13:15:28 2022 -0800
@@ -32,6 +32,7 @@
 ## representation.
 ##
 ## @var{f} is an FTP object returned by the @code{ftp} function.
+## @seealso{@ftp/binary, @ftp/ftp}
 ## @end deftypefn
 
 function ascii (f)
--- a/scripts/@ftp/binary.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/binary.m	Tue Nov 15 13:15:28 2022 -0800
@@ -31,6 +31,7 @@
 ## representation to the local representation.
 ##
 ## @var{f} is an FTP object returned by the @code{ftp} function.
+## @seealso{@ftp/ascii, @ftp/ftp}
 ## @end deftypefn
 
 function binary (f)
--- a/scripts/@ftp/cd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/cd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} cd (@var{f})
+## @deftypefn  {} {@var{cwd} =} cd (@var{f})
 ## @deftypefnx {} {} cd (@var{f}, @var{path})
+## @deftypefnx {} {@var{new_cwd} =} cd (@var{f}, @var{path})
 ## Get or set the remote directory on the FTP connection @var{f}.
 ##
 ## @var{f} is an FTP object returned by the @code{ftp} function.
@@ -36,14 +37,11 @@
 ##
 ## If the directory does not exist, an error message is printed and the
 ## working directory is not changed.
+## @seealso{@ftp/dir, @ftp/ftp}
 ## @end deftypefn
 
 function path = cd (f, path)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   if (nargin == 2)
     __ftp_cwd__ (f.curlhandle, path);
   endif
--- a/scripts/@ftp/close.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/close.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,7 @@
 ## Close the FTP connection represented by the FTP object @var{f}.
 ##
 ## @var{f} is an FTP object returned by the @code{ftp} function.
+## @seealso{@ftp/ftp}
 ## @end deftypefn
 
 function close (f)
--- a/scripts/@ftp/delete.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/delete.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,7 @@
 ## Delete the remote file @var{file} over the FTP connection @var{f}.
 ##
 ## @var{f} is an FTP object returned by the @code{ftp} function.
+## @seealso{@ftp/rmdir, @ftp/rename, @ftp/ftp}
 ## @end deftypefn
 
 function delete (f, file)
--- a/scripts/@ftp/dir.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/dir.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,16 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{lst} =} dir (@var{f})
+## @deftypefn  {} {} dir (@var{f})
+## @deftypefnx {} {@var{lst} =} dir (@var{f})
 ## List the current directory in verbose form for the FTP connection @var{f}.
 ##
 ## @var{f} is an FTP object returned by the @code{ftp} function.
+##
+## If the optional output @var{lst} is requested return a struct array
+## with one entry per file with the fields @code{name}, @code{date},
+## @code{bytes}, @code{isdir}, @code{datenum}.
+## @seealso{@ftp/cd, @ftp/mkdir, @ftp/rmdir, @ftp/ftp}
 ## @end deftypefn
 
 function lst = dir (f)
--- a/scripts/@ftp/disp.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/disp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,10 +25,6 @@
 
 function disp (obj)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   printf ("  FTP object\n");
   printf ("    host: %s\n", obj.host);
   printf ("    user: %s\n", obj.username);
--- a/scripts/@ftp/ftp.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/ftp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -50,6 +50,8 @@
 ## @item rmdir @tab Remove remote directory
 ## @end multitable
 ##
+## @seealso{@ftp/ascii, @ftp/binary, @ftp/cd, @ftp/close, @ftp/delete,
+## @ftp/dir, @ftp/mget, @ftp/mkdir, @ftp/mput, @ftp/rename, @ftp/rmdir}
 ## @end deftypefn
 
 function obj = ftp (host = "", username = "anonymous", password = "")
--- a/scripts/@ftp/mget.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/mget.m	Tue Nov 15 13:15:28 2022 -0800
@@ -38,6 +38,7 @@
 ## If a third string argument @var{target} is given, then it must indicate
 ## the path to the local destination directory.  @var{target} may be a
 ## relative or absolute path.
+## @seealso{@ftp/mput, @ftp/ftp}
 ## @end deftypefn
 
 function mget (f, file, target = "")
--- a/scripts/@ftp/mkdir.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/mkdir.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,7 @@
 ## Create the remote directory @var{path}, over the FTP connection @var{f}.
 ##
 ## @var{f} is an FTP object returned by the @code{ftp} function.
+## @seealso{@ftp/rmdir, @ftp/ftp}
 ## @end deftypefn
 
 function mkdir (f, path)
--- a/scripts/@ftp/mput.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/mput.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,14 +24,19 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} mput (@var{f}, @var{file})
+## @deftypefn  {} {} mput (@var{f}, @var{file})
+## @deftypefnx {} {@var{file_list} =} mput (@var{f}, @var{file})
 ## Upload the local file @var{file} into the current remote directory on the
 ## FTP connection @var{f}.
 ##
-## @var{f} is an FTP object returned by the ftp function.
+## @var{f} is an FTP object returned by the @code{ftp} function.
 ##
 ## The argument @var{file} is passed through the @code{glob} function and any
 ## files that match the wildcards in @var{file} will be uploaded.
+##
+## The optional output argument @var{file_list} contains a cell array of
+## strings with the names of the uploaded files.
+## @seealso{@ftp/mget, @ftp/mkdir, @ftp/ftp}
 ## @end deftypefn
 
 function retval = mput (f, file)
--- a/scripts/@ftp/rename.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/rename.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,7 +28,8 @@
 ## Rename or move the remote file or directory @var{oldname} to @var{newname},
 ## over the FTP connection @var{f}.
 ##
-## @var{f} is an FTP object returned by the ftp function.
+## @var{f} is an FTP object returned by the @code{ftp} function.
+## @seealso{@ftp/delete, @ftp/rmdir, @ftp/ftp}
 ## @end deftypefn
 
 function rename (f, oldname, newname)
--- a/scripts/@ftp/rmdir.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/@ftp/rmdir.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,7 @@
 ## Remove the remote directory @var{path}, over the FTP connection @var{f}.
 ##
 ## @var{f} is an FTP object returned by the @code{ftp} function.
+## @seealso{@ftp/delete, @ftp/mkdir, @ftp/rename, @ftp/ftp}
 ## @end deftypefn
 
 function rmdir (f, path)
--- a/scripts/audio/@audioplayer/__get_properties__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/__get_properties__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,51 +24,44 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{properties} =} __get_properties__ (@var{player})
+## @deftypefn {} {@var{props} =} __get_properties__ (@var{player})
 ## Return a struct containing all named properties of the audioplayer object
 ## @var{player}.
+## @seealso{@audioplayer/get, @audioplayer/set, @audioplayer/audioplayer}
 ## @end deftypefn
 
 function props = __get_properties__ (player)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  if (__player_isplaying__ (struct (player).player))
-    running = "on";
-  else
-    running = "off";
-  endif
+  hplayer = struct (player).player;
 
   props = struct ("BitsPerSample",
-                  __player_get_nbits__ (struct (player).player),
+                  __player_get_nbits__ (hplayer),
 
                   "CurrentSample",
-                  __player_get_sample_number__ (struct (player).player),
+                  __player_get_sample_number__ (hplayer),
 
                   "DeviceID",
-                  __player_get_id__ (struct (player).player),
+                  __player_get_id__ (hplayer),
 
                   "NumberOfChannels",
-                  __player_get_channels__ (struct (player).player),
+                  __player_get_channels__ (hplayer),
 
                   "Running",
-                  running,
+                  ifelse (__player_isplaying__ (hplayer), "on", "off"),
 
                   "SampleRate",
-                  __player_get_fs__ (struct (player).player),
+                  __player_get_fs__ (hplayer),
 
                   "TotalSamples",
-                  __player_get_total_samples__ (struct (player).player),
+                  __player_get_total_samples__ (hplayer),
 
                   "Tag",
-                  __player_get_tag__ (struct (player).player),
+                  __player_get_tag__ (hplayer),
 
                   "Type",
                   "audioplayer",
 
                   "UserData",
-                  __player_get_userdata__ (struct (player).player));
+                  __player_get_userdata__ (hplayer));
 
 endfunction
--- a/scripts/audio/@audioplayer/audioplayer.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/audioplayer.m	Tue Nov 15 13:15:28 2022 -0800
@@ -32,16 +32,35 @@
 ## Create an audioplayer object that will play back data @var{y} at sample
 ## rate @var{fs}.
 ##
-## The optional arguments @var{nbits}, and @var{id} specify the bit depth and
-## player device id, respectively.  Device IDs may be found using the
-## audiodevinfo function.  Given an audioplayer object, use the data from the
-## object to initialize the player.
+## The signal @var{y} can be a vector (mono audio) or a two-dimensional array
+## (multi-channel audio).
+##
+## The optional arguments @var{nbits} and @var{id} specify the number of bits
+## per sample and player device ID, respectively.  Device IDs may be found
+## using the @code{audiodevinfo} function.
+##
+## Given an audiorecorder object @var{recorder}, use the data from the object
+## to initialize the player.
+##
+## The list of actions for an audioplayer object are shown below.  All
+## methods require an audioplayer object as the first argument.
 ##
-## The signal @var{y} can be a vector or a two-dimensional array.
+## @multitable @columnfractions 0.2 0.75
+## @headitem Method @tab Description
+## @item get @tab Read audioplayer property values
+## @item isplaying @tab Return true if audioplayer is playing
+## @item pause @tab Pause audioplayer playback
+## @item play @tab Play audio stored in audioplayer object w/o blocking
+## @item playblocking @tab Play audio stored in audioplayer object
+## @item resume @tab Resume playback after pause
+## @item set @tab Write audioplayer property values
+## @item stop @tab Stop playback
+## @end multitable
 ##
-## The following example will create an audioplayer object that will play
-## back one second of white noise at 44100 sample rate using 8 bits per
-## sample.
+## Example
+##
+## Create an audioplayer object that will play back one second of white noise
+## at 44100 sample rate using 8 bits per sample.
 ##
 ## @example
 ## @group
@@ -50,8 +69,13 @@
 ## play (player);
 ## @end group
 ## @end example
+## @seealso{@audioplayer/get, @audioplayer/isplaying, @audioplayer/pause,
+## @audioplayer/play, @audioplayer/playblocking, @audioplayer/resume,
+## @audioplayer/set, @audioplayer/stop, audiodevinfo,
+## @audiorecorder/audiorecorder, sound, soundsc}
 ## @end deftypefn
 
+################################################################################
 ## FIXME: callbacks don't work properly, apparently because portaudio
 ## will execute the callbacks in a separate thread, and calling Octave
 ## functions in a separate thread which is likely to cause trouble with
@@ -85,6 +109,7 @@
 ## # play for as long as you want
 ## stop (player);
 ## @end group
+################################################################################
 
 function player = audioplayer (varargin)
 
@@ -100,15 +125,22 @@
     elseif (nargin == 2)
       recorder = varargin{1};
       data = getaudiodata (recorder);
-      player = audioplayer (data, get (recorder, "SampleRate"),
-                            get (recorder, "BitsPerSample"), varargin{2});
+      player = audioplayer (data,
+                            get (recorder, "SampleRate"),
+                            get (recorder, "BitsPerSample"),
+                            varargin{2});
     else
       print_usage ();
     endif
   else
-    if (ischar (varargin{1}))
-      varargin{1} = str2func (varargin{1});
+    ## FIXME: Prevent use of callbacks until situation is fixed.
+    if (is_function_handle (varargin{1}) || ischar (varargin{1}))
+      error ("audioplayer: first argument cannot be a callback function");
     endif
+    ## FIXME: Uncomment when callback functions are supported.
+    ## if (ischar (varargin{1}))
+    ##   varargin{1} = str2func (varargin{1});
+    ## endif
     player.player = __player_audioplayer__ (varargin{:});
     player = class (player, "audioplayer");
   endif
@@ -117,6 +149,7 @@
 
 
 %!demo
+%! ## Generate 2 seconds of white noise and play it back with a pause
 %! fs = 44100;
 %! audio = 0.25 * randn (2, 2*fs);
 %! player = audioplayer (audio, fs);
@@ -144,37 +177,34 @@
 %! assert (player2.TotalSamples, 44100);
 
 %!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
-%! audio = 0.25 * randn (2, 44100);
-%! fs = 44100;
-%! player = audioplayer (audio, fs);
-%! set (player, {"SampleRate", "Tag", "UserData"}, {8000, "tag", [1, 2; 3, 4]});
-%! assert (player.SampleRate, 8000);
-%! assert (player.Tag, "tag");
-%! assert (player.UserData, [1, 2; 3, 4]);
-
-%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
-%! audio = 0.25 * randn (2, 44100);
+%! audio = randn (8000, 1);
 %! fs = 44100;
-%! player = audioplayer (audio, fs);
-%! settable = set (player);
-%! settable.SampleRate = 8000;
-%! settable.Tag = "tag";
-%! settable.UserData = [1, 2; 3, 4];
-%! set (player, settable);
-%! assert (player.SampleRate, 8000);
-%! assert (player.Tag, "tag");
-%! assert (player.UserData, [1, 2; 3, 4]);
+%! player = audioplayer (audio, fs, 16);
+%! assert (player.NumberOfChannels, 1);
+%! assert (player.SampleRate, 44100);
+%! assert (player.BitsPerSample, 16);
+
+## FIXME: Callbacks do not work currently (5/31/2020) so BIST tests commented.
+%!#function [sound, status] = callback (samples)
+%!#  sound = rand (samples, 2) - 0.5;
+%!#  status = 0;
+%!#endfunction
 
-%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
-%! audio = 0.25 * randn (2, 44100);
-%! fs = 44100;
-%! player = audioplayer (audio, fs);
-%! player.SampleRate = 8000;
-%! player.Tag = "tag";
-%! player.UserData = [1, 2; 3, 4];
-%! properties = get (player, {"SampleRate", "Tag", "UserData"});
-%! assert (properties, {8000, "tag", [1, 2; 3, 4]});
+%!#testif HAVE_PORTAUDIO
+%!# player = audioplayer (@callback, 44100);
+%!# play (player);
+%!# pause (2);
+%!# stop (player);
+%!# assert (1);
 
+%!#testif HAVE_PORTAUDIO
+%!# player = audioplayer ("callback", 44100, 16);
+%!# play (player);
+%!# pause (2);
+%!# stop (player);
+%!# assert (1);
+
+## Verify input validation
 %!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
 %! ## Verify nbits option only accepts 8, 16, 24
 %! fail ("audioplayer (1, 8e3, 9)", "NBITS must be 8, 16, or 24");
@@ -183,22 +213,5 @@
 %! player = audioplayer (1, 8e3, 16);
 %! player = audioplayer (1, 8e3, 24);
 
-## FIXME: Callbacks do not work currently (5/31/2020) so BIST tests commented.
-#%!function [sound, status] = callback (samples)
-#%!  sound = rand (samples, 2) - 0.5;
-#%!  status = 0;
-#%!endfunction
-
-#%!testif HAVE_PORTAUDIO
-#%! player = audioplayer (@callback, 44100);
-#%! play (player);
-#%! pause (2);
-#%! stop (player);
-#%! assert (1);
-
-#%!testif HAVE_PORTAUDIO
-#%! player = audioplayer ("callback", 44100, 16);
-#%! play (player);
-#%! pause (2);
-#%! stop (player);
-#%! assert (1);
+%!error <first argument cannot be a callback> audioplayer (@ls, 8000)
+%!error <first argument cannot be a callback> audioplayer ("ls", 8000)
--- a/scripts/audio/@audioplayer/disp.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/disp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,17 +26,18 @@
 ## -*- texinfo -*-
 ## @deftypefn {} {} disp (@var{player})
 ## Display the properties of the audioplayer object @var{player}.
+## @seealso{@audioplayer/audioplayer}
 ## @end deftypefn
 
 function disp (player)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   printf ("audioplayer object with properties:\n\n");
   for [val, prop] = __get_properties__ (player)
     printf ("  %s = ", prop), disp (val);
   endfor
 
 endfunction
+
+
+## No tests possible/needed for this function
+%!assert (1)
--- a/scripts/audio/@audioplayer/get.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/get.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,38 +25,74 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{value} =} get (@var{player}, @var{name})
+## @deftypefnx {} {@var{values} =} get (@var{player}, @lbracechar{}@var{name1}, @var{name2}, @dots{}@rbracechar{})
 ## @deftypefnx {} {@var{values} =} get (@var{player})
 ## Return the @var{value} of the property identified by @var{name}.
 ##
 ## If @var{name} is a cell array return the values of the properties
 ## identified by the elements of the cell array.  Given only the player
-## object, return a scalar structure with values of all properties of
-## @var{player}.  The field names of the structure correspond to property
+## object, return a scalar structure with values for all properties of
+## @var{player}.  The field names of the structure correspond to the property
 ## names.
+## @seealso{@audioplayer/set, @audioplayer/audioplayer}
 ## @end deftypefn
 
-function retval = get (varargin)
+function value = get (player, name)
 
-  if (nargin < 1 || nargin > 2)
-    print_usage ();
-  endif
-
-  properties = __get_properties__ (varargin{1});
+  properties = __get_properties__ (player);
 
   if (nargin == 1)
-    retval = properties;
+    value = properties;
   elseif (nargin == 2)
-    pnames = varargin{2};
+    pnames = name;
     if (ischar (pnames))
-      retval = getfield (properties, pnames);
+      value = getproperty (properties, pnames);
     elseif (iscellstr (pnames))
-      retval = cell (size (pnames));
+      value = cell (size (pnames));
       for i = 1:numel (pnames)
-        retval{i} = getfield (properties, pnames{i});
+        value{i} = getproperty (properties, pnames{i});
       endfor
     else
-      error ("@audioplayer/get: invalid NAME argument");
+      error ("@audioplayer/get: NAME must be a string or cell array of strings");
     endif
   endif
 
 endfunction
+
+function value = getproperty (properties, pname)
+
+  persistent valid_props;
+  if (isempty (valid_props))
+    valid_props = { "BitsPerSample", "CurrentSample", "DeviceID", ...
+                    "NumberOfChannels", "Running", "SampleRate", ...
+                    "TotalSamples", "Tag", "Type", "UserData" };
+  endif
+
+  idx = find (strcmpi (pname, valid_props), 1);
+  if (isempty (idx))
+    error ('@audioplayer/get: "%s" is not a valid property name', pname);
+  endif
+
+  value = properties.(valid_props{idx});
+
+endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! props = get (player);
+%! assert (fieldnames (props), {"BitsPerSample"; "CurrentSample"; "DeviceID";
+%!         "NumberOfChannels"; "Running"; "SampleRate"; "TotalSamples"; "Tag";
+%!         "Type"; "UserData"});
+%! value = get (player, "Running");
+%! assert (value, "off");
+%! value = get (player, "ruNNIng");  # test case insensitivity
+%! assert (value, "off");
+%! values = get (player, {"SampleRate", "BitsPerSample", "TotalSamples"});
+%! assert (values, {44100, 8, 2});
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! fail ("get (player, 1)", "NAME must be a string");
+%! fail ('get (player, "foobar")', '"foobar" is not a valid property');
--- a/scripts/audio/@audioplayer/isplaying.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/isplaying.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,17 +24,19 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isplaying (@var{player})
+## @deftypefn {} {@var{tf} =} isplaying (@var{player})
 ## Return true if the audioplayer object @var{player} is currently playing back
 ## audio and false otherwise.
+## @seealso{@audioplayer/pause, @audioplayer/audioplayer}
 ## @end deftypefn
 
-function result = isplaying (player)
+function tf = isplaying (player)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  result = __player_isplaying__ (struct (player).player);
+  tf = __player_isplaying__ (struct (player).player);
 
 endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! assert (isplaying (player), false);
--- a/scripts/audio/@audioplayer/pause.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/pause.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,15 +25,16 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {} {} pause (@var{player})
-## Pause the audioplayer @var{player}.
+## Pause playback of audioplayer @var{player}.
+## @seealso{@audioplayer/resume, @audioplayer/stop, @audioplayer/audioplayer}
 ## @end deftypefn
 
 function pause (player)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   __player_pause__ (struct (player).player);
 
 endfunction
+
+
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audioplayer/play.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/play.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,20 +26,30 @@
 ## -*- texinfo -*-
 ## @deftypefn  {} {} play (@var{player})
 ## @deftypefnx {} {} play (@var{player}, @var{start})
-## @deftypefnx {} {} play (@var{player}, @var{limits})
+## @deftypefnx {} {} play (@var{player}, [@var{start}, @var{end}])
 ## Play audio stored in the audioplayer object @var{player} without blocking.
 ##
-## Given optional argument start, begin playing at @var{start} samples in the
-## recording.  Given a two-element vector @var{limits}, begin and end playing
-## at the number of samples specified by the elements of the vector.
+## If the optional argument @var{start} is provided, begin playing
+## @var{start} samples in to the recording.
+##
+## If the optional argument @var{end} is provided, stop playing at
+## @var{end} samples into the recording.
+## @seealso{@audioplayer/playblocking, @audioplayer/pause, @audioplayer/stop,
+## @audioplayer/audioplayer}
 ## @end deftypefn
 
-function play (varargin)
+function play (player, length)
+
+  hplayer = struct (player).player;
 
-  if (nargin < 1 || nargin > 2)
-    print_usage ();
+  if (nargin == 1)
+    __player_play__ (hplayer);
+  else
+    __player_play__ (hplayer, length);
   endif
 
-  __player_play__ (struct (varargin{1}).player, varargin{2:end});
+endfunction
+
 
-endfunction
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audioplayer/playblocking.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/playblocking.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,20 +26,29 @@
 ## -*- texinfo -*-
 ## @deftypefn  {} {} playblocking (@var{player})
 ## @deftypefnx {} {} playblocking (@var{player}, @var{start})
-## @deftypefnx {} {} playblocking (@var{player}, @var{limits})
-## Play audio stored in the audioplayer object @var{player} with blocking.
+## @deftypefnx {} {} playblocking (@var{player}, [@var{start}, @var{end}])
+## Play audio stored in the audioplayer object @var{player} with blocking
+## (synchronous I/O).
 ##
-## Given optional argument start, begin playing at @var{start} samples in the
-## recording.  Given a two-element vector @var{limits}, begin and end playing
-## at the number of samples specified by the elements of the vector.
+## If the optional argument @var{start} is provided, begin playing
+## @var{start} samples into the recording.
+##
+## If the optional argument @var{end} is provided, stop playing at
+## @var{end} samples into the recording.
+## @seealso{@audioplayer/play, @audioplayer/pause, @audioplayer/stop,
+## @audioplayer/audioplayer}
 ## @end deftypefn
 
-function playblocking (varargin)
+function playblocking (player, start)
 
-  if (nargin < 1 || nargin > 2)
-    print_usage ();
+  if (nargin == 1)
+    __player_playblocking__ (struct (player).player);
+  else
+    __player_playblocking__ (struct (player).player, start);
   endif
 
-  __player_playblocking__ (struct (varargin{1}).player, varargin{2:end});
+endfunction
+
 
-endfunction
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audioplayer/resume.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/resume.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,14 +26,15 @@
 ## -*- texinfo -*-
 ## @deftypefn {} {} resume (@var{player})
 ## Resume playback for the paused audioplayer object @var{player}.
+## @seealso{@audioplayer/pause, @audioplayer/stop, @audioplayer/audioplayer}
 ## @end deftypefn
 
 function resume (player)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   __player_resume__ (struct (player).player);
 
 endfunction
+
+
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audioplayer/set.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/set.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,60 +25,94 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {} set (@var{player}, @var{name}, @var{value})
-## @deftypefnx {} {} set (@var{player}, @var{properties})
+## @deftypefnx {} {} set (@var{player}, @var{name_cell}, @var{value_cell})
+## @deftypefnx {} {} set (@var{player}, @var{properties_struct})
 ## @deftypefnx {} {@var{properties} =} set (@var{player})
 ## Set the value of property specified by @var{name} to a given @var{value}.
 ##
 ## If @var{name} and @var{value} are cell arrays, set each property to the
-## corresponding value.  Given a structure of @var{properties} with fields
+## corresponding value.  Given a structure of properties with fields
 ## corresponding to property names, set the value of those properties to the
-## field values.  Given only the audioplayer object, return a structure of
-## settable properties.
+## corresponding field values.  Given only an audioplayer object, return a
+## structure of configurable properties (i.e., writeable properties).
+## @seealso{@audioplayer/get, @audioplayer/audioplayer}
 ## @end deftypefn
 
-function settable = set (varargin)
+function properties = set (player, varargin)
 
-  if (nargin < 1 || nargin > 3)
+  if (nargin > 3)
     print_usage ();
   endif
 
-  player = struct (varargin{1}).player;
+  hplayer = struct (player).player;
 
   if (nargin == 1)
-    settable.SampleRate = {};
-    settable.Tag = {};
-    settable.UserData = {};
+    properties = struct ("SampleRate", {{}}, "Tag", {{}}, "UserData", {{}});
   elseif (nargin == 2)
-    for [value, property] = varargin{2}
-      setproperty (player, property, value);
+    for [value, property] = varargin{1}
+      setproperty (hplayer, property, value);
     endfor
   elseif (nargin == 3)
-    if (iscell (varargin{2}))
+    if (iscell (varargin{1}))
       index = 1;
-      for property = varargin{2}
-        setproperty (player, char (property), varargin{3}{index});
+      for property = varargin{1}
+        setproperty (hplayer, char (property), varargin{2}{index});
         index += 1;
       endfor
     else
-      setproperty (player, varargin{2}, varargin{3});
+      setproperty (hplayer, varargin{1}, varargin{2});
     endif
-  else
-    error ("@audioplayer/set: wrong number of arguments to the set method");
   endif
 
 endfunction
 
 function setproperty (player, property, value)
 
-  switch (property)
-    case "SampleRate"
+  switch (lower (property))
+    case "samplerate"
       __player_set_fs__ (player, value);
-    case "Tag"
+    case "tag"
       __player_set_tag__ (player, value);
-    case "UserData"
+    case "userdata"
       __player_set_userdata__ (player, value);
     otherwise
-      error ("audioplayer: no such property or the property specified is read-only");
+      error ('@audioplayer/set: "%s" is not a valid property name or is read-only', property);
   endswitch
 
 endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! set (player, "SampleRate", 8800);
+%! set (player, "Tag", "mytag");
+%! ## Also test case insensitivity
+%! set (player, "USERdata", [1, 2; 3, 4]);
+%! assert (player.SampleRate, 8800);
+%! assert (player.Tag, "mytag");
+%! assert (player.UserData, [1, 2; 3, 4]);
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! set (player, {"SampleRate", "Tag", "UserData"},
+%!              {8800, "mytag", [1, 2; 3, 4]});
+%! assert (player.SampleRate, 8800);
+%! assert (player.Tag, "mytag");
+%! assert (player.UserData, [1, 2; 3, 4]);
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! props = set (player);
+%! props.SampleRate = 8800;
+%! props.Tag = "mytag";
+%! props.UserData = [1, 2; 3, 4];
+%! set (player, props);
+%! assert (player.SampleRate, 8800);
+%! assert (player.Tag, "mytag");
+%! assert (player.UserData, [1, 2; 3, 4]);
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! fail ('set (player, "foobar", 1)', "not a valid property name"); 
+%! fail ('set (player, "Running", 1)', "is read-only"); 
--- a/scripts/audio/@audioplayer/stop.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/stop.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,16 +25,17 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {} {} stop (@var{player})
-## Stop the playback for the audioplayer @var{player} and reset the
-## relevant variables to their starting values.
+## Stop playback of the audioplayer @var{player} and reset relevant variables
+## to their initial values.
+## @seealso{@audioplayer/pause, @audioplayer/resume, @audioplayer/audioplayer}
 ## @end deftypefn
 
 function stop (player)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   __player_stop__ (struct (player).player);
 
 endfunction
+
+
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audioplayer/subsasgn.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/subsasgn.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,10 +28,15 @@
 ## Perform subscripted assignment on the audio player object @var{player}.
 ##
 ## Assign the value of @var{rhs} to the player property named by @var{idx}.
+## @seealso{@audioplayer/audioplayer}
 ## @end deftypefn
 
 function value = subsasgn (player, idx, rhs)
 
+  if (nargin != 3)
+    print_usage ();
+  endif
+
   if (isempty (idx))
     error ("audioplayer: missing index");
   endif
@@ -45,3 +50,15 @@
   endif
 
 endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! player.Tag = "mytag";
+%! assert (get (player, "Tag"), "mytag");
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! fail ("player(1).Tag = 5", "invalid subscript type");
+%! fail ("player{1}.Tag = 5", "invalid subscript type");
--- a/scripts/audio/@audioplayer/subsref.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audioplayer/subsref.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,7 @@
 ## Perform subscripted selection on the audio player object @var{player}.
 ##
 ## Return the player property value named by @var{idx}.
+## @seealso{@audioplayer/audioplayer}
 ## @end deftypefn
 
 function value = subsref (player, idx)
@@ -48,3 +49,15 @@
   endif
 
 endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! set (player, "Tag", "mytag");
+%! assert (player.Tag, "mytag");
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (0) > 0
+%! player = audioplayer ([-1, 1], 44100, 8);
+%! fail ("player(1).Tag", "invalid subscript type");
+%! fail ("player{1}.Tag", "invalid subscript type");
--- a/scripts/audio/@audiorecorder/__get_properties__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/__get_properties__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,51 +24,45 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{properties} =} __get_properties__ (@var{recorder})
+## @deftypefn {} {@var{props} =} __get_properties__ (@var{recorder})
 ## Return a struct containing all named properties of the recorder object
 ## @var{recorder}.
+## @seealso{@audiorecorder/get, @audiorecorder/set,
+## @audiorecorder/audiorecorder}
 ## @end deftypefn
 
 function props = __get_properties__ (recorder)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  if (__recorder_isrecording__ (struct (recorder).recorder))
-    running = "on";
-  else
-    running = "off";
-  endif
+  hrecorder = struct (recorder).recorder;
 
   props = struct ("BitsPerSample",
-                  __recorder_get_nbits__ (struct (recorder).recorder),
+                  __recorder_get_nbits__ (hrecorder),
 
                   "CurrentSample",
-                  __recorder_get_sample_number__ (struct (recorder).recorder),
+                  __recorder_get_sample_number__ (hrecorder),
 
                   "DeviceID",
-                  __recorder_get_id__ (struct (recorder).recorder),
+                  __recorder_get_id__ (hrecorder),
 
                   "NumberOfChannels",
-                  __recorder_get_channels__ (struct (recorder).recorder),
+                  __recorder_get_channels__ (hrecorder),
 
                   "Running",
-                  running,
+                  ifelse (__recorder_isrecording__ (hrecorder), "on", "off"),
 
                   "SampleRate",
-                  __recorder_get_fs__ (struct (recorder).recorder),
+                  __recorder_get_fs__ (hrecorder),
 
                   "TotalSamples",
-                  __recorder_get_total_samples__ (struct (recorder).recorder),
+                  __recorder_get_total_samples__ (hrecorder),
 
                   "Tag",
-                  __recorder_get_tag__ (struct (recorder).recorder),
+                  __recorder_get_tag__ (hrecorder),
 
                   "Type",
                   "audiorecorder",
 
                   "UserData",
-                  __recorder_get_userdata__ (struct (recorder).recorder));
+                  __recorder_get_userdata__ (hrecorder));
 
 endfunction
--- a/scripts/audio/@audiorecorder/audiorecorder.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/audiorecorder.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,25 +25,50 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{recorder} =} audiorecorder ()
-## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{fs}, @var{nbits}, @var{channels})
-## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{fs}, @var{nbits}, @var{channels}, @var{id})
-## Create an audiorecorder object recording 8 bit mono audio at 8000 Hz
+## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{fs}, @var{nbits}, @var{nchannels})
+## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{fs}, @var{nbits}, @var{nchannels}, @var{id})
+## Create an audiorecorder object recording 8-bit mono audio at 8000 Hz
 ## sample rate.
 ##
-## The optional arguments @var{fs}, @var{nbits}, @var{channels}, and @var{id}
-## specify the sample rate, bit depth, number of channels and recording
-## device id, respectively.  Device IDs may be found using the audiodevinfo
-## function.
+## The optional arguments @var{fs}, @var{nbits}, @var{nchannels}, and @var{id}
+## specify the sample rate, number of bits per sample, number of channels, and
+## recording device ID, respectively.  Device IDs may be found using the
+## @code{audiodevinfo} function.
+##
+## The list of actions for an audiorecorder object are shown below.  All
+## methods require an audiorecorder object as the first argument.
+##
+## @multitable @columnfractions 0.22 0.73
+## @headitem Method @tab Description
+## @item get @tab Read audiorecorder property values
+## @item getaudiodata @tab Return audio data as a numeric matrix
+## @item getplayer @tab Return audioplayer loaded with data from audiorecorder
+## @item isrecording @tab Return true if audiorecorder is recording
+## @item pause @tab Pause recording
+## @item play @tab Play audio stored in audiorecorder object
+## @item record @tab Record audio in audiorecorder object w/o blocking
+## @item recordblocking @tab Record audio in audiorecorder object
+## @item resume @tab Resume recording after pause
+## @item set @tab Write audiorecorder property values
+## @item stop @tab Stop recording
+## @end multitable
 ## @end deftypefn
+## @seealso{@audiorecorder/get, @audiorecorder/getaudiodata,
+## @audiorecorder/getplayer, @audiorecorder/isrecording,
+## @audiorecorder/pause, @audiorecorder/play, @audiorecorder/record,
+## @audiorecorder/recordblocking, @audioplayer/resume, @audiorecorder/set,
+## @audiorecorder/stop, audiodevinfo, @audioplayer/audioplayer, record}
 
+################################################################################
 ## FIXME: callbacks don't work properly, apparently because portaudio
 ## will execute the callbacks in a separate thread, and calling Octave
-## functions in a separate thread which is likely to cause trouble with
+## functions in a separate thread is likely to cause trouble with
 ## all of Octave's global data...
 ##
 ## @deftypefnx {} {@var{recorder} =} audiorecorder (@var{function}, @dots{})
 ##
 ## Given a function handle, use that function to process the audio.
+################################################################################
 
 function recorder = audiorecorder (varargin)
 
@@ -51,9 +76,15 @@
     print_usage ();
   endif
 
-  if (nargin > 0 && ischar (varargin{1}))
-    varargin{1} = str2func (varargin{1});
+  ## FIXME: Prevent use of callbacks until situation is fixed.
+  if (nargin > 0 && (is_function_handle (varargin{1}) || ischar (varargin{1})))
+    error ("audiorecorder: first argument cannot be a callback function");
   endif
+  
+  ## FIXME: Uncomment when callback functions are supported.
+  ## if (nargin > 0 && ischar (varargin{1}))
+  ##   varargin{1} = str2func (varargin{1});
+  ## endif
 
   recorder.recorder = __recorder_audiorecorder__ (varargin{:});
   recorder = class (recorder, "audiorecorder");
@@ -62,6 +93,7 @@
 
 
 %!demo
+%! ## Record 1 second of audio and play it back in two ways
 %! recorder = audiorecorder (44100, 16, 2);
 %! record (recorder, 1);
 %! pause (2);
@@ -76,67 +108,34 @@
 
 ## Tests of audiorecorder must not actually record anything.
 
-%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
-%! recorder = audiorecorder (44100, 16, 2);
-%! data = getaudiodata (recorder, "int16");
-%! assert (strcmp (class (data), "int16"));
-%! data = getaudiodata (recorder, "int8");
-%! assert (strcmp (class (data), "int8"));
-%! data = getaudiodata (recorder, "uint8");
-%! assert (strcmp (class (data), "uint8"));
-%! assert (size (data)(1), recorder.TotalSamples);
-%! assert (size (data)(2), 2);
-
-%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
-%! recorder = audiorecorder ();
-%! set (recorder, {"SampleRate", "Tag", "UserData"},
-%!                {8000, "tag", [1, 2; 3, 4]});
-%! assert (recorder.SampleRate, 8000);
-%! assert (recorder.Tag, "tag");
-%! assert (recorder.UserData, [1, 2; 3, 4]);
-
-%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
-%! recorder = audiorecorder ();
-%! settable = set (recorder);
-%! settable.SampleRate = 8000;
-%! settable.Tag = "tag";
-%! settable.UserData = [1, 2; 3, 4];
-%! set (recorder, settable);
-%! assert (recorder.SampleRate, 8000);
-%! assert (recorder.Tag, "tag");
-%! assert (recorder.UserData, [1, 2; 3, 4]);
+## FIXME: Uncomment when callbacks are supported
+%!#function status = callback_record (sound)
+%!#  fid = fopen ("record.txt", "at");
+%!#  for index = 1:rows(sound)
+%!#    fprintf (fid, "%.4f, %.4f\n", sound(index, 1), sound(index, 2));
+%!#  endfor
+%!#  fclose (fid);
+%!#  status = 0;
+%!#endfunction
 
-%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
-%! recorder = audiorecorder ();
-%! recorder.SampleRate = 8000;
-%! recorder.Tag = "tag";
-%! recorder.UserData = [1, 2; 3, 4];
-%! properties = get (recorder, {"SampleRate", "Tag", "UserData"});
-%! assert (properties, {8000, "tag", [1, 2; 3, 4]});
-
-#%!function status = callback_record (sound)
-#%!  fid = fopen ("record.txt", "at");
-#%!  for index = 1:rows(sound)
-#%!    fprintf (fid, "%.4f, %.4f\n", sound(index, 1), sound(index, 2));
-#%!  endfor
-#%!  fclose (fid);
-#%!  status = 0;
-#%!endfunction
+%!#testif HAVE_PORTAUDIO
+%!# recorder = audiorecorder (@callback_record, 44100);
+%!# unlink ("record.txt")
+%!# record (recorder);
+%!# pause (2);
+%!# stop (recorder);
+%!# s = stat ("record.txt");
+%!# assert (s.size > 0);
 
-#%!testif HAVE_PORTAUDIO
-#%! recorder = audiorecorder (@callback_record, 44100);
-#%! unlink ("record.txt")
-#%! record (recorder);
-#%! pause (2);
-#%! stop (recorder);
-#%! s = stat ("record.txt");
-#%! assert (s.size > 0);
+%!#testif HAVE_PORTAUDIO
+%!# recorder = audiorecorder (@callback_record, 44100);
+%!# unlink ("record.txt")
+%!# record (recorder);
+%!# pause (2);
+%!# stop (recorder);
+%!# s = stat ("record.txt");
+%!# assert (s.size > 0);
 
-#%!testif HAVE_PORTAUDIO
-#%! recorder = audiorecorder (@callback_record, 44100);
-#%! unlink ("record.txt")
-#%! record (recorder);
-#%! pause (2);
-#%! stop (recorder);
-#%! s = stat ("record.txt");
-#%! assert (s.size > 0);
+## Test input validation
+%!error <first argument cannot be a callback> audiorecorder (@ls)
+%!error <first argument cannot be a callback> audiorecorder ("ls")
--- a/scripts/audio/@audiorecorder/disp.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/disp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,17 +26,18 @@
 ## -*- texinfo -*-
 ## @deftypefn {} {} disp (@var{recorder})
 ## Display the properties of the audiorecorder object @var{recorder}.
+## @seealso{@audiorecorder/audiorecorder}
 ## @end deftypefn
 
 function disp (recorder)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   printf ("audiorecorder object with properties:\n\n");
   for [val, prop] = __get_properties__ (recorder)
     printf ("  %s = ", prop), disp (val);
   endfor
 
 endfunction
+
+
+## No tests possible/needed for this function
+%!assert (1)
--- a/scripts/audio/@audiorecorder/get.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/get.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,38 +25,72 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{value} =} get (@var{recorder}, @var{name})
+## @deftypefnx {} {@var{values} =} get (@var{recorder}, @lbracechar{}@var{name1}, @var{name2}, @dots{}@rbracechar{})
 ## @deftypefnx {} {@var{values} =} get (@var{recorder})
 ## Return the @var{value} of the property identified by @var{name}.
 ##
-## If @var{name} is a cell array, return the values of the properties
-## corresponding to the elements of the cell array.  Given only the recorder
-## object, return a scalar structure with values of all properties of
-## @var{recorder}.  The field names of the structure correspond to property
+## If @var{name} is a cell array return the values of the properties
+## identified by the elements of the cell array.  Given only the recorder
+## object, return a scalar structure with values for all properties of
+## @var{recorder}.  The field names of the structure correspond to the property
 ## names.
+## @seealso{@audiorecorder/set, @audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function retval = get (varargin)
+function value = get (recorder, name)
 
-  if (nargin < 1 || nargin > 2)
-    print_usage ();
-  endif
-
-  properties = __get_properties__ (varargin{1});
+  properties = __get_properties__ (recorder);
 
   if (nargin == 1)
-    retval = properties;
+    value = properties;
   elseif (nargin == 2)
-    pnames = varargin{2};
+    pnames = name;
     if (ischar (pnames))
-      retval = getfield (properties, pnames);
+      value = getproperty (properties, pnames);
     elseif (iscellstr (pnames))
-      retval = cell (size (pnames));
+      value = cell (size (pnames));
       for i = 1:numel (pnames)
-        retval{i} = getfield (properties, pnames{i});
+        value{i} = getproperty (properties, pnames{i});
       endfor
     else
-      error ("@audiorecorder/get: invalid NAME argument");
+      error ("@audiorecorder/get: NAME must be a string or cell array of strings");
     endif
   endif
 
 endfunction
+
+function value = getproperty (properties, pname)
+
+  persistent valid_props;
+  if (isempty (valid_props))
+    valid_props = { "BitsPerSample", "CurrentSample", "DeviceID", ...
+                    "NumberOfChannels", "Running", "SampleRate", ...
+                    "TotalSamples", "Tag", "Type", "UserData" };
+  endif
+
+  idx = find (strcmpi (pname, valid_props), 1);
+  if (isempty (idx))
+    error ('@audiorecorder/get: "%s" is not a valid property name', pname);
+  endif
+
+  value = properties.(valid_props{idx});
+
+endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! props = get (recorder);
+%! assert (fieldnames (props), {"BitsPerSample"; "CurrentSample"; "DeviceID";
+%!         "NumberOfChannels"; "Running"; "SampleRate"; "TotalSamples"; "Tag";
+%!         "Type"; "UserData"});
+%! value = get (recorder, "Running");
+%! assert (value, "off");
+%! values = get (recorder, {"SampleRate", "BitsPerSample", "NumberOfChannels"});
+%! assert (values, {44100, 16, 2});
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! fail ("get (recorder, 1)", "NAME must be a string");
+%! fail ('get (recorder, "foobar")', '"foobar" is not a valid property');
--- a/scripts/audio/@audiorecorder/getaudiodata.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/getaudiodata.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,41 +26,74 @@
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{data} =} getaudiodata (@var{recorder})
 ## @deftypefnx {} {@var{data} =} getaudiodata (@var{recorder}, @var{datatype})
-## Return recorder audio data as a matrix with values between -1.0 and 1.0
-## and with as many columns as there are channels in the recorder.
+## Return audio data from audiorecorder object @var{recorder} as a double
+## matrix with values between -1.0 and 1.0 and with as many columns as there
+## are channels in @var{recorder}.
 ##
 ## Given the optional argument @var{datatype}, convert the recorded data
 ## to the specified type, which may be one of @qcode{"double"},
 ## @qcode{"single"}, @qcode{"int16"}, @qcode{"int8"} or @qcode{"uint8"}.
+## @seealso{@audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function data = getaudiodata (varargin)
+function data = getaudiodata (recorder, datatype)
 
-  if (nargin < 1 || nargin > 2)
-    print_usage ();
-  endif
-
-  recorder = varargin{1};
+  hrecorder = struct (recorder).recorder;
 
   if (nargin == 1)
-    data = __recorder_getaudiodata__ (struct (recorder).recorder);
+    data = __recorder_getaudiodata__ (hrecorder);
   else
-    data = __recorder_getaudiodata__ (struct (recorder).recorder);
-    type = varargin{2};
-    switch (type)
+    data = __recorder_getaudiodata__ (hrecorder);
+    switch (datatype)
+      case "double"
+        ## Do nothing, data is already of type double
+      case "single"
+        data = single (data);
       case "int16"
         data = int16 (data * (2.0 ^ 15));
       case "int8"
         data = int8 (data * (2.0 ^ 7));
       case "uint8"
         data = uint8 ((data + 1.0) * 0.5 * (2.0 ^ 8 - 1));
+      otherwise
+        error ('@audiorecorder/getaudiodata: invalid DATATYPE "%s"', datatype)
     endswitch
   endif
 
   if (get (recorder, "NumberOfChannels") == 2)
-    data = data';
+    data = data.';
   else
-    data = data(1,:)';
+    data = data(1,:).';
   endif
 
 endfunction
+
+
+## Tests of audiorecorder must not actually record anything.
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! data = getaudiodata (recorder);
+%! assert (isa (data, "double"));
+%! data = getaudiodata (recorder, "double");
+%! assert (isa (data, "double"));
+%! data = getaudiodata (recorder, "single");
+%! assert (isa (data, "single"));
+%! data = getaudiodata (recorder, "int16");
+%! assert (isa (data, "int16"));
+%! data = getaudiodata (recorder, "int8");
+%! assert (isa (data, "int8"));
+%! data = getaudiodata (recorder, "uint8");
+%! assert (isa (data, "uint8"));
+%! assert (size (data)(1), recorder.TotalSamples);
+%! assert (size (data)(2), 2);
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 8, 1);
+%! data = getaudiodata (recorder);
+%! assert (size (data)(1), recorder.TotalSamples);
+%! assert (size (data)(2), 1);
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! fail ("getaudiodata (recorder, 'foobar')", "invalid DATATYPE");
--- a/scripts/audio/@audiorecorder/getplayer.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/getplayer.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,17 +27,23 @@
 ## @deftypefn {} {@var{player} =} getplayer (@var{recorder})
 ## Return an audioplayer object with data recorded by the audiorecorder object
 ## @var{recorder}.
+## @seealso{@audioplayer/audioplayer, @audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function player = getplayer (varargin)
+function player = getplayer (recorder)
 
-  if (nargin < 1 || nargin > 2)
-    print_usage ();
-  endif
-
-  recorder = varargin{1};
   data = getaudiodata (recorder);
-  player = audioplayer (data, get (recorder, "SampleRate"),
+  player = audioplayer (data,
+                        get (recorder, "SampleRate"),
                         get (recorder, "BitsPerSample"));
 
 endfunction
+
+
+## FIXME: Uncomment when audioplayer constructor supports null data
+%!#testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%!# recorder = audiorecorder (44100, 16, 2);
+%!# player = getplayer (recorder);
+%!# assert (isa (player, "audioplayer"));
+%!# assert (player.SampleRate, 44100);
+%!# assert (player.BitsPerSample, 16);
--- a/scripts/audio/@audiorecorder/isrecording.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/isrecording.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,17 +24,19 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isrecording (@var{recorder})
+## @deftypefn {} {@var{tf} =} isrecording (@var{recorder})
 ## Return true if the audiorecorder object @var{recorder} is currently
 ## recording audio and false otherwise.
+## @seealso{@audiorecorder/pause, @audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function result = isrecording (recorder)
+function tf = isrecording (recorder)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  result = __recorder_isrecording__ (struct (recorder).recorder);
+  tf = __recorder_isrecording__ (struct (recorder).recorder);
 
 endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! assert (isrecording (recorder), false);
--- a/scripts/audio/@audiorecorder/pause.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/pause.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,15 +25,17 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {} {} pause (@var{recorder})
-## Pause recording with audiorecorder object @var{recorder}.
+## Pause recording for audiorecorder @var{recorder}.
+## @seealso{@audiorecorder/resume, @audiorecorder/stop,
+## @audiorecorder/audiorecorder}
 ## @end deftypefn
 
 function pause (recorder)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   __recorder_pause__ (struct (recorder).recorder);
 
 endfunction
+
+
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audiorecorder/play.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/play.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,30 +27,33 @@
 ## @deftypefn  {} {@var{player} =} play (@var{recorder})
 ## @deftypefnx {} {@var{player} =} play (@var{recorder}, @var{start})
 ## @deftypefnx {} {@var{player} =} play (@var{recorder}, [@var{start}, @var{end}])
-## Play the audio recorded in @var{recorder} and return a corresponding
-## audioplayer object.
+## Play the audio recorded in @var{recorder} without blocking and return a
+## corresponding audioplayer object.
 ##
 ## If the optional argument @var{start} is provided, begin playing
-## @var{start} seconds in to the recording.
+## @var{start} seconds into the recording.
 ##
 ## If the optional argument @var{end} is provided, stop playing at
-## @var{end} seconds in the recording.
+## @var{end} seconds into the recording.
+## @seealso{@audiorecorder/getplayer, @audioplayer/audioplayer, 
+## @audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function player = play (varargin)
+function player = play (recorder, start)
 
-  if (nargin < 1 || nargin > 2)
-    print_usage ();
-  endif
+  data = getaudiodata (recorder);
+  player = audioplayer (data,
+                        get (recorder, "SampleRate"),
+                        get (recorder, "BitsPerSample"));
 
-  recorder = varargin{1};
-  data = getaudiodata (recorder);
-  player = audioplayer (data, get (recorder, "SampleRate"),
-                        get (recorder, "BitsPerSample"));
   if (nargin == 1)
     play (player);
   else
-    play (player, varargin{2});
+    play (player, start);
   endif
 
 endfunction
+
+
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audiorecorder/record.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/record.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,18 +27,25 @@
 ## @deftypefn  {} {} record (@var{recorder})
 ## @deftypefnx {} {} record (@var{recorder}, @var{length})
 ## Record audio without blocking using the audiorecorder object
-## @var{recorder} until stopped or paused by the @var{stop} or @var{pause}
-## method.
+## @var{recorder} until paused or stopped by the @var{pause} or @var{stop}
+## methods.
 ##
 ## Given the optional argument @var{length}, record for @var{length} seconds.
+## @seealso{@audiorecorder/recordblocking, @audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function record (varargin)
+function record (recorder, length)
+
+  hrecorder = struct (recorder).recorder;
 
-  if (nargin < 1 || nargin > 2)
-    print_usage ();
+  if (nargin == 1)
+    __recorder_record__ (hrecorder);
+  else
+    __recorder_record__ (hrecorder, length);
   endif
 
-  __recorder_record__ (struct (varargin{1}).recorder, varargin{2:end});
+endfunction
+
 
-endfunction
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audiorecorder/recordblocking.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/recordblocking.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,14 +28,19 @@
 ## Record audio with blocking (synchronous I/O).
 ##
 ## The length of the recording in seconds (@var{length}) must be specified.
+## @seealso{@audiorecorder/record, @audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function recordblocking (varargin)
+function recordblocking (recorder, length)
 
   if (nargin != 2)
     print_usage ();
   endif
 
-  __recorder_recordblocking__ (struct (varargin{1}).recorder, varargin{2});
+  __recorder_recordblocking__ (struct (recorder).recorder, length);
 
 endfunction
+
+
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audiorecorder/resume.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/resume.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,14 +26,16 @@
 ## -*- texinfo -*-
 ## @deftypefn {} {} resume (@var{recorder})
 ## Resume recording with the paused audiorecorder object @var{recorder}.
+## @seealso{@audiorecorder/pause, @audiorecorder/stop,
+## @audiorecorder/audiorecorder}
 ## @end deftypefn
 
 function resume (recorder)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   __recorder_resume__ (struct (recorder).recorder);
 
 endfunction
+
+
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audiorecorder/set.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/set.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,42 +25,44 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {} set (@var{recorder}, @var{name}, @var{value})
-## @deftypefnx {} {} set (@var{recorder}, @var{properties})
+## @deftypefnx {} {} set (@var{recorder}, @var{name_cell}, @var{value_cell})
+## @deftypefnx {} {} set (@var{recorder}, @var{properties_struct})
 ## @deftypefnx {} {@var{properties} =} set (@var{recorder})
 ## Set the value of property specified by @var{name} to a given @var{value}.
 ##
-## If @var{name} and @var{value} are cell arrays of the same size, set each
-## property to a corresponding value.  Given a structure with fields
+## If @var{name} and @var{value} are cell arrays, set each property to a
+## corresponding value.  Given a structure of properties with fields
 ## corresponding to property names, set the value of those properties to the
-## corresponding field values.  Given only the recorder object, return a
-## structure of settable properties.
+## corresponding field values.  Given only a recorder object, return a
+## structure of configurable properties (i.e., writeable properties).
+## @seealso{@audiorecorder/get, @audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function settable = set (varargin)
+function properties = set (recorder, varargin)
 
-  if (nargin < 1 || nargin > 3)
+  if (nargin > 3)
     print_usage ();
   endif
 
-  recorder = struct (varargin{1}).recorder;
+  hrecorder = struct (recorder).recorder;
 
   if (nargin == 1)
-    settable.SampleRate = {};
-    settable.Tag = {};
-    settable.UserData = {};
+    properties = struct ("SampleRate", {{}}, "Tag", {{}}, "UserData", {{}});
+
   elseif (nargin == 2)
-    for [value, property] = varargin{2}
-      setproperty (recorder, property, value);
+    for [value, property] = varargin{1}
+      setproperty (hrecorder, property, value);
     endfor
+
   elseif (nargin == 3)
-    if (iscell (varargin{2}))
+    if (iscell (varargin{1}))
       index = 1;
-      for property = varargin{2}
-        setproperty (recorder, char (property), varargin{3}{index});
+      for property = varargin{1}
+        setproperty (hrecorder, char (property), varargin{2}{index});
         index += 1;
       endfor
     else
-      setproperty (recorder, varargin{2}, varargin{3});
+      setproperty (hrecorder, varargin{1}, varargin{2});
     endif
   endif
 
@@ -68,15 +70,52 @@
 
 function setproperty (recorder, property, value)
 
-  switch (property)
-    case "SampleRate"
+  switch (lower (property))
+    case "samplerate"
       __recorder_set_fs__ (recorder, value);
-    case "Tag"
+    case "tag"
       __recorder_set_tag__ (recorder, value);
-    case "UserData"
+    case "userdata"
       __recorder_set_userdata__ (recorder, value);
     otherwise
-      error ("@audiorecorder/set: no such property or the property specified is read-only");
+      error ('@audiorecorder/set: "%s" is not a valid property name or is read-only', property);
   endswitch
 
 endfunction
+
+
+## Tests of audiorecorder must not actually record anything.
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder ();
+%! set (recorder, "SampleRate", 8800);
+%! set (recorder, "Tag", "mytag");
+%! ## Also test case insensitivity
+%! set (recorder, "USERdata", [1, 2; 3, 4]);
+%! assert (recorder.SampleRate, 8800);
+%! assert (recorder.Tag, "mytag");
+%! assert (recorder.UserData, [1, 2; 3, 4]);
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder ();
+%! set (recorder, {"SampleRate", "Tag", "UserData"},
+%!                {8800, "mytag", [1, 2; 3, 4]});
+%! assert (recorder.SampleRate, 8800);
+%! assert (recorder.Tag, "mytag");
+%! assert (recorder.UserData, [1, 2; 3, 4]);
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder ();
+%! props = set (recorder);
+%! props.SampleRate = 8800;
+%! props.Tag = "mytag";
+%! props.UserData = [1, 2; 3, 4];
+%! set (recorder, props);
+%! assert (recorder.SampleRate, 8800);
+%! assert (recorder.Tag, "mytag");
+%! assert (recorder.UserData, [1, 2; 3, 4]);
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder ();
+%! fail ('set (recorder, "foobar", 1)', "not a valid property name"); 
+%! fail ('set (recorder, "Running", 1)', "is read-only"); 
--- a/scripts/audio/@audiorecorder/stop.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/stop.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,15 +25,18 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {} {} stop (@var{recorder})
-## Stop the audiorecorder object @var{recorder} and clean up any audio streams.
+## Stop recording with audiorecorder object @var{recorder} and clean up any
+## audio streams.
+## @seealso{@audiorecorder/pause, @audiorecorder/resume,
+## @audiorecorder/audiorecorder}
 ## @end deftypefn
 
 function stop (recorder)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
   __recorder_stop__ (struct (recorder).recorder);
 
 endfunction
+
+
+## No tests possible for this function
+%!assert (1)
--- a/scripts/audio/@audiorecorder/subsasgn.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/subsasgn.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,9 +28,10 @@
 ## Perform subscripted assignment on the audio recorder object @var{recorder}.
 ##
 ## Assign the value of @var{rhs} to the recorder property named by @var{idx}.
+## @seealso{@audiorecorder/audiorecorder}
 ## @end deftypefn
 
-function value = subsasgn (recorder, idx, rhs)
+function recorder = subsasgn (recorder, idx, rhs)
 
   if (nargin != 3)
     print_usage ();
@@ -43,9 +44,20 @@
   if (strcmp (idx(1).type, "."))
     field = idx.subs;
     set (recorder, field, rhs);
-    value = recorder;
   else
     error ("@audiorecorder/subsasgn: invalid subscript type");
   endif
 
 endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! recorder.Tag = "mytag";
+%! assert (get (recorder, "Tag"), "mytag");
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! fail ("recorder(1).Tag = 5", "invalid subscript type");
+%! fail ("recorder{1}.Tag = 5", "invalid subscript type");
--- a/scripts/audio/@audiorecorder/subsref.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/@audiorecorder/subsref.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,7 @@
 ## Perform subscripted selection on the audio recorder object @var{recorder}.
 ##
 ## Return the recorder property value named by @var{idx}.
+## @seealso{@audiorecorder/audiorecorder}
 ## @end deftypefn
 
 function value = subsref (recorder, idx)
@@ -48,3 +49,15 @@
   endif
 
 endfunction
+
+
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! set (recorder, "Tag", "mytag");
+%! assert (recorder.Tag, "mytag");
+
+## Test input validation
+%!testif HAVE_PORTAUDIO; audiodevinfo (1) > 0
+%! recorder = audiorecorder (44100, 16, 2);
+%! fail ("recorder(1).Tag", "invalid subscript type");
+%! fail ("recorder{1}.Tag", "invalid subscript type");
--- a/scripts/audio/lin2mu.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/lin2mu.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,47 +24,41 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{y} =} lin2mu (@var{x}, @var{n})
+## @deftypefn  {} {@var{y} =} lin2mu (@var{x})
+## @deftypefnx {} {@var{y} =} lin2mu (@var{x}, @var{n})
 ## Convert audio data from linear to mu-law.
 ##
-## Mu-law values use 8-bit unsigned integers.  Linear values use @var{n}-bit
-## signed integers or floating point values in the range -1 @leq{} @var{x}
-## @leq{} 1 if @var{n} is 0.
-##
-## If @var{n} is not specified it defaults to 0, 8, or 16 depending on
-## the range of values in @var{x}.
+## Linear values use floating point values in the range -1 @leq{} @var{x}
+## @leq{} 1 if @var{n} is 0 (default), or @var{n}-bit signed integers if @var{n}
+## is 8 or 16.  Mu-law values are 8-bit unsigned integers in the range
+## 0 @leq{} @var{y} @leq{} 255.
 ## @seealso{mu2lin}
 ## @end deftypefn
 
-
-function y = lin2mu (x, n)
+function y = lin2mu (x, n = 0)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  if (nargin == 1)
-    range = max (abs (x (:)));
-    if (range <= 1)
+  ## Convert to floating point integers per Matlab.
+  x = double (x);
+
+  if (nargin == 2)
+    if (! isscalar (n) && ! isreal (n)
+        || (n != 0 && n != 8 && n != 16))
+      error ("lin2mu: N must be either 0, 8, or 16");
+    elseif (isempty (n))
       n = 0;
-    elseif (range <= 128)
-      n = 8;
-      warning ("lin2mu: no precision specified, so using %d", n);
-    else
-      n = 16;
-    endif
-  else
-    if (n != 0 && n != 8 && n != 16)
-      error ("lin2mu: N must be either 0, 8 or 16");
     endif
   endif
 
   ## Transform real and n-bit format to 16-bit.
   if (n == 0)
     ## [-1,1] -> [-32768, 32768]
-    x = 32768 * x;
+    x *= 32768;
   elseif (n != 16)
-    x = 2^(16-n) .* x;
+    x *= 256;
   endif
 
   ## Determine sign of x, set sign(0) = 1.
@@ -74,9 +68,36 @@
   ## add bias.
   x = min (abs (x), 32635) + 132;
 
-  ## Find exponent and fraction of bineary representation.
+  ## Find exponent and fraction of binary representation.
   [f, e] = log2 (x);
 
   y = 64 * sig - 16 * e - fix (32 * f) + 335;
 
 endfunction
+
+
+## Test functionality
+%!test
+%! x = -1:1;
+%! y = x';
+%! assert (lin2mu (x), (lin2mu (y))')
+%! assert (lin2mu (x), [0, 255, 128])
+
+%!assert (lin2mu ([0, 1, NaN, inf, -inf], 8), [255, 231, NaN, 128, 0])
+%!assert (lin2mu ([]), [])
+%!assert (lin2mu (0), 255)
+%!assert (lin2mu (0, 0), 255)
+%!assert (lin2mu (0, 8), 255)
+%!assert (lin2mu (0, 16), 255)
+%!assert (lin2mu (2, 8), 219)
+%!assert (lin2mu (3, []), 128)
+%!assert (lin2mu (3, 16), 255)
+%!assert (lin2mu (repmat (-0.23, 1, 1000), 0), repmat (34, 1, 1000))
+%!assert (lin2mu (ones (2, 2), 0), repmat (128, 2))
+
+## Test input validation
+%!error <Invalid call> lin2mu ()
+%!error <N must be either 0, 8, or 16> lin2mu (1, 2)
+%!error <N must be either 0, 8, or 16> lin2mu (1, [1,2])
+%!error <N must be either 0, 8, or 16> lin2mu (1, ones (1, 2))
+%!error <invalid conversion> lin2mu ({2:5})
--- a/scripts/audio/mu2lin.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/mu2lin.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,14 +24,20 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{y} =} mu2lin (@var{x}, @var{n})
+## @deftypefn  {} {@var{y} =} mu2lin (@var{x})
+## @deftypefnx {} {@var{y} =} mu2lin (@var{x}, @var{n})
 ## Convert audio data from mu-law to linear.
 ##
-## Mu-law values are 8-bit unsigned integers.  Linear values use @var{n}-bit
-## signed integers or floating point values in the range -1 @leq{} @var{y}
-## @leq{} 1 if @var{n} is 0.
+## Mu-law values are 8-bit unsigned integers in the range 0 @leq{} @var{y}
+## @leq{} 255.  Linear values use floating point values in the range
+## -@var{linmax} @leq{} @var{x} @var{linmax} (where
+## @code{@var{linmax} = 32124/32768 =~ 0.98}) when @var{n} is zero (default).
+## If @var{n} is 8 or 16 then @var{n}-bit signed integers are used instead.
 ##
-## If @var{n} is not specified it defaults to 0.
+## Programming Note: @code{mu2lin} maps maximum mu-law inputs to values
+## slightly below the maximum ([-0.98, +0.98]) representable with a linear
+## scale.  Because of this, @code{mu2lin (lin2mu (@var{x}))} might not
+## reproduce the original input.
 ## @seealso{lin2mu}
 ## @end deftypefn
 
@@ -41,8 +47,13 @@
     print_usage ();
   endif
 
-  if (n != 0 && n != 8 && n != 16)
-    error ("mu2lin: N must be either 0, 8, or 16");
+  if (nargin == 2)
+    if (! isscalar (n) && ! isreal (n)
+        || (n != 0 && n != 8 && n != 16))
+      error ("lin2mu: N must be either 0, 8, or 16");
+    elseif (isempty (n))
+      n = 0;
+    endif
   endif
 
   ulaw = [32124, 31100, 30076, 29052, 28028, 27004, 25980, 24956, ...
@@ -74,7 +85,7 @@
     ## [ -32768, 32767 ] -> [ -1, 1)
     y /= 32768;
   elseif (n == 8)
-    ld = max (abs (y (:)));
+    ld = max (abs (y(:)));
     if (ld < 16384 && ld > 0)
       sc = 64 / ld;
     else
@@ -84,3 +95,32 @@
   endif
 
 endfunction
+
+
+## Test functionality
+%!shared linmax
+%! linmax = 32124 / 32768;
+
+%!test
+%! x = [0, 128, 255];
+%! y = x';
+%! assert (mu2lin (x), (mu2lin (y))');
+%! assert (mu2lin (x), [-linmax, +linmax, 0]);
+
+%!assert (mu2lin ([]), [])
+%!assert (mu2lin (255), 0)
+%!assert (mu2lin (255, 0), 0)
+%!assert (mu2lin (255, 8), 0)
+%!assert (mu2lin (255, 16), 0)
+%!assert (mu2lin (128, []), linmax)
+%!assert (mu2lin (128, 8), 125)
+%!assert (mu2lin (128, 16), 32124)
+%!assert (mu2lin (zeros (1, 1000), 0), repmat (-linmax, 1, 1000))
+%!assert (mu2lin (255*ones (2, 2), 0), zeros (2, 2))
+
+## Test input validation
+%!error <Invalid call> mu2lin ()
+%!error <N must be either 0, 8, or 16> mu2lin (1, 2)
+%!error <N must be either 0, 8, or 16> mu2lin (1, [1,2])
+%!error <N must be either 0, 8, or 16> mu2lin (1, ones (1, 2))
+%!error mu2lin ({2:5})
--- a/scripts/audio/record.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/record.m	Tue Nov 15 13:15:28 2022 -0800
@@ -33,10 +33,10 @@
 ## for recording.
 ##
 ## For more control over audio recording, use the @code{audiorecorder} class.
-## @seealso{sound, soundsc}
+## @seealso{@audiorecorder/audiorecorder, sound, soundsc}
 ## @end deftypefn
 
-function x = record (sec, fs = 8000)
+function data = record (sec, fs = 8000)
 
   if (nargin < 1)
     print_usage ();
@@ -50,16 +50,14 @@
     error ("record: sample rate FS must be a positive number");
   endif
 
-  x = [];
+  data = [];
 
   if (sec > 0)
-
     rec = audiorecorder (fs, 16, 1);
 
     recordblocking (rec, sec);
 
-    x = getaudiodata (rec);
-
+    data = getaudiodata (rec);
   endif
 
 endfunction
--- a/scripts/audio/sound.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/sound.m	Tue Nov 15 13:15:28 2022 -0800
@@ -30,7 +30,7 @@
 ## Play audio data @var{y} at sample rate @var{fs} to the default audio
 ## device.
 ##
-## The audio signal @var{y} can be a vector or a two-column array, representing
+## The audio signal @var{y} can be a vector or a two-column array representing
 ## mono or stereo audio, respectively.
 ##
 ## If @var{fs} is not given, a default sample rate of 8000 samples per second
@@ -40,7 +40,7 @@
 ## audio device and defaults to 8 bits.
 ##
 ## For more control over audio playback, use the @code{audioplayer} class.
-## @seealso{soundsc, record}
+## @seealso{soundsc, @audioplayer/audioplayer, record}
 ## @end deftypefn
 
 function sound (y, fs, nbits)
--- a/scripts/audio/soundsc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/audio/soundsc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -31,7 +31,7 @@
 ## Scale the audio data @var{y} and play it at sample rate @var{fs} to the
 ## default audio device.
 ##
-## The audio signal @var{y} can be a vector or a two-column array, representing
+## The audio signal @var{y} can be a vector or a two-column array representing
 ## mono or stereo audio, respectively.
 ##
 ## If @var{fs} is not given, a default sample rate of 8000 samples per second
@@ -46,19 +46,15 @@
 ## are scaled to the range [-1, 1] instead.
 ##
 ## For more control over audio playback, use the @code{audioplayer} class.
-## @seealso{sound, record}
+## @seealso{sound, @audioplayer/audioplayer, record}
 ## @end deftypefn
 
-function soundsc (y, fs, nbits, yrange)
+function soundsc (y, fs, nbits, yrange = [])
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  if (nargin < 4)
-    yrange = [];
-  endif
-
   if (nargin < 2 || isempty (fs))
     fs = 8000;
   elseif (nargin == 2 && numel (fs) > 1)
--- a/scripts/deprecated/disable_diagonal_matrix.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/deprecated/disable_diagonal_matrix.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,7 +26,7 @@
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{val} =} disable_diagonal_matrix ()
 ## @deftypefnx {} {@var{old_val} =} disable_diagonal_matrix (@var{new_val})
-## @deftypefnx {} {} disable_diagonal_matrix (@var{new_val}, "local")
+## @deftypefnx {} {@var{old_val} =} disable_diagonal_matrix (@var{new_val}, "local")
 ##
 ## @code{disable_diagonal_matrix} is deprecated and will be removed in Octave
 ## version 9.  Use @code{optimize_diagonal_matrix} instead.
--- a/scripts/deprecated/disable_permutation_matrix.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/deprecated/disable_permutation_matrix.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,7 +26,7 @@
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{val} =} disable_permutation_matrix ()
 ## @deftypefnx {} {@var{old_val} =} disable_permutation_matrix (@var{new_val})
-## @deftypefnx {} {} disable_permutation_matrix (@var{new_val}, "local")
+## @deftypefnx {} {@var{old_val} =} disable_permutation_matrix (@var{new_val}, "local")
 ##
 ## @code{disable_permutation_matrix} is deprecated and will be removed in
 ## Octave version 9.  Use @code{optimize_permutation_matrix} instead.
--- a/scripts/deprecated/disable_range.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/deprecated/disable_range.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,7 +26,7 @@
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{val} =} disable_range ()
 ## @deftypefnx {} {@var{old_val} =} disable_range (@var{new_val})
-## @deftypefnx {} {} disable_range (@var{new_val}, "local")
+## @deftypefnx {} {@var{old_val} =} disable_range (@var{new_val}, "local")
 ##
 ## @code{disable_range} is deprecated and will be removed in Octave version 9.
 ## Use @code{optimize_range} instead.
--- a/scripts/deprecated/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/deprecated/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -5,7 +5,8 @@
   %reldir%/disable_diagonal_matrix.m \
   %reldir%/disable_permutation_matrix.m \
   %reldir%/disable_range.m \
-  %reldir%/runtests.m
+  %reldir%/shift.m \
+  %reldir%/sparse_auto_mutate.m
 
 %canon_reldir%dir = $(fcnfiledir)/deprecated
 
--- a/scripts/deprecated/runtests.m	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-########################################################################
-##
-## Copyright (C) 2010-2022 The Octave Project Developers
-##
-## See the file COPYRIGHT.md in the top-level directory of this
-## distribution or <https://octave.org/copyright/>.
-##
-## This file is part of Octave.
-##
-## Octave is free software: you can redistribute it and/or modify it
-## under the terms of the GNU General Public License as published by
-## the Free Software Foundation, either version 3 of the License, or
-## (at your option) any later version.
-##
-## Octave is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with Octave; see the file COPYING.  If not, see
-## <https://www.gnu.org/licenses/>.
-##
-########################################################################
-
-## -*- texinfo -*-
-## @deftypefn  {} {} runtests ()
-## @deftypefnx {} {} runtests (@var{directory})
-##
-##
-## @code{runtests} is deprecated and will be removed in Octave version 8.
-## Use @code{oruntests} instead.
-##
-## Execute built-in tests for all m-files in the specified @var{directory}.
-##
-## Test blocks in any C++ source files (@file{*.cc}) will also be executed
-## for use with dynamically linked oct-file functions.
-##
-## If no directory is specified, operate on all directories in Octave's search
-## path for functions.
-## @seealso{oruntests, rundemos, test, path}
-## @end deftypefn
-
-## FIXME: DEPRECATED: Remove in version 8.
-
-function runtests (varargin)
-
-  persistent warned = false;
-  if (! warned)
-    warned = true;
-    warning ("Octave:deprecated-function",
-             "runtests is obsolete and will be removed from a future version of Octave, please use oruntests instead\n");
-  endif
-
-  oruntests (varargin{:});
-
-endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/deprecated/shift.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,115 @@
+########################################################################
+##
+## Copyright (C) 1995-2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn  {} {@var{y} =} shift (@var{x}, @var{b})
+## @deftypefnx {} {@var{y} =} shift (@var{x}, @var{b}, @var{dim})
+##
+## @code{shift} is deprecated and will be removed in Octave version 10.  Use
+## @code{circshift} instead.
+##
+## If @var{x} is a vector, perform a circular shift of length @var{b} of
+## the elements of @var{x}.
+##
+## If @var{x} is a matrix, do the same for each column of @var{x}.
+##
+## If the optional @var{dim} argument is given, operate along this dimension.
+## @seealso{circshift}
+## @end deftypefn
+
+## FIXME: DEPRECATED: Remove in version 10.
+
+function y = shift (x, b, dim)
+
+  persistent warned = false;
+  if (! warned)
+    warned = true;
+    warning ("Octave:deprecated-function",
+             "shift is deprecated and will be removed from a future version of Octave, please use circshift instead\n");
+  endif
+
+  if (nargin < 2)
+    print_usage ();
+  endif
+
+  if (numel (x) < 1)
+    error ("shift: X must not be empty");
+  elseif (! (isscalar (b) && b == fix (b)))
+    error ("shift: B must be an integer");
+  endif
+
+  nd = ndims (x);
+  sz = size (x);
+
+  if (nargin == 3)
+    if (!(isscalar (dim) && dim == fix (dim))
+        || !(1 <= dim && dim <= nd))
+      error ("shift: DIM must be an integer and a valid dimension");
+    endif
+  else
+    ## Find the first non-singleton dimension.
+    (dim = find (sz > 1, 1)) || (dim = 1);
+  endif
+
+  d = sz(dim);
+
+  idx = repmat ({':'}, nd, 1);
+  if (b > 0)
+    b = rem (b, d);
+    idx{dim} = [d-b+1:d, 1:d-b];
+  elseif (b < 0)
+    b = rem (abs (b), d);
+    idx{dim} = [b+1:d, 1:b];
+  endif
+
+  y = x(idx{:});
+
+endfunction
+
+
+%!test
+%! a = [1, 2, 3];
+%! b = [4, 5, 6];
+%! c = [7, 8, 9];
+%!
+%! r = [a, b, c];
+%! m = [a; b; c];
+%!
+%! assert (shift (r, 0), r);
+%! assert (shift (r, 3), [c, a, b]);
+%! assert (shift (r, -6), [c, a, b]);
+%! assert (shift (r, -3), [b, c, a]);
+%! assert (shift (m, 1), [c; a; b]);
+%! assert (shift (m, -2), [c; a; b]);
+
+## Test input validation
+%!error <Invalid call> shift ()
+%!error <Invalid call> shift (1)
+%!error <X must not be empty> shift ([], 1)
+%!error <B must be an integer> shift (ones (2), ones (2))
+%!error <B must be an integer> shift (ones (2), 1.5)
+%!error <DIM must be an integer> shift (1, 1, 1.5)
+%!error <DIM must be .* a valid dimension> shift (1, 1, 0)
+%!error <DIM must be .* a valid dimension> shift (1, 1, 3)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/deprecated/sparse_auto_mutate.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,81 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn  {} {@var{val} =} sparse_auto_mutate ()
+## @deftypefnx {} {@var{old_val} =} sparse_auto_mutate (@var{new_val})
+## @deftypefnx {} {@var{old_val} =} sparse_auto_mutate (@var{new_val}, "local")
+##
+## @code{sparse_auto_mutate} is deprecated and will be removed in Octave
+## version 9.  Use @code{optimize_diagonal_matrix} instead.
+##
+## Query or set whether storing diagonal matrices in a special space-efficient
+## format is disabled.
+##
+## The default value is false.  If this option is set to true, Octave will
+## store ranges as full matrices.
+##
+## When called from inside a function with the @qcode{"local"} option, the
+## setting is changed locally for the function and any subroutines it calls.
+## The original setting is restored when exiting the function.
+## @seealso{sparse_auto_mutate, disable_permutation_matrix}
+## @end deftypefn
+
+## FIXME: DEPRECATED: Remove in version 10.
+
+function retval = sparse_auto_mutate (val, opt)
+
+  persistent warned = false;
+  if (! warned)
+    warned = true;
+    warning ("Octave:deprecated-function",
+             "sparse_auto_mutate is obsolete, has no effect, and will be removed from a future version of Octave\n");
+  endif
+
+  if (nargin == 0 || nargout > 0)
+    ## Always false now.
+    retval = false;
+    return;
+  endif
+
+  if (nargin == 2)
+    if (! (ischar (opt) && strcmp (opt, "local")))
+      error ('sparse_auto_mutate: second argument must be "local"');
+    endif
+    nargin = 1;
+  endif
+
+  ## Don't bother warning that "local" is invalid outside of a
+  ## function.
+
+  if (nargin > 1)
+    print_usage ();
+  endif
+
+  if (! islogical (val))
+    error ("sparse_auto_mutate: argument must be a logical value");
+  endif
+
+endfunction
--- a/scripts/elfun/acosd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/acosd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} acosd (@var{x})
+## @deftypefn {} {@var{y} =} acosd (@var{x})
 ## Compute the inverse cosine in degrees for each element of @var{x}.
 ## @seealso{cosd, acos}
 ## @end deftypefn
--- a/scripts/elfun/acot.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/acot.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} acot (@var{x})
+## @deftypefn {} {@var{y} =} acot (@var{x})
 ## Compute the inverse cotangent in radians for each element of @var{x}.
 ## @seealso{cot, acotd}
 ## @end deftypefn
--- a/scripts/elfun/acotd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/acotd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} acotd (@var{x})
+## @deftypefn {} {@var{y} =} acotd (@var{x})
 ## Compute the inverse cotangent in degrees for each element of @var{x}.
 ## @seealso{cotd, acot}
 ## @end deftypefn
--- a/scripts/elfun/acoth.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/acoth.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} acoth (@var{x})
+## @deftypefn {} {@var{y} =} acoth (@var{x})
 ## Compute the inverse hyperbolic cotangent of each element of @var{x}.
 ## @seealso{coth}
 ## @end deftypefn
--- a/scripts/elfun/acsc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/acsc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} acsc (@var{x})
+## @deftypefn {} {@var{y} =} acsc (@var{x})
 ## Compute the inverse cosecant in radians for each element of @var{x}.
 ## @seealso{csc, acscd}
 ## @end deftypefn
--- a/scripts/elfun/acscd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/acscd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} acscd (@var{x})
+## @deftypefn {} {@var{y} =} acscd (@var{x})
 ## Compute the inverse cosecant in degrees for each element of @var{x}.
 ## @seealso{cscd, acsc}
 ## @end deftypefn
--- a/scripts/elfun/acsch.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/acsch.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} acsch (@var{x})
+## @deftypefn {} {@var{y} =} acsch (@var{x})
 ## Compute the inverse hyperbolic cosecant of each element of @var{x}.
 ## @seealso{csch}
 ## @end deftypefn
--- a/scripts/elfun/asec.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/asec.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} asec (@var{x})
+## @deftypefn {} {@var{y} =} asec (@var{x})
 ## Compute the inverse secant in radians for each element of @var{x}.
 ## @seealso{sec, asecd}
 ## @end deftypefn
--- a/scripts/elfun/asecd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/asecd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} asecd (@var{x})
+## @deftypefn {} {@var{y} =} asecd (@var{x})
 ## Compute the inverse secant in degrees for each element of @var{x}.
 ## @seealso{secd, asec}
 ## @end deftypefn
--- a/scripts/elfun/asech.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/asech.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} asech (@var{x})
+## @deftypefn {} {@var{y} =} asech (@var{x})
 ## Compute the inverse hyperbolic secant of each element of @var{x}.
 ## @seealso{sech}
 ## @end deftypefn
--- a/scripts/elfun/asind.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/asind.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} asind (@var{x})
+## @deftypefn {} {@var{y} =} asind (@var{x})
 ## Compute the inverse sine in degrees for each element of @var{x}.
 ## @seealso{sind, asin}
 ## @end deftypefn
--- a/scripts/elfun/atan2d.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/atan2d.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,19 +24,19 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} atan2d (@var{y}, @var{x})
+## @deftypefn {} {@var{d} =} atan2d (@var{y}, @var{x})
 ## Compute atan (@var{y} / @var{x}) in degrees for corresponding elements
 ## from @var{y} and @var{x}.
 ## @seealso{tand, atan2}
 ## @end deftypefn
 
-function retval = atan2d (y, x)
+function d = atan2d (y, x)
 
   if (nargin != 2)
     print_usage ();
   endif
 
-  retval = 180 ./ pi .* atan2 (y, x);
+  d = 180 ./ pi .* atan2 (y, x);
 
 endfunction
 
--- a/scripts/elfun/atand.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/atand.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} atand (@var{x})
+## @deftypefn {} {@var{y} =} atand (@var{x})
 ## Compute the inverse tangent in degrees for each element of @var{x}.
 ## @seealso{tand, atan}
 ## @end deftypefn
--- a/scripts/elfun/cosd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/cosd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} cosd (@var{x})
+## @deftypefn {} {@var{y} =} cosd (@var{x})
 ## Compute the cosine for each element of @var{x} in degrees.
 ##
 ## The function is more accurate than @code{cos} for large values of @var{x}
--- a/scripts/elfun/cot.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/cot.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} cot (@var{x})
+## @deftypefn {} {@var{y} =} cot (@var{x})
 ## Compute the cotangent for each element of @var{x} in radians.
 ## @seealso{acot, cotd, coth}
 ## @end deftypefn
--- a/scripts/elfun/cotd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/cotd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} cotd (@var{x})
+## @deftypefn {} {@var{y} =} cotd (@var{x})
 ## Compute the cotangent for each element of @var{x} in degrees.
 ## @seealso{acotd, cot}
 ## @end deftypefn
--- a/scripts/elfun/coth.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/coth.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} coth (@var{x})
+## @deftypefn {} {@var{y} =} coth (@var{x})
 ## Compute the hyperbolic cotangent of each element of @var{x}.
 ## @seealso{acoth}
 ## @end deftypefn
--- a/scripts/elfun/csc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/csc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} csc (@var{x})
+## @deftypefn {} {@var{y} =} csc (@var{x})
 ## Compute the cosecant for each element of @var{x} in radians.
 ## @seealso{acsc, cscd, csch}
 ## @end deftypefn
--- a/scripts/elfun/cscd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/cscd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} cscd (@var{x})
+## @deftypefn {} {@var{y} =} cscd (@var{x})
 ## Compute the cosecant for each element of @var{x} in degrees.
 ## @seealso{acscd, csc}
 ## @end deftypefn
--- a/scripts/elfun/csch.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/csch.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} csch (@var{x})
+## @deftypefn {} {@var{y} =} csch (@var{x})
 ## Compute the hyperbolic cosecant of each element of @var{x}.
 ## @seealso{acsch}
 ## @end deftypefn
--- a/scripts/elfun/sec.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/sec.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} sec (@var{x})
+## @deftypefn {} {@var{y} =} sec (@var{x})
 ## Compute the secant for each element of @var{x} in radians.
 ## @seealso{asec, secd, sech}
 ## @end deftypefn
--- a/scripts/elfun/secd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/secd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} secd (@var{x})
+## @deftypefn {} {@var{y} =} secd (@var{x})
 ## Compute the secant for each element of @var{x} in degrees.
 ## @seealso{asecd, sec}
 ## @end deftypefn
--- a/scripts/elfun/sech.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/sech.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} sech (@var{x})
+## @deftypefn {} {@var{y} =} sech (@var{x})
 ## Compute the hyperbolic secant of each element of @var{x}.
 ## @seealso{asech}
 ## @end deftypefn
--- a/scripts/elfun/sind.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/sind.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} sind (@var{x})
+## @deftypefn {} {@var{y} =} sind (@var{x})
 ## Compute the sine for each element of @var{x} in degrees.
 ##
 ## The function is more accurate than @code{sin} for large values of @var{x}
--- a/scripts/elfun/tand.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/elfun/tand.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} tand (@var{x})
+## @deftypefn {} {@var{y} =} tand (@var{x})
 ## Compute the tangent for each element of @var{x} in degrees.
 ##
 ## Returns zero for elements where @code{@var{x}/180} is an integer and
--- a/scripts/general/accumarray.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/accumarray.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} accumarray (@var{subs}, @var{vals}, @var{sz}, @var{func}, @var{fillval}, @var{issparse})
-## @deftypefnx {} {} accumarray (@var{subs}, @var{vals}, @dots{})
+## @deftypefn  {} {@var{A} =} accumarray (@var{subs}, @var{vals})
+## @deftypefnx {} {@var{A} =} accumarray (@var{subs}, @var{vals}, @var{sz})
+## @deftypefnx {} {@var{A} =} accumarray (@var{subs}, @var{vals}, @var{sz}, @var{fcn})
+## @deftypefnx {} {@var{A} =} accumarray (@var{subs}, @var{vals}, @var{sz}, @var{fcn}, @var{fillval})
+## @deftypefnx {} {@var{A} =} accumarray (@var{subs}, @var{vals}, @var{sz}, @var{fcn}, @var{fillval}, @var{issparse})
 ##
 ## Create an array by accumulating the elements of a vector into the
 ## positions defined by their subscripts.
@@ -46,14 +49,14 @@
 ##
 ## The default action of @code{accumarray} is to sum the elements with
 ## the same subscripts.  This behavior can be modified by defining the
-## @var{func} function.  This should be a function or function handle
+## @var{fcn} function.  This should be a function or function handle
 ## that accepts a column vector and returns a scalar.  The result of the
 ## function should not depend on the order of the subscripts.
 ##
 ## The elements of the returned array that have no subscripts associated
 ## with them are set to zero.  Defining @var{fillval} to some other value
 ## allows these values to be defined.  This behavior changes, however,
-## for certain values of @var{func}.  If @var{func} is @code{@@min}
+## for certain values of @var{fcn}.  If @var{fcn} is @code{@@min}
 ## (respectively, @code{@@max}) then the result will be filled with the
 ## minimum (respectively, maximum) integer if @var{vals} is of integral
 ## type, logical false (respectively, logical true) if @var{vals} is of
@@ -123,7 +126,7 @@
 ## The complexity of accumarray in general for the non-sparse case is
 ## generally O(M+N), where N is the number of subscripts and M is the
 ## maximum subscript (linearized in multi-dimensional case).  If
-## @var{func} is one of @code{@@sum} (default), @code{@@max},
+## @var{fcn} is one of @code{@@sum} (default), @code{@@max},
 ## @code{@@min} or @code{@@(x) @{x@}}, an optimized code path is used.
 ## Note that for general reduction function the interpreter overhead can
 ## play a major part and it may be more efficient to do multiple
@@ -132,7 +135,7 @@
 ## @seealso{accumdim, unique, sparse}
 ## @end deftypefn
 
-function A = accumarray (subs, vals, sz = [], func = [], fillval = [], issparse = [])
+function A = accumarray (subs, vals, sz = [], fcn = [], fillval = [], issparse = [])
 
   if (nargin < 2)
     print_usage ();
@@ -160,10 +163,10 @@
     endif
   endif
 
-  if (isempty (func))
-    func = @sum;
-  elseif (! is_function_handle (func))
-    error ("accumarray: FUNC must be a function handle");
+  if (isempty (fcn))
+    fcn = @sum;
+  elseif (! is_function_handle (fcn))
+    error ("accumarray: FCN must be a function handle");
   endif
 
   if (isempty (fillval))
@@ -201,7 +204,7 @@
       error ("accumarray: in the sparse case, values must be numeric or logical");
     endif
 
-    if (func != @sum)
+    if (fcn != @sum)
 
       ## Reduce values.  This is not needed if we're about to sum them,
       ## because "sparse" can do that.
@@ -213,7 +216,7 @@
       jdx = find (any (diff (subs, 1, 1), 2));
       jdx = [jdx; n];
 
-      vals = cellfun (func, mat2cell (vals(:)(idx), diff ([0; jdx])));
+      vals = cellfun (fcn, mat2cell (vals(:)(idx), diff ([0; jdx])));
       subs = subs(jdx, :);
       mode = "unique";
     else
@@ -264,7 +267,7 @@
 
     ## Some built-in reductions handled efficiently.
 
-    if (func == @sum)
+    if (fcn == @sum)
       ## Fast summation.
       if (isempty (sz))
         A = __accumarray_sum__ (subs, vals);
@@ -280,7 +283,7 @@
         mask(subs) = false;
         A(mask) = fillval;
       endif
-    elseif (func == @max)
+    elseif (fcn == @max)
       ## Fast maximization.
 
       if (isinteger (vals))
@@ -307,7 +310,7 @@
         mask(subs) = false;
         A(mask) = fillval;
       endif
-    elseif (func == @min)
+    elseif (fcn == @min)
       ## Fast minimization.
 
       if (isinteger (vals))
@@ -355,8 +358,8 @@
       ## Optimize the case when function is @(x) {x}, i.e., we just want
       ## to collect the values to cells.
       persistent simple_cell_str = func2str (@(x) {x});
-      if (! strcmp (func2str (func), simple_cell_str))
-        vals = cellfun (func, vals);
+      if (! strcmp (func2str (fcn), simple_cell_str))
+        vals = cellfun (fcn, vals);
       endif
 
       subs = subs(jdx);
@@ -455,9 +458,9 @@
 %!   assert (accumarray (zeros (0, 1), [], [] , funcs{idx}), zeros (0, 1));
 %! endfor
 
-## Matlab returns an array of doubles even though FUNC returns cells.  In
+## Matlab returns an array of doubles even though FCN returns cells.  In
 ## Octave, we do not have that bug, at least for this case.
 %!assert (accumarray (zeros (0, 1), [], [0 1] , @(x) {x}), cell (0, 1))
 
-%!error <FUNC must be a function handle>
+%!error <FCN must be a function handle>
 %! accumarray ([1; 2; 3], [1; 2; 3], [3 1], '@(x) {x}')
--- a/scripts/general/accumdim.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/accumdim.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} accumdim (@var{subs}, @var{vals}, @var{dim}, @var{n}, @var{func}, @var{fillval})
+## @deftypefn  {} {@var{A} =} accumdim (@var{subs}, @var{vals})
+## @deftypefnx {} {@var{A} =} accumdim (@var{subs}, @var{vals}, @var{dim})
+## @deftypefnx {} {@var{A} =} accumdim (@var{subs}, @var{vals}, @var{dim}, @var{n})
+## @deftypefnx {} {@var{A} =} accumdim (@var{subs}, @var{vals}, @var{dim}, @var{n}, @var{fcn})
+## @deftypefnx {} {@var{A} =} accumdim (@var{subs}, @var{vals}, @var{dim}, @var{n}, @var{fcn}, @var{fillval})
 ## Create an array by accumulating the slices of an array into the
 ## positions defined by their subscripts along a specified dimension.
 ##
@@ -39,7 +43,7 @@
 ##
 ## The default action of @code{accumdim} is to sum the subarrays with the
 ## same subscripts.  This behavior can be modified by defining the
-## @var{func} function.  This should be a function or function handle
+## @var{fcn} function.  This should be a function or function handle
 ## that accepts an array and a dimension, and reduces the array along
 ## this dimension.  As a special exception, the built-in @code{min} and
 ## @code{max} functions can be used directly, and @code{accumdim}
@@ -65,7 +69,7 @@
 ## @seealso{accumarray}
 ## @end deftypefn
 
-function A = accumdim (subs, vals, dim, n = 0, func = [], fillval = 0)
+function A = accumdim (subs, vals, dim, n = 0, fcn = [], fillval = 0)
 
   if (nargin < 2)
     print_usage ();
@@ -104,7 +108,7 @@
     error ("accumdim: dimension mismatch");
   endif
 
-  if (isempty (func) || func == @sum)
+  if (isempty (fcn) || fcn == @sum)
     ## Fast summation case.
     A = __accumdim_sum__ (subs, vals, dim, n);
 
@@ -133,10 +137,10 @@
   subsc{dim} = idx;
   vals = mat2cell (vals(subsc{:}), szc{:});
   ## Apply reductions.  Special case min, max.
-  if (func == @min || func == @max)
-    vals = cellfun (func, vals, {[]}, {dim}, "uniformoutput", false);
+  if (fcn == @min || fcn == @max)
+    vals = cellfun (fcn, vals, {[]}, {dim}, "uniformoutput", false);
   else
-    vals = cellfun (func, vals, {dim}, "uniformoutput", false);
+    vals = cellfun (fcn, vals, {dim}, "uniformoutput", false);
   endif
   subs = subs(jdx);
 
--- a/scripts/general/bincoeff.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/bincoeff.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} bincoeff (@var{n}, @var{k})
+## @deftypefn {} {@var{b} =} bincoeff (@var{n}, @var{k})
 ## Return the binomial coefficient of @var{n} and @var{k}.
 ##
 ## The binomial coefficient is defined as
--- a/scripts/general/bitcmp.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/bitcmp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} bitcmp (@var{A}, @var{k})
+## @deftypefn {} {@var{C} =} bitcmp (@var{A}, @var{k})
 ## Return the @var{k}-bit complement of integers in @var{A}.
 ##
 ## If @var{k} is omitted @code{k = log2 (flintmax) + 1} is assumed.
--- a/scripts/general/bitget.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/bitget.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{c} =} bitget (@var{A}, @var{n})
-## Return the status of bit(s) @var{n} of the unsigned integers in @var{A}.
+## @deftypefn {} {@var{b} =} bitget (@var{A}, @var{n})
+## Return the bit value at position(s) @var{n} of the unsigned integers in
+## @var{A}.
 ##
 ## The least significant bit is @var{n} = 1.
 ##
@@ -40,7 +41,7 @@
 
 ## Liberally based of the version by Kai Habel from Octave Forge
 
-function C = bitget (A, n)
+function b = bitget (A, n)
 
   if (nargin != 2)
     print_usage ();
@@ -87,7 +88,7 @@
     error ("bitget: N must be in the range [1,%d]", Amax);
   endif
 
-  C = bitand (A, bitshift (_conv (1), uint8 (n) - uint8 (1))) != _conv (0);
+  b = bitand (A, bitshift (_conv (1), uint8 (n) - uint8 (1))) != _conv (0);
 
 endfunction
 
--- a/scripts/general/bitset.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/bitset.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{C} =} bitset (@var{A}, @var{n})
-## @deftypefnx {} {@var{C} =} bitset (@var{A}, @var{n}, @var{val})
-## Set or reset bit(s) @var{n} of the unsigned integers in @var{A}.
+## @deftypefn  {} {@var{B} =} bitset (@var{A}, @var{n})
+## @deftypefnx {} {@var{B} =} bitset (@var{A}, @var{n}, @var{val})
+## Set or reset bit(s) at position @var{n} of the unsigned integers in @var{A}.
 ##
 ## The least significant bit is @var{n} = 1.  @w{@var{val} = 0} resets bits and
 ## @w{@var{val} = 1} sets bits.  If no @var{val} is specified it defaults to
@@ -62,7 +62,7 @@
 ## @seealso{bitand, bitor, bitxor, bitget, bitcmp, bitshift, intmax, flintmax}
 ## @end deftypefn
 
-function C = bitset (A, n, val = true)
+function B = bitset (A, n, val = true)
 
   if (nargin < 2)
     print_usage ();
@@ -79,28 +79,28 @@
 
   ## Special case of empty input
   if (isempty (A))
-    C = [];
+    B = [];
     return;
   endif
 
   sz = size (A);
-  cl = class (A);
+  cls = class (A);
 
   if (isfloat (A) && isreal (A))
-    Bmax = flintmax (cl);
+    Bmax = flintmax (cls);
     Amax = ceil (log2 (Bmax));
   elseif (isinteger (A))
-    Bmax = intmax (cl);
+    Bmax = intmax (cls);
     Amax = ceil (log2 (Bmax));
   else
-    error ("bitset: invalid class %s", cl);
+    error ("bitset: invalid class %s", cls);
   endif
 
-  if (any ((n < 1)(:)) || any ((n > Amax)(:)))
+  if (any (n(:) < 1) || any (n(:) > Amax))
     error ("bitset: N must be in the range [1,%d]", Amax);
   endif
 
-  mask = bitshift (cast (1, cl), uint8 (n) - uint8 (1));
+  mask = bitshift (cast (1, cls), uint8 (n) - uint8 (1));
 
   on = logical (val);
   off = ! on;
@@ -113,9 +113,9 @@
     offmask = mask(off);
   endif
 
-  C = zeros (sz, cl);
-  C(on) = bitor (A(on), onmask);
-  C(off) = bitand (A(off), bitcmp (offmask));
+  B = zeros (sz, cls);
+  B(on) = bitor (A(on), onmask);
+  B(off) = bitand (A(off), bitcmp (offmask));
 
 endfunction
 
@@ -131,6 +131,7 @@
 %!   endfor
 %! endfor
 
+## Special case of empty input
 %!assert (bitset ([], 1), [])
 
 %!assert <*36458> (bitset (uint8 ([1, 2;3 4]), 1, [0 1; 0 1]),
@@ -145,16 +146,16 @@
 %!error <Invalid call> bitset ()
 %!error <Invalid call> bitset (1)
 %!error <A must be .= 0> bitset (-1, 2)
+%!error <must be the same size or scalar> bitset ([1 2], [1 2 3])
 %!error <must be the same size or scalar> bitset (1, [1 2], [1 2 3])
-%!error <must be the same size or scalar> bitset ([1 2], [1 2 3])
 %!error <invalid class char> bitset ("1", 2)
 %!error <N must be in the range \[1,53\]> bitset (0, 0)
 %!error <N must be in the range \[1,53\]> bitset (0, 55)
 %!error <N must be in the range \[1,24\]> bitset (single (0), 0)
 %!error <N must be in the range \[1,24\]> bitset (single (0), 26)
-%!error <N must be in the range \[1,8\]> bitset (uint8 (0), 0)
+%!error <N must be in the range \[1,7\]> bitset (int8 (0), 0)
+%!error <N must be in the range \[1,7\]> bitset (int8 (0), 9)
 %!error <N must be in the range \[1,8\]> bitset (uint8 (0), 9)
-%!error <N must be in the range \[1,7\]> bitset (int8 (0), 9)
 %!error <N must be in the range \[1,15\]> bitset (int16 (0), 17)
 %!error <N must be in the range \[1,16\]> bitset (uint16 (0), 17)
 %!error <N must be in the range \[1,31\]> bitset (int32 (0), 33)
--- a/scripts/general/blkdiag.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/blkdiag.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} blkdiag (@var{A}, @var{B}, @var{C}, @dots{})
+## @deftypefn {} {@var{M} =} blkdiag (@var{A}, @var{B}, @var{C}, @dots{})
 ## Build a block diagonal matrix from @var{A}, @var{B}, @var{C}, @dots{}
 ##
 ## All arguments must be numeric and either two-dimensional matrices or
@@ -32,7 +32,7 @@
 ## @seealso{diag, horzcat, vertcat, sparse}
 ## @end deftypefn
 
-function retval = blkdiag (varargin)
+function M = blkdiag (varargin)
 
   if (nargin < 1)
     print_usage ();
@@ -53,15 +53,15 @@
   csz = cumsum ([0 0; tmp], 1);
 
   if (any (cellfun ("issparse", varargin)))
-    retval = sparse (csz(end,1), csz(end,2));
+    M = sparse (csz(end,1), csz(end,2));
   else
-    retval = zeros (csz(end,:));
+    M = zeros (csz(end,:));
   endif
 
   for p = 1:nargin
     vp = varargin{p};
     if (! isempty (vp))
-      retval((csz(p,1)+1):csz(p+1,1),(csz(p,2)+1):csz(p+1,2)) = vp;
+      M((csz(p,1)+1):csz(p+1,1),(csz(p,2)+1):csz(p+1,2)) = vp;
     endif
   endfor
 
--- a/scripts/general/celldisp.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/celldisp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -51,7 +51,7 @@
 ## @seealso{disp}
 ## @end deftypefn
 
-## This is ugly, but seems to be what matlab does..
+## This is ugly, but seems to be what Matlab does..
 
 function celldisp (c, name)
 
--- a/scripts/general/cplxpair.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/cplxpair.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} cplxpair (@var{z})
-## @deftypefnx {} {} cplxpair (@var{z}, @var{tol})
-## @deftypefnx {} {} cplxpair (@var{z}, @var{tol}, @var{dim})
+## @deftypefn  {} {@var{zsort} =} cplxpair (@var{z})
+## @deftypefnx {} {@var{zsort} =} cplxpair (@var{z}, @var{tol})
+## @deftypefnx {} {@var{zsort} =} cplxpair (@var{z}, @var{tol}, @var{dim})
 ## Sort the numbers @var{z} into complex conjugate pairs ordered by increasing
 ## real part.
 ##
@@ -57,14 +57,14 @@
 
 ## 2006-05-12 David Bateman - Modified for NDArrays
 
-function y = cplxpair (z, tol, dim)
+function zsort = cplxpair (z, tol, dim)
 
   if (nargin < 1)
     print_usage ();
   endif
 
   if (isempty (z))
-    y = zeros (size (z));
+    zsort = zeros (size (z));
     return;
   endif
 
@@ -108,7 +108,7 @@
   [~, idx] = sort (q, 1);
   midx = idx + rows (idx) * ones (rows (idx), 1) * [0:columns(idx)-1];
   z = z(midx);
-  y = z;
+  zsort = z;
 
   ## For each remaining z, place the value and its conjugate at the start of
   ## the returned list, and remove them from further consideration.
@@ -125,16 +125,16 @@
       ## For pairs, select the one with positive imaginary part and use it and
       ## it's conjugate, but list the negative imaginary pair first.
       if (imag (z(i,j)) > 0)
-        y([i, i+1],j) = [conj(z(i,j)), z(i,j)];
+        zsort([i, i+1],j) = [conj(z(i,j)), z(i,j)];
       else
-        y([i, i+1],j) = [conj(z(idx+i,j)), z(idx+i,j)];
+        zsort([i, i+1],j) = [conj(z(idx+i,j)), z(idx+i,j)];
       endif
       z(idx+i,j) = z(i+1,j);
     endfor
   endfor
 
   ## Reshape the output matrix.
-  y = ipermute (reshape (y, sz), perm);
+  zsort = ipermute (reshape (zsort, sz), perm);
 
 endfunction
 
--- a/scripts/general/dblquad.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/dblquad.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb})
-## @deftypefnx {} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol})
-## @deftypefnx {} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf})
-## @deftypefnx {} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}, @dots{})
+## @deftypefn  {} {@var{q} =} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb})
+## @deftypefnx {} {@var{q} =} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol})
+## @deftypefnx {} {@var{q} =} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf})
+## @deftypefnx {} {@var{q} =} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}, @dots{})
 ## Numerically evaluate the double integral of @var{f}.
 ##
 ## @var{f} is a function handle, inline function, or string containing the name
--- a/scripts/general/del2.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/del2.m	Tue Nov 15 13:15:28 2022 -0800
@@ -311,7 +311,7 @@
 %! assert (b(:,6), b(:,4));
 %! assert (b(:,7:9), zeros (9,3));
 
-## 3D test
+## 3-D test
 %!test
 %! a = zeros (9,9,9);
 %! a(5,5,5) = 1.0;
--- a/scripts/general/flip.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/flip.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} flip (@var{x})
-## @deftypefnx {} {} flip (@var{x}, @var{dim})
-## Return a copy of array @var{x} flipped across dimension @var{dim}.
+## @deftypefn  {} {@var{B} =} flip (@var{A})
+## @deftypefnx {} {@var{B} =} flip (@var{A}, @var{dim})
+## Return a copy of array @var{A} flipped across dimension @var{dim}.
 ##
 ## If @var{dim} is unspecified it defaults to the first non-singleton
 ## dimension.
@@ -59,14 +59,14 @@
 ## @seealso{fliplr, flipud, rot90, rotdim, permute, transpose}
 ## @end deftypefn
 
-function y = flip (x, dim)
+function B = flip (A, dim)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  nd = ndims (x);
-  sz = size (x);
+  nd = ndims (A);
+  sz = size (A);
   if (nargin == 1)
     ## Find the first non-singleton dimension.
     (dim = find (sz > 1, 1)) || (dim = 1);
@@ -75,8 +75,8 @@
   endif
 
   idx(1:max(nd, dim)) = {':'};
-  idx{dim} = size (x, dim):-1:1;
-  y = x(idx{:});
+  idx{dim} = size (A, dim):-1:1;
+  B = A(idx{:});
 
 endfunction
 
--- a/scripts/general/fliplr.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/fliplr.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,11 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} fliplr (@var{x})
+## @deftypefn {} {@var{B} =} fliplr (@var{A})
 ## Flip array left to right.
 ##
-## Return a copy of @var{x} with the order of the columns reversed.  In other
-## words, @var{x} is flipped left-to-right about a vertical axis.  For example:
+## Return a copy of @var{A} with the order of the columns reversed.  In other
+## words, @var{A} is flipped left-to-right about a vertical axis.  For example:
 ##
 ## @example
 ## @group
@@ -41,13 +41,13 @@
 ## @seealso{flipud, flip, rot90, rotdim}
 ## @end deftypefn
 
-function y = fliplr (x)
+function B = fliplr (A)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  y = flip (x, 2);
+  B = flip (A, 2);
 
 endfunction
 
--- a/scripts/general/flipud.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/flipud.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,11 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} flipud (@var{x})
+## @deftypefn {} {@var{B} =} flipud (@var{A})
 ## Flip array upside down.
 ##
-## Return a copy of @var{x} with the order of the rows reversed.  In other
-## words, @var{x} is flipped upside-down about a horizontal axis.  For example:
+## Return a copy of @var{A} with the order of the rows reversed.  In other
+## words, @var{A} is flipped upside-down about a horizontal axis.  For example:
 ##
 ## @example
 ## @group
@@ -41,12 +41,12 @@
 ## @seealso{fliplr, flip, rot90, rotdim}
 ## @end deftypefn
 
-function y = flipud (x)
+function B = flipud (A)
 
   if (nargin < 1)
     print_usage ();
   endif
-  y = flip (x, 1);
+  B = flip (A, 1);
 
 endfunction
 
--- a/scripts/general/idivide.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/idivide.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} idivide (@var{x}, @var{y}, @var{op})
+## @deftypefn {} {@var{C} =} idivide (@var{A}, @var{B}, @var{op})
 ## Integer division with different rounding rules.
 ##
-## The standard behavior of integer division such as @code{@var{a} ./ @var{b}}
+## The standard behavior of integer division such as @code{@var{A} ./ @var{B}}
 ## is to round the result to the nearest integer.  This is not always the
 ## desired behavior and @code{idivide} permits integer element-by-element
 ## division to be performed with different treatment for the fractional
@@ -36,19 +36,19 @@
 ##
 ## @table @asis
 ## @item @qcode{"fix"}
-## Calculate @code{@var{a} ./ @var{b}} with the fractional part rounded
+## Calculate @code{@var{A} ./ @var{B}} with the fractional part rounded
 ## towards zero.
 ##
 ## @item @qcode{"round"}
-## Calculate @code{@var{a} ./ @var{b}} with the fractional part rounded
+## Calculate @code{@var{A} ./ @var{B}} with the fractional part rounded
 ## towards the nearest integer.
 ##
 ## @item @qcode{"floor"}
-## Calculate @code{@var{a} ./ @var{b}} with the fractional part rounded
+## Calculate @code{@var{A} ./ @var{B}} with the fractional part rounded
 ## towards negative infinity.
 ##
 ## @item @qcode{"ceil"}
-## Calculate @code{@var{a} ./ @var{b}} with the fractional part rounded
+## Calculate @code{@var{A} ./ @var{B}} with the fractional part rounded
 ## towards positive infinity.
 ## @end table
 ##
@@ -69,10 +69,10 @@
 ## @end group
 ## @end example
 ##
-## @seealso{ldivide, rdivide}
+## @seealso{ceil, floor, fix, round, ldivide, rdivide}
 ## @end deftypefn
 
-function z = idivide (x, y, op)
+function C = idivide (A, B, op)
 
   if (nargin < 2)
     print_usage ();
@@ -84,74 +84,74 @@
     op = tolower (op);
   endif
 
-  if (! isinteger (x) && ! isinteger (y))
-    error ("idivide: at least one input (X or Y) must be an integer type");
-  elseif (isinteger (x) && isinteger (y) && ! strcmp (class (x), class (y)))
-    error ("idivide: integer type of X (%s) must match integer type of Y (%s)",
-           class (x), class (y));
+  if (! isinteger (A) && ! isinteger (B))
+    error ("idivide: at least one input (A or B) must be an integer type");
+  elseif (isinteger (A) && isinteger (B) && ! strcmp (class (A), class (B)))
+    error ("idivide: integer type of A (%s) must match integer type of B (%s)",
+           class (A), class (B));
   endif
 
-  z = x ./ y;
+  C = A ./ B;
   if (strcmp (op, "fix"))
-    ## The following is an optimized version of `z -= (z .* y > x) .* sign (y)`.
-    if (isscalar (y))
-      if (y > 0)
-        z -= (z * y > x);
+    ## The following is an optimized version of `C -= (C .* B > A) .* sign (B)`.
+    if (isscalar (B))
+      if (B > 0)
+        C -= (C * B > A);
       else
-        z += (z * y > x);
+        C += (C * B > A);
       endif
     else
-      y_sel = (y > 0);
-      if (isscalar (x))
-        z(y_sel) -= (z(y_sel) .* y(y_sel) > x);
+      y_sel = (B > 0);
+      if (isscalar (A))
+        C(y_sel) -= (C(y_sel) .* B(y_sel) > A);
         y_sel = ! y_sel;
-        z(y_sel) += (z(y_sel) .* y(y_sel) > x);
+        C(y_sel) += (C(y_sel) .* B(y_sel) > A);
       else
-        z(y_sel) -= (z(y_sel) .* y(y_sel) > x(y_sel));
+        C(y_sel) -= (C(y_sel) .* B(y_sel) > A(y_sel));
         y_sel = ! y_sel;
-        z(y_sel) += (z(y_sel) .* y(y_sel) > x(y_sel));
+        C(y_sel) += (C(y_sel) .* B(y_sel) > A(y_sel));
       endif
     endif
   elseif (strcmp (op, "round"))
     return;
   elseif (strcmp (op, "floor"))
-    ## The following is an optimized version of `z -= (z .* abs (y) > sign (y) .* x)`.
-    if (isscalar (y))
-      if (y > 0)
-        z -= (z * y > x);
+    ## The following is an optimized version of `C -= (C .* abs (B) > sign (B) .* A)`.
+    if (isscalar (B))
+      if (B > 0)
+        C -= (C * B > A);
       else
-        z -= (z * y < x);
+        C -= (C * B < A);
       endif
     else
-      y_sel = (y > 0);
-      if (isscalar (x))
-        z(y_sel) -= (z(y_sel) .* y(y_sel) > x);
+      y_sel = (B > 0);
+      if (isscalar (A))
+        C(y_sel) -= (C(y_sel) .* B(y_sel) > A);
         y_sel = ! y_sel;
-        z(y_sel) -= (z(y_sel) .* y(y_sel) < x);
+        C(y_sel) -= (C(y_sel) .* B(y_sel) < A);
       else
-        z(y_sel) -= (z(y_sel) .* y(y_sel) > x(y_sel));
+        C(y_sel) -= (C(y_sel) .* B(y_sel) > A(y_sel));
         y_sel = ! y_sel;
-        z(y_sel) -= (z(y_sel) .* y(y_sel) < x(y_sel));
+        C(y_sel) -= (C(y_sel) .* B(y_sel) < A(y_sel));
       endif
     endif
   elseif (strcmp (op, "ceil"))
-    ## The following is an optimized version of `z += (z .* abs (y) < sign (y) .* x)`.
-    if (isscalar (y))
-      if (y > 0)
-        z += (z * y < x);
+    ## The following is an optimized version of `C += (C .* abs (B) < sign (B) .* A)`.
+    if (isscalar (B))
+      if (B > 0)
+        C += (C * B < A);
       else
-        z += (z * y > x);
+        C += (C * B > A);
       endif
     else
-      y_sel = (y > 0);
-      if (isscalar (x))
-        z(y_sel) += (z(y_sel) .* y(y_sel) < x);
+      y_sel = (B > 0);
+      if (isscalar (A))
+        C(y_sel) += (C(y_sel) .* B(y_sel) < A);
         y_sel = ! y_sel;
-        z(y_sel) += (z(y_sel) .* y(y_sel) > x);
+        C(y_sel) += (C(y_sel) .* B(y_sel) > A);
       else
-        z(y_sel) += (z(y_sel) .* y(y_sel) < x(y_sel));
+        C(y_sel) += (C(y_sel) .* B(y_sel) < A(y_sel));
         y_sel = ! y_sel;
-        z(y_sel) += (z(y_sel) .* y(y_sel) > x(y_sel));
+        C(y_sel) += (C(y_sel) .* B(y_sel) > A(y_sel));
       endif
     endif
   else
@@ -201,5 +201,5 @@
 %!error idivide (uint8 (1), 2, 3)
 %!error <at least one input> idivide (1, 2)
 %!error <at least one input> idivide ({1}, 2)
-%!error <X \(int8\) must match.* Y \(uint8\)> idivide (int8 (1), uint8 (2))
+%!error <A \(int8\) must match.* B \(uint8\)> idivide (int8 (1), uint8 (2))
 %!error <unrecognized rounding type "foo"> idivide (int8 (1), 2, "foo")
--- a/scripts/general/int2str.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/int2str.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} int2str (@var{n})
+## @deftypefn {} {@var{str} =} int2str (@var{n})
 ## Convert an integer (or array of integers) to a string (or a character
 ## array).
 ##
@@ -58,7 +58,7 @@
 ## @seealso{sprintf, num2str, mat2str}
 ## @end deftypefn
 
-function retval = int2str (n)
+function str = int2str (n)
 
   if (nargin < 1)
     print_usage ();
@@ -67,10 +67,10 @@
   endif
 
   if (ischar (n))
-    retval = n;
+    str = n;
     return;
   elseif (isempty (n))
-    retval = "";
+    str = "";
     return;
   endif
 
@@ -96,7 +96,7 @@
   n  = permute (n, [2, 3:nd, 1]);
   fmt = [repmat(fmt, 1, nc), "\n"];
   strtmp = sprintf (fmt, n);
-  retval = strtrim (char (ostrsplit (strtmp, "\n", true)));
+  str = strtrim (char (ostrsplit (strtmp, "\n", true)));
 
 endfunction
 
--- a/scripts/general/integral.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/integral.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,16 +26,16 @@
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{q} =} integral (@var{f}, @var{a}, @var{b})
 ## @deftypefnx {} {@var{q} =} integral (@var{f}, @var{a}, @var{b}, @var{prop}, @var{val}, @dots{})
+## @deftypefnx {} {[@var{q}, @var{err}] =} integral (@dots{})
 ##
 ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b} using
 ## adaptive quadrature.
 ##
 ## @code{integral} is a wrapper for @code{quadcc} (general real-valued, scalar
-## integrands and limits), @code{quadgk} (integrals with specified integration
-## paths), and @code{quadv} (array-valued integrands) that is intended to
-## provide @sc{matlab} compatibility.  More control of the numerical
-## integration may be achievable by calling the various quadrature functions
-## directly.
+## integrands and limits), and @code{quadgk} (integrals with specified
+## integration paths and array-valued integrands) that is intended to provide
+## @sc{matlab} compatibility.  More control of the numerical integration may be
+## achievable by calling the various quadrature functions directly.
 ##
 ## @var{f} is a function handle, inline function, or string containing the name
 ## of the function to evaluate.  The function @var{f} must be vectorized and
@@ -62,7 +62,7 @@
 ## @var{arrayvalued} is specified as true.  This option will cause
 ## @code{integral} to perform the integration over the entire array and return
 ## @var{q} with the same dimensions as returned by @var{f}.  For more detail
-## @pxref{XREFquadv,,@code{quadv}}.
+## @pxref{XREFquadgk,,@code{quadgk}}.
 ##
 ## @item AbsTol
 ## Define the absolute error tolerance for the quadrature.  The default
@@ -73,6 +73,9 @@
 ## relative tolerance is 1e-6 (1e-4 for single).
 ## @end table
 ##
+## The optional output @var{err} contains the absolute error estimate used by
+## the called integrator.
+##
 ## Adaptive quadrature is used to minimize the estimate of error until the
 ## following is satisfied:
 ## @tex
@@ -98,25 +101,21 @@
 ## above.  If tighter tolerances are desired they must be specified.
 ## @sc{matlab} leaves the tighter tolerances appropriate for @code{double}
 ## inputs in place regardless of the class of the integration limits.
-##
-## @item
-## As a consequence of using @code{quadcc}, @code{quadgk}, and @code{quadv},
-## certain option combinations are not supported.  Currently,
-## @qcode{"ArrayValued"} cannot be combined with @qcode{"RelTol"} or
-## @qcode{"Waypoints"}.
 ## @end enumerate
 ##
 ## @seealso{integral2, integral3, quad, quadgk, quadv, quadl, quadcc, trapz,
 ##          dblquad, triplequad}
 ## @end deftypefn
 
-function q = integral (f, a, b, varargin)
+function [q, err] = integral (f, a, b, varargin)
 
   if (nargin < 3 || (mod (nargin, 2) == 0))
     print_usage ();
   endif
 
-  ## quadcc can't handle complex limits or integrands, but quadgk & quadv can.
+  error_flag = (nargout == 2);
+
+  ## quadcc can't handle complex limits or integrands, but quadgk can.
   ## Check for simple cases of complex limits and integrand.
   f_is_complex = false;
   if (iscomplex (a) || iscomplex (b))
@@ -130,11 +129,19 @@
     ## Let quadcc function handle input checks on function and limits.
     if (! f_is_complex)
       try
-        q = quadcc (f, a, b);
+        if (error_flag)
+          [q, err] = quadcc (f, a, b);
+        else
+          q = quadcc (f, a, b);
+        endif
       catch quaderror
         if (strcmp (quaderror.message,
-                    "quadcc: integrand F must return a single, real-valued vector"))
-          q = quadgk (f, a, b);
+                "quadcc: integrand F must return a single, real-valued vector"))
+          if (error_flag)
+            [q, err] = quadgk (f, a, b);
+          else
+            q = quadgk (f, a, b);
+          endif
         else
           error (quaderror.message);
         endif
@@ -142,7 +149,11 @@
 
     else
       ## Complex-valued integral
-      q = quadgk (f, a, b);
+      if (error_flag)
+        [q, err] = quadgk (f, a, b);
+      else
+        q = quadgk (f, a, b);
+      endif
     endif
 
   else
@@ -151,6 +162,7 @@
     reltol = [];
     waypoints = [];
     arrayvalued = false;
+    use_quadgk = false;
 
     idx = 1;
     while (idx < nargin - 3)
@@ -166,8 +178,10 @@
           abstol = varargin{idx++};
         case "waypoints"
           waypoints = varargin{idx++}(:);
+          use_quadgk = true;
         case "arrayvalued"
           arrayvalued = varargin{idx++};
+          use_quadgk = true;
         otherwise
           error ("integral: unknown property '%s'", prop);
       endswitch
@@ -176,51 +190,50 @@
     issingle = (isa (a, "single") || isa (b, "single")
                 || isa (waypoints, "single"));
 
-    if (arrayvalued)
-      ## Pass vector-valued function to quadv, checking for conflicting params
-
-      ## FIXME: Replace warning when have array compatible call with waypoints
-      if (! isempty (waypoints))
-        warning (["integral: array-valued quadrature routine currently ", ...
-                 "unable to handle WayPoints.  WayPoints are ignored."]);
-      endif
+    if (isempty (abstol))
+      abstol = ifelse (issingle, 1e-5, 1e-10);
+    endif
+    if (isempty (reltol))
+      reltol = ifelse (issingle, 1e-4, 1e-6);
+    endif
 
-      ## FIXME: Remove warning once we have reltol compatible arrayval'd quadfn
-      if (! isempty (reltol))
-        warning (["integral: array-valued quadrature only accepts AbsTol.", ...
-                 "  RelTol ignored."]);
+    if (use_quadgk)
+      ## Array valued functions or waypoint definitions require quadgk
+      ## no need to test for complex components
+      if (error_flag)
+        [q, err] = quadgk (f, a, b, "AbsTol", abstol, "RelTol", reltol,
+                            "WayPoints", waypoints, "ArrayValued", arrayvalued);
+      else
+        q = quadgk (f, a, b, "AbsTol", abstol, "RelTol", reltol,
+                            "WayPoints", waypoints, "ArrayValued", arrayvalued);
       endif
-      if (isempty (abstol))
-        abstol = ifelse (issingle, 1e-5, 1e-10);
-      endif
-
-      q = quadv (f, a, b, abstol);
 
     else
-      if (isempty (abstol))
-        abstol = ifelse (issingle, 1e-5, 1e-10);
-      endif
-      if (isempty (reltol))
-        reltol = ifelse (issingle, 1e-4, 1e-6);
-      endif
-
-      if (! isempty (waypoints))
-        q = quadgk (f, a, b, "AbsTol", abstol, "RelTol", reltol,
-                             "WayPoints", waypoints);
+      ## otherwise try quadcc first, switch to quadgk if complex test fails
+      if (! f_is_complex)
+        try
+          if (error_flag)
+            [q, err] = quadcc (f, a, b, [abstol, reltol]);
+          else
+            q = quadcc (f, a, b, [abstol, reltol]);
+          endif
+        catch quaderror
+          if (strcmp (quaderror.message,
+                "quadcc: integrand F must return a single, real-valued vector"))
+            if (error_flag)
+              [q, err] = quadgk (f, a, b, "AbsTol", abstol, "RelTol", reltol);
+            else
+              q = quadgk (f, a, b, "AbsTol", abstol, "RelTol", reltol);
+            endif
+          else
+            error (quaderror.message);
+          endif
+        end_try_catch
       else
-        if (! f_is_complex)
-          try
-            q = quadcc (f, a, b, [abstol, reltol]);
-          catch quaderror
-            if (strcmp (quaderror.message,
-                        "quadcc: integrand F must return a single, real-valued vector"))
-              q = quadgk (f, a, b, "AbsTol", abstol, "RelTol", reltol);
-            else
-              error (quaderror.message);
-            endif
-          end_try_catch
+        ## Complex-valued integral
+        if (error_flag)
+          [q, err] = quadgk (f, a, b, "AbsTol", abstol, "RelTol", reltol);
         else
-          ## Complex-valued integral
           q = quadgk (f, a, b, "AbsTol", abstol, "RelTol", reltol);
         endif
       endif
@@ -296,15 +309,26 @@
 %!assert (integral (@(z) log (z),1+1i,1+1i, "WayPoints", [1-1i, -1,-1i, -1+1i]),
 %!        complex (0, pi), 1e-10)
 
-## tests from quadv
 ## Test vector-valued functions
 %!assert (integral (@(x) [(sin (x)), (sin (2*x))], 0, pi, "ArrayValued", 1),
 %!        [2, 0], 1e-10)
 
 ## Test matrix-valued functions
-%!test
-%! assert (integral (@(x) [x,x,x; x,exp(x),x; x,x,x], 0, 1, "ArrayValued", 1),
-%!         [0.5,0.5,0.5; 0.5,(exp (1) - 1),0.5; 0.5,0.5,0.5], 1e-10);
+%!assert (integral (@(x) [x,x,x; x,exp(x),x; x,x,x], 0, 1, "ArrayValued", 1),
+%!                    [0.5,0.5,0.5; 0.5,(exp (1) - 1),0.5; 0.5,0.5,0.5], 1e-10);
+
+## Test combined parameters
+%!assert (integral (@(x) [sin(x), cos(x)], 0, pi, "ArrayValued", 1,
+%!                   "Waypoints", [0.5]), [2, 0], 2*eps);
+
+## Test 2nd output
+%!test <*62412>
+%! [~, err] = integral (@(x) ones (size (x)), 0, 1);  # quadcc
+%! assert (err, 0, 5*eps);  # err ~3e-16
+%! [~, err] = integral (@(x) ones (size (x)), 0, 1, "waypoints", 1);  # quadgk
+%! assert (err, 0, 1000*eps);  # err ~7e-14
+%! [~, err] = integral (@(x) ones (size (x)), 0, 1, "arrayvalued", true);  # quadgk
+%! assert (err, 0, 1000*eps);  # err ~7e-14
 
 ## Test input validation
 %!error integral (@sin)
--- a/scripts/general/interp1.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/interp1.m	Tue Nov 15 13:15:28 2022 -0800
@@ -479,7 +479,7 @@
 %! %--------------------------------------------------------
 %! % red curve is left-continuous and blue is right-continuous at x = 2
 
-##FIXME: add test for N-d arguments here
+## FIXME: add test for N-d arguments here
 
 ## For each type of interpolated test, confirm that the interpolated
 ## value at the knots match the values at the knots.  Points away
@@ -559,8 +559,8 @@
 %!   interp1 (xp,yp,xi,style) + 1i * interp1 (xp,yp.^2,xi,style))
 ## This test is expected to fail, so commented out.
 ## "previous" and "next" options are not symmetric w.r.t to flipping xp,yp
-#%!assert (interp1 (xp,yp,xi,style),...
-#%!        interp1 (fliplr (xp),fliplr (yp),xi,style),100*eps)
+%!#assert (interp1 (xp,yp,xi,style),...
+%!#        interp1 (fliplr (xp),fliplr (yp),xi,style),100*eps)
 %!assert (ppval (interp1 (xp,yp,style,"pp"),xi),
 %!        interp1 (xp,yp,xi,style,"extrap"),10*eps)
 %!error interp1 (1,1,1, style)
@@ -579,8 +579,8 @@
 %!assert <*61903> ...
 %!  (interp1 (xp, yp + 1i * yp.^2, xi, style),...
 %!   interp1 (xp,yp,xi,style) + 1i * interp1 (xp,yp.^2,xi,style))
-#%!assert (interp1 (xp,yp,xi,style),...
-#%!        interp1 (fliplr (xp),fliplr (yp),xi,style),100*eps)
+%!#assert (interp1 (xp,yp,xi,style),...
+%!#        interp1 (fliplr (xp),fliplr (yp),xi,style),100*eps)
 %!assert (ppval (interp1 (xp,yp,style,"pp"),xi),
 %!        interp1 (xp,yp,xi,style,"extrap"),10*eps)
 %!assert (interp1 (yp, xi, style, 0), ...
@@ -602,8 +602,8 @@
 %!assert <*61903> ...
 %!  (interp1 (xp, yp + 1i * yp.^2, xi, style),...
 %!   interp1 (xp,yp,xi,style) + 1i * interp1 (xp,yp.^2,xi,style))
-#%!assert (interp1 (xp,yp,xi,style),...
-#%!        interp1 (fliplr (xp),fliplr (yp),xi,style),100*eps)
+%!#assert (interp1 (xp,yp,xi,style),...
+%!#        interp1 (fliplr (xp),fliplr (yp),xi,style),100*eps)
 %!assert (ppval (interp1 (xp,yp,style,"pp"),xi),
 %!        interp1 (xp,yp,xi,style,"extrap"),10*eps)
 %!error interp1 (1,1,1, style)
@@ -622,8 +622,8 @@
 %!assert <*61903> ...
 %!  (interp1 (xp, yp + 1i * yp.^2, xi, style),...
 %!   interp1 (xp,yp,xi,style) + 1i * interp1 (xp,yp.^2,xi,style))
-#%!assert (interp1 (xp,yp,xi,style),...
-#%!        interp1 (fliplr (xp),fliplr (yp),xi,style),100*eps)
+%!#assert (interp1 (xp,yp,xi,style),...
+%!#        interp1 (fliplr (xp),fliplr (yp),xi,style),100*eps)
 %!assert (ppval (interp1 (xp,yp,style,"pp"),xi),
 %!        interp1 (xp,yp,xi,style,"extrap"),10*eps)
 %!assert (interp1 (yp, xi, style, 0), ...
--- a/scripts/general/interp2.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/interp2.m	Tue Nov 15 13:15:28 2022 -0800
@@ -69,7 +69,8 @@
 ## interpolation with smooth first derivative.
 ##
 ## @item @qcode{"cubic"}
-## Cubic interpolation (same as @qcode{"pchip"}).
+## Cubic interpolation using a convolution kernel function---third order
+## method with smooth first derivative.
 ##
 ## @item @qcode{"spline"}
 ## Cubic spline interpolation---smooth first and second derivatives
@@ -149,7 +150,7 @@
     ## Calculate the interleaved input vectors.
     p = 2^n;
     XI = (p:p*zc)/p;
-    YI = (p:p*zr)'/p;
+    YI = (p:p*zr).'/p;
   endif
   if (! isnumeric (XI) || ! isnumeric (YI))
     error ("interp2: XI, YI must be numeric");
@@ -180,7 +181,13 @@
     error ("interp2: Y must be strictly monotonic");
   endif
 
-  if (any (strcmp (method, {"nearest", "linear", "pchip", "cubic"})))
+  if (strcmp (method, "cubic") && (rows (Z) < 3 || columns (Z) < 3))
+    warning (["interp2: cubic requires at least 3 points in each " ...
+              "dimension.  Falling back to linear interpolation."]);
+    method = "linear";
+  endif
+
+  if (any (strcmp (method, {"nearest", "linear", "pchip"})))
 
     ## If Xi and Yi are vectors of different orientation build a grid
     if ((isrow (XI) && iscolumn (YI)) || (iscolumn (XI) && isrow (YI)))
@@ -224,9 +231,9 @@
       Xsc = (XI - X(xidx)) ./ (diff (X)(xidx));
       Ysc = (YI - Y(yidx)) ./ (diff (Y)(yidx));
 
-      ## Get 2D index.
+      ## Get 2-D index.
       idx = sub2ind (size (a), yidx, xidx);
-      ## Dispose of the 1D indices at this point to save memory.
+      ## Dispose of the 1-D indices at this point to save memory.
       clear xidx yidx;
 
       ## Apply plane equation
@@ -244,30 +251,17 @@
       idx = sub2ind (size (Z), yidx+jj, xidx+ii);
       ZI = Z(idx);
 
-    elseif (strcmp (method, "pchip") || strcmp (method, "cubic"))
+    elseif (strcmp (method, "pchip"))
 
       if (length (X) < 2 || length (Y) < 2)
-        error ("interp2: %s requires at least 2 points in each dimension",
-               method);
+        error ("interp2: pchip requires at least 2 points in each dimension");
       endif
 
       ## first order derivatives
       DX = __pchip_deriv__ (X, Z, 2);
       DY = __pchip_deriv__ (Y, Z, 1);
       ## Compute mixed derivatives row-wise and column-wise.  Use the average.
-      DXY = (__pchip_deriv__ (X, DY, 2) + __pchip_deriv__ (Y, DX, 1))/2;
-
-      if (iscomplex (Z))
-        ## __pchip_deriv__ works only on real part.  Do it again for imag part.
-        ## FIXME: Adapt __pchip_deriv__ to correctly handle complex input.
-
-        ## first order derivatives
-        DX += 1i * __pchip_deriv__ (X, imag (Z), 2);
-        DY += 1i * __pchip_deriv__ (Y, imag (Z), 1);
-        ## Compute mixed derivatives row-wise and column-wise.  Use the average.
-        DXY += 1i * (__pchip_deriv__ (X, imag (DY), 2)
-                     + __pchip_deriv__ (Y, imag (DX), 1))/2;
-      endif
+      DXY = (__pchip_deriv__ (X, DY, 2) + __pchip_deriv__ (Y, DX, 1)) / 2;
 
       ## do the bicubic interpolation
       hx = diff (X); hx = hx(xidx);
@@ -304,19 +298,19 @@
       yb{1,1} = t2 + 1;
 
       ZI = zeros (size (XI));
-      for i = 1:2
-        for j = 1:2
-          zidx = sub2ind (size (Z), yidx+(j-1), xidx+(i-1));
-          ZI += xb{1,i} .* yb{1,j} .*   Z(zidx);
-          ZI += xb{2,i} .* yb{1,j} .*  DX(zidx);
-          ZI += xb{1,i} .* yb{2,j} .*  DY(zidx);
-          ZI += xb{2,i} .* yb{2,j} .* DXY(zidx);
+      for ix = 1:2
+        for iy = 1:2
+          zidx = sub2ind (size (Z), yidx+(iy-1), xidx+(ix-1));
+          ZI += xb{1,ix} .* yb{1,iy} .*   Z(zidx);
+          ZI += xb{2,ix} .* yb{1,iy} .*  DX(zidx);
+          ZI += xb{1,ix} .* yb{2,iy} .*  DY(zidx);
+          ZI += xb{2,ix} .* yb{2,iy} .* DXY(zidx);
         endfor
       endfor
 
     endif
 
-  else
+  else  # cubic or spline methods
 
     ## Check dimensions of XI and YI
     if (isvector (XI) && isvector (YI) && ! size_equal (XI, YI))
@@ -326,15 +320,50 @@
     endif
 
     if (strcmp (method, "spline"))
-      if (isgriddata (XI) && isgriddata (YI'))
+      if (isgriddata (XI) && isgriddata (YI.'))
         ZI = __splinen__ ({Y, X}, Z, {YI(:,1), XI(1,:)}, extrap, "spline");
       else
         error ("interp2: XI, YI must have uniform spacing ('meshgrid' format)");
       endif
-    endif
+      return;  # spline doesn't use extrapolation value (MATLAB compatibility)
+    elseif (strcmp (method, "cubic"))
+      ## reduce to vectors if interpolation points are a meshgrid
+      if (size_equal (XI, YI) && all (all (XI(1, :) == XI & YI(:, 1) == YI)))
+        XI = XI(1, :);
+        YI = YI(:, 1);
+      endif
+
+      ## make X a row vector
+      X = X.';
 
-    return; # spline doesn't need NA extrapolation value (MATLAB compatibility)
+      ## quadratic padding + additional zeros for the special case of copying
+      ## the last line (like x=1:5, xi=5, requires to have indices 6 and 7)
+      row_1 = 3*Z(1, :, :) - 3*Z(2, :, :) + Z(3, :, :);
+      row_end = 3*Z(end, :, :) - 3*Z(end-1, :, :) + Z(end-2, :, :);
+      ZI = [3*row_1(:, 1, :) - 3*row_1(:, 2, :) + row_1(:, 3, :), ...
+            row_1, ...
+            3*row_1(:, end, :) - 3*row_1(:, end-1, :) + row_1(:, end-2, :), ...
+            0;
+            #
+            3*Z(:, 1, :) - 3*Z(:, 2, :) + Z(:, 3, :), ...
+            Z, ...
+            3*Z(:, end, :) - 3*Z(:, end-1, :) + Z(:, end-2, :), ...
+            zeros(rows (Z), 1, size (Z, 3));
+            #
+            3*row_end(:, 1, :) - 3*row_end(:, 2, :) + row_end(:, 3, :), ...
+            row_end, ...
+            3*row_end(:, end, :) - 3*row_end(:, end-1, :) + row_end(:, end-2, :), ...
+            0;
+            zeros(1, columns (Z) + 3, size (Z, 3))];
 
+      ## interpolate
+      if (isrow (XI) && iscolumn (YI))
+        ZI = conv_interp_vec (ZI, Y, YI, @cubic, [-2, 2], 1);
+        ZI = conv_interp_vec (ZI, X, XI, @cubic, [-2, 2], 2);
+      else
+        ZI = conv_interp_pairs (ZI, X, Y, XI, YI, @cubic, [-2, 2]);
+      endif
+    endif
   endif
 
   ## extrapolation 'extrap'
@@ -367,6 +396,70 @@
   b = ! any (d1(:) != 0);
 endfunction
 
+## cubic convolution kernel with a = -0.5 for MATLAB compatibility.
+function w = cubic (h)
+
+  absh = abs (h);
+  absh01 = absh <= 1;
+  absh12 = absh <= 2 & ! absh01;
+  absh_sqr = absh .* absh;
+  absh_cube = absh_sqr .* absh;
+  w = ...  # for |h| <= 1
+      (1.5 * absh_cube - 2.5 * absh_sqr + 1) .* absh01 ...
+      ...  # for 1 < |h| <= 2
+      + (-0.5 * absh_cube + 2.5 * absh_sqr - 4 * absh + 2) .* absh12;
+
+endfunction
+
+## bicubic interpolation of full matrix in one direction with vector
+function out = conv_interp_vec (Z, XY, XIYI, kernel, kernel_bounds, axis)
+
+  ## allocate output
+  out_shape = size (Z);
+  out_shape(axis) = length (XIYI);
+  out = zeros (out_shape);
+
+  ## get indexes and distances h
+  spread = abs (XY(1) - XY(2));
+  idx = lookup (XY, XIYI, "l");
+  h = (XIYI - XY(idx)) / spread;
+  idx += -kernel_bounds(1) - 1;  # apply padding for indexes
+
+  ## interpolate
+  for shift = kernel_bounds(1)+1 : kernel_bounds(2)
+    if (axis == 1)
+      out += Z(idx + shift, :) .* kernel (shift - h);
+    else
+      out += Z(:, idx + shift) .* kernel (shift - h);
+    endif
+  endfor
+
+endfunction
+
+## bicubic interpolation of arbitrary XI-YI-pairs
+function out = conv_interp_pairs (Z, X, Y, XI, YI, kernel, kernel_bounds)
+
+  spread_x = abs (X(1, 1) - X(1, 2));
+  spread_y = abs (Y(1, 1) - Y(2, 1));
+  idx_x = lookup (X, XI, "l");
+  idx_y = lookup (Y, YI, "l");
+  h_x = (XI - reshape (X(idx_x), size (idx_x))) / spread_x;
+  h_y = (YI - reshape (Y(idx_y), size (idx_y))) / spread_y;
+
+  # adjust indexes for padding
+  idx_x += -kernel_bounds(1) - 1;
+  idx_y += -kernel_bounds(1) - 1;
+
+  shifts = kernel_bounds(1)+1 : kernel_bounds(2);
+  [SX(1,1,:,:), SY(1,1,:,:)] = meshgrid (shifts, shifts);
+  pixels = Z(sub2ind (size (Z), idx_y + SY, idx_x + SX));
+  kernel_y = kernel (reshape (shifts, 1, 1, [], 1) - h_y);
+  kernel_x = kernel (reshape (shifts, 1, 1, 1, []) - h_x);
+  out_x = sum (pixels .* kernel_x, 4);
+  out = sum (out_x .* kernel_y, 3);
+
+endfunction
+
 
 %!demo
 %! clf;
@@ -374,7 +467,7 @@
 %! A = [13,-1,12;5,4,3;1,6,2];
 %! x = [0,1,4];  y = [10,11,12];
 %! xi = linspace (min (x), max (x), 17);
-%! yi = linspace (min (y), max (y), 26)';
+%! yi = linspace (min (y), max (y), 26).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "linear"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
@@ -383,9 +476,9 @@
 %! clf;
 %! colormap ("default");
 %! [x,y,A] = peaks (10);
-%! x = x(1,:)';  y = y(:,1);
+%! x = x(1,:).';  y = y(:,1);
 %! xi = linspace (min (x), max (x), 41);
-%! yi = linspace (min (y), max (y), 41)';
+%! yi = linspace (min (y), max (y), 41).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "linear"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
@@ -396,7 +489,7 @@
 %! A = [13,-1,12;5,4,3;1,6,2];
 %! x = [0,1,4];  y = [10,11,12];
 %! xi = linspace (min (x), max (x), 17);
-%! yi = linspace (min (y), max (y), 26)';
+%! yi = linspace (min (y), max (y), 26).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "nearest"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
@@ -405,33 +498,31 @@
 %! clf;
 %! colormap ("default");
 %! [x,y,A] = peaks (10);
-%! x = x(1,:)';  y = y(:,1);
+%! x = x(1,:).';  y = y(:,1);
 %! xi = linspace (min (x), max (x), 41);
-%! yi = linspace (min (y), max (y), 41)';
+%! yi = linspace (min (y), max (y), 41).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "nearest"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
 
-## 'pchip' commented out since it is the same as 'cubic'
-%!#demo
+%!demo
 %! clf;
 %! colormap ("default");
 %! A = [13,-1,12;5,4,3;1,6,2];
 %! x = [0,1,2];  y = [10,11,12];
 %! xi = linspace (min (x), max (x), 17);
-%! yi = linspace (min (y), max (y), 26)';
+%! yi = linspace (min (y), max (y), 26).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "pchip"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
 
-## 'pchip' commented out since it is the same as 'cubic'
-%!#demo
+%!demo
 %! clf;
 %! colormap ("default");
 %! [x,y,A] = peaks (10);
-%! x = x(1,:)';  y = y(:,1);
+%! x = x(1,:).';  y = y(:,1);
 %! xi = linspace (min (x), max (x), 41);
-%! yi = linspace (min (y), max (y), 41)';
+%! yi = linspace (min (y), max (y), 41).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "pchip"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
@@ -442,7 +533,7 @@
 %! A = [13,-1,12;5,4,3;1,6,2];
 %! x = [0,1,2];  y = [10,11,12];
 %! xi = linspace (min (x), max (x), 17);
-%! yi = linspace (min (y), max (y), 26)';
+%! yi = linspace (min (y), max (y), 26).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "cubic"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
@@ -451,9 +542,9 @@
 %! clf;
 %! colormap ("default");
 %! [x,y,A] = peaks (10);
-%! x = x(1,:)';  y = y(:,1);
+%! x = x(1,:).';  y = y(:,1);
 %! xi = linspace (min (x), max (x), 41);
-%! yi = linspace (min (y), max (y), 41)';
+%! yi = linspace (min (y), max (y), 41).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "cubic"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
@@ -464,7 +555,7 @@
 %! A = [13,-1,12;5,4,3;1,6,2];
 %! x = [0,1,2];  y = [10,11,12];
 %! xi = linspace (min (x), max (x), 17);
-%! yi = linspace (min (y), max (y), 26)';
+%! yi = linspace (min (y), max (y), 26).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "spline"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
@@ -473,36 +564,115 @@
 %! clf;
 %! colormap ("default");
 %! [x,y,A] = peaks (10);
-%! x = x(1,:)';  y = y(:,1);
+%! x = x(1,:).';  y = y(:,1);
 %! xi = linspace (min (x), max (x), 41);
-%! yi = linspace (min (y), max (y), 41)';
+%! yi = linspace (min (y), max (y), 41).';
 %! mesh (xi,yi,interp2 (x,y,A,xi,yi, "spline"));
 %! [x,y] = meshgrid (x,y);
 %! hold on; plot3 (x,y,A,"b*"); hold off;
 
+%!shared x, y, orig, xi, yi, expected
 %!test  # simple test
 %! x = [1,2,3];
 %! y = [4,5,6,7];
 %! [X, Y] = meshgrid (x, y);
 %! orig = X.^2 + Y.^3;
-%! xi = [1.2,2, 1.5];
-%! yi = [6.2, 4.0, 5.0]';
+%! xi = [0.8, 1.2, 2.0, 1.5];
+%! yi = [6.2, 4.0, 5.0, 7.1].';
+%!
+%! # check nearest neighbor
+%! expected = ...
+%!   [NA, 217, 220, 220;
+%!    NA,  65,  68,  68;
+%!    NA, 126, 129, 129;
+%!    NA,  NA,  NA,  NA];
+%! result = interp2 (x, y, orig, xi, yi, "nearest");
+%! assert (result, expected);
 %!
+%! # check invariance of translation
+%! result = interp2 (x+3, y-7, orig, xi+3, yi-7, "nearest");
+%! assert (result, expected);
+%!
+%! # check invariance of scaling
+%! result = interp2 (x*3, y*(-7), orig, xi*3, yi*(-7), "nearest");
+%! assert (result, expected);
+%!
+%! # check interpolation with index pairs
+%! result = interp2 (x, y, orig, xi(2:4), yi(1:3).', "nearest");
+%! assert (result, expected(sub2ind(size(expected), 1:3, 2:4)));
+%!
+%! # check bilinear interpolation
 %! expected = ...
-%!   [243,   245.4,  243.9;
-%!     65.6,  68,     66.5;
-%!    126.6, 129,    127.5];
-%! result = interp2 (x,y,orig, xi, yi);
+%!   [NA, 243,     245.4,   243.9;
+%!    NA,  65.6,    68,      66.5;
+%!    NA, 126.6,   129,     127.5;
+%!    NA,  NA,      NA,      NA];
+%! result = interp2 (x, y, orig, xi, yi);
+%! assert (result, expected, 1000*eps);
+%!
+%! # check invariance of translation
+%! result = interp2 (x+3, y-7, orig, xi+3, yi-7);
+%! assert (result, expected, 1000*eps);
+%!
+%! # check invariance of scaling
+%! result = interp2 (x*3, y*(-7), orig, xi*3, yi*(-7));
+%! assert (result, expected, 1000*eps);
+%!
+%! # check interpolation with index pairs
+%! result = interp2 (x, y, orig, xi(2:4), yi(1:3).');
+%! assert (result, expected(sub2ind(size(expected), 1:3, 2:4)), 1000*eps);
+%!
+%! # check spline interpolation
+%! expected = ...
+%!   [238.968,  239.768,  242.328,  240.578;
+%!     64.64,    65.44,    68,       66.25;
+%!    125.64,   126.44,   129,      127.25;
+%!    358.551,  359.351,  361.911,  360.161];
+%! result = interp2 (x, y, orig, xi, yi, "spline");
+%! assert (result, expected, 1000*eps);
 %!
+%! # check invariance of translation
+%! result = interp2 (x+3, y-7, orig, xi+3, yi-7, "spline");
 %! assert (result, expected, 1000*eps);
+%!
+%! # check invariance of scaling
+%! result = interp2 (x*3, y*(-7), orig, xi*3, yi*(-7), "spline");
+%! assert (result, expected, 1000*eps);
+%!
+%!test <62133>
+%! # FIXME: spline interpolation does not support index pairs, Matlab does.
+%! result = interp2 (x, y, orig, xi(2:4), yi(1:3).', "spline");
+%! assert (result, expected(sub2ind(size(expected), 1:3, 2:4)), 1000*eps);
+%!
+%!test <*61754>
+%! # check bicubic interpolation
+%! expected = ...
+%!   [NA, 239.96,  242.52,  240.77;
+%!    NA,  65.44,   68,      66.25;
+%!    NA, 126.44,  129,     127.25;
+%!    NA,  NA,      NA,      NA];
+%! result = interp2 (x, y, orig, xi, yi, "cubic");
+%! assert (result, expected, 10000*eps);
+%!
+%! # check invariance of translation
+%! result = interp2 (x+3, y-7, orig, xi+3, yi-7, "cubic");
+%! assert (result, expected, 10000*eps);
+%!
+%! # check invariance of scaling
+%! result = interp2 (x*3, y*(-7), orig, xi*3, yi*(-7), "cubic");
+%! assert (result, expected, 10000*eps);
+%!
+%! # check interpolation with index pairs
+%! result = interp2 (x, y, orig, xi(2:4), yi(1:3).', "cubic");
+%! assert (result, expected(sub2ind(size(expected), 1:3, 2:4)), 10000*eps);
 
 ## Test that interpolating a complex matrix is equivalent to interpolating its
 ## real and imaginary parts separately.
-%!test <61863>
+%!test <*61863>
 %! xi = [2.5, 3.5];
-%! yi = [0.5, 1.5]';
-%! orig = rand (2, 3) + 1i * rand (2, 3);
-%! for method = {"nearest", "linear", "pchip", "spline"}
+%! yi = [0.5, 1.5].';
+%! orig = rand (4, 3) + 1i * rand (4, 3);
+%! for method = {"nearest", "linear", "pchip", "cubic", "spline"}
 %!   interp_complex = interp2 (orig, xi, yi, method{1});
 %!   interp_real = interp2 (real (orig), xi, yi, method{1});
 %!   interp_imag = interp2 (imag (orig), xi, yi, method{1});
@@ -515,7 +685,7 @@
 %! y = [4,5,6,7];
 %! [X, Y] = meshgrid (x, y);
 %! orig = X.^2 + Y.^3;
-%! xi = [1:0.25:3];  yi = [4:0.25:7]';
+%! xi = [1:0.25:3];  yi = [4:0.25:7].';
 %! expected = interp2 (x,y,orig, xi, yi);
 %! result = interp2 (orig, 2);
 %!
@@ -535,18 +705,20 @@
 %! [X, Y] = meshgrid (x,y);
 %! orig = X.^2 + Y.^3;
 %! xi = [0,4];
-%! yi = [3,8]';
+%! yi = [3,8].';
 %! assert (interp2 (x,y,orig, xi, yi), [NA,NA;NA,NA]);
 %! assert (interp2 (x,y,orig, xi, yi,"linear", 0), [0,0;0,0]);
 %! assert (interp2 (x,y,orig, xi, yi,"linear", 2), [2,2;2,2]);
 %! assert (interp2 (x,y,orig, xi, yi,"spline", 2), [2,2;2,2]);
 %! assert (interp2 (x,y,orig, xi, yi,"linear", 0+1i), [0+1i,0+1i;0+1i,0+1i]);
 %! assert (interp2 (x,y,orig, xi, yi,"spline"), [27,43;512,528]);
+%! assert (interp2 (x,y,orig, xi, yi,"cubic"), [NA,NA;NA,NA]);
+%! assert (interp2 (x,y,orig, xi, yi,"cubic", 2), [2,2;2,2]);
 
 %!test  # for values at boundaries
 %! A = [1,2;3,4];
 %! x = [0,1];
-%! y = [2,3]';
+%! y = [2,3].';
 %! assert (interp2 (x,y,A,x,y,"linear"), A);
 %! assert (interp2 (x,y,A,x,y,"nearest"), A);
 
@@ -569,20 +741,26 @@
 %!assert (interp2 (z), zout, tol)
 %!assert (interp2 (z, "linear"), zout, tol)
 %!assert (interp2 (z, "pchip"), zout, tol)
-%!assert (interp2 (z, "cubic"), zout, 10 * tol)
+%!assert (interp2 (z, "cubic"), zout, tol)
 %!assert (interp2 (z, "spline"), zout, tol)
-%!assert (interp2 (z, [2 3 1], [2 2 2]', "linear"),
+%!assert (interp2 (z, [2 3 1], [2 2 2].', "linear"),
 %!        repmat ([5, 7, 3], [3, 1]), tol)
-%!assert (interp2 (z, [2 3 1], [2 2 2]', "pchip"),
+%!assert (interp2 (z, [2 3 1], [2 2 2].', "pchip"),
 %!        repmat ([5, 7, 3], [3, 1]), tol)
-%!assert (interp2 (z, [2 3 1], [2 2 2]', "cubic"),
-%!        repmat ([5, 7, 3], [3, 1]), 10 * tol)
-%!assert (interp2 (z, [2 3 1], [2 2 2]', "spline"),
+%!assert (interp2 (z, [2 3 1], [2 2 2].', "cubic"),
+%!        repmat ([5, 7, 3], [3, 1]), tol)
+%!assert (interp2 (z, [2 3 1], [2 2 2].', "spline"),
 %!        repmat ([5, 7, 3], [3, 1]), tol)
 %!assert (interp2 (z, [2 3 1], [2 2 2], "linear"), [5 7 3], tol)
 %!assert (interp2 (z, [2 3 1], [2 2 2], "pchip"), [5 7 3], tol)
-%!assert (interp2 (z, [2 3 1], [2 2 2], "cubic"), [5 7 3], 10 * tol)
+%!assert (interp2 (z, [2 3 1], [2 2 2], "cubic"), [5 7 3], tol)
 %!assert (interp2 (z, [2 3 1], [2 2 2], "spline"), [5 7 3], tol)
+%!assert (interp2 (z, [3; 3; 3], [2; 3; 1], "linear"), [7; 9; 5], tol)
+%!assert (interp2 (z, [3; 3; 3], [2; 3; 1], "pchip"), [7; 9; 5], tol)
+%!assert (interp2 (z, [3; 3; 3], [2; 3; 1], "cubic"), [7; 9; 5], tol)
+%!test <62132>
+%! # FIXME: single column yields single row with spline interpolation (numbers are correct)
+%! assert (interp2 (z, [3; 3; 3], [2; 3; 1], "spline"), [7; 9; 5], tol)
 
 ## Test input validation
 %!error interp2 (1, 1, 1, 1, 1, 2)    # only 5 numeric inputs
@@ -594,10 +772,10 @@
 %!error <N must be an integer .= 0> interp2 (ones (2), -1)
 %!error <N must be an integer .= 0> interp2 (ones (2), 1.5)
 %!warning <ignoring unsupported '\*' flag> interp2 (rand (3,3), 1, "*linear");
-%!error <EXTRAP must be a numeric scalar> interp2 (1, 1, 1, 1, 1, 'linear', {1})
-%!error <EXTRAP must be a numeric scalar> interp2 (1, 1, 1, 1, 1, 'linear', ones (2,2))
-%!error <EXTRAP must be a numeric scalar> interp2 (1, 1, 1, 1, 1, 'linear', "abc")
-%!error <EXTRAP must be a numeric scalar> interp2 (1, 1, 1, 1, 1, 'linear', "extrap")
+%!error <EXTRAP must be a numeric scalar> interp2 (1, 1, 1, 1, 1, "linear", {1})
+%!error <EXTRAP must be a numeric scalar> interp2 (1, 1, 1, 1, 1, "linear", ones (2,2))
+%!error <EXTRAP must be a numeric scalar> interp2 (1, 1, 1, 1, 1, "linear", "abc")
+%!error <EXTRAP must be a numeric scalar> interp2 (1, 1, 1, 1, 1, "linear", "extrap")
 %!error <X, Y must be numeric matrices> interp2 ({1}, 1, ones (2), 1, 1)
 %!error <X, Y must be numeric matrices> interp2 (1, {1}, ones (2), 1, 1)
 %!error <XI, YI must be numeric> interp2 (1, 1, ones (2), {1}, 1)
@@ -608,6 +786,7 @@
 %!error <X and Y size must match the dimensions of Z> interp2 (1:2, 1:2, ones (3,2), 1, 1)
 %!error <X must be strictly monotonic> interp2 ([1 0 2], 1:3, ones (3,3), 1, 1)
 %!error <Y must be strictly monotonic> interp2 (1:3, [1 0 2], ones (3,3), 1, 1)
+%!warning <cubic requires at least 3 points in each dimension.> interp2 (eye(2), 1.5, 1.5, "cubic");
 %!error <XI and YI must be matrices of equal size> interp2 (1:2, 1:2, ones (2), ones (2,2), 1)
 %!error <XI and YI must be matrices of equal size> interp2 (1:2, 1:2, ones (2), 1, ones (2,2))
 %!error <XI, YI must have uniform spacing> interp2 (1:2, 1:2, ones (2), [1 2 4], [1 2 3], "spline")
--- a/scripts/general/interpft.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/interpft.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} interpft (@var{x}, @var{n})
-## @deftypefnx {} {} interpft (@var{x}, @var{n}, @var{dim})
+## @deftypefn  {} {@var{y} =} interpft (@var{x}, @var{n})
+## @deftypefnx {} {@var{y} =} interpft (@var{x}, @var{n}, @var{dim})
 ##
 ## Fourier interpolation.
 ##
@@ -41,7 +41,7 @@
 ## @seealso{interp1}
 ## @end deftypefn
 
-function z = interpft (x, n, dim)
+function y = interpft (x, n, dim)
 
   if (nargin < 2)
     print_usage ();
@@ -70,36 +70,36 @@
   m = rows (x);
 
   inc = ceil (m/n);
-  y = fft (x) / m;
+  xfft = fft (x) / m;
   k = ceil (m / 2);
   sz = size (x);
   sz(1) = n * inc - m;
 
   idx = repmat ({':'}, nd, 1);
   idx{1} = 1:k;
-  z = cat (1, y(idx{:}), zeros (sz));
+  y = cat (1, xfft(idx{:}), zeros (sz));
   idx{1} = k+1:m;
-  z = cat (1, z, y(idx{:}));
+  y = cat (1, y, xfft(idx{:}));
 
   ## When m is an even number of rows, the FFT has a single Nyquist bin.
   ## If zero-padded above, distribute the value of the Nyquist bin evenly
   ## between the new corresponding positive and negative frequency bins.
   if (sz(1) > 0 && k == m/2)
     idx{1} = n * inc - k + 1;
-    tmp = z(idx{:}) / 2;
-    z(idx{:}) = tmp;
+    tmp = y(idx{:}) / 2;
+    y(idx{:}) = tmp;
     idx{1} = k + 1;
-    z(idx{:}) = tmp;
+    y(idx{:}) = tmp;
   endif
 
-  z = n * ifft (z);
+  y = n * ifft (y);
 
   if (inc != 1)
     sz(1) = n;
-    z = inc * reshape (z(1:inc:end), sz);
+    y = inc * reshape (y(1:inc:end), sz);
   endif
 
-  z = ipermute (z, perm);
+  y = ipermute (y, perm);
 
 endfunction
 
--- a/scripts/general/interpn.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/interpn.m	Tue Nov 15 13:15:28 2022 -0800
@@ -185,11 +185,6 @@
 
   if (strcmp (method, "linear"))
     vi = __lin_interpn__ (x{:}, v, y{:});
-    if (iscomplex (v))
-      ## __lin_interpn__ ignores imaginary part. Do it again for imag part.
-      ## FIXME: Adapt __lin_interpn__ to correctly handle complex input.
-      vi += 1i * __lin_interpn__ (x{:}, imag (v), y{:});
-    endif
     vi(isna (vi)) = extrapval;
   elseif (strcmp (method, "nearest"))
     ## FIXME: This seems overly complicated.  Is there a way to simplify
--- a/scripts/general/isequal.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/isequal.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isequal (@var{x1}, @var{x2}, @dots{})
+## @deftypefn {} {@var{tf} =} isequal (@var{x1}, @var{x2}, @dots{})
 ## Return true if all of @var{x1}, @var{x2}, @dots{} are equal.
 ## @seealso{isequaln}
 ## @end deftypefn
@@ -46,7 +46,7 @@
 ##    e. cell       compare each member with isequal (recursive)
 ##    f. fcn_handle compare using overloaded "eq" operator
 
-function t = isequal (x, varargin)
+function tf = isequal (x, varargin)
 
   if (nargin < 2)
     print_usage ();
@@ -65,22 +65,22 @@
   ## All arguments must either be of the same class,
   ##  or they must be "numeric" values.
   if (two_args)
-    t = (strcmp (class (x), class (y))
-         || ((isreal (x) || iscomplex (x)) && (isreal (y) || iscomplex (y))));
+    tf = (strcmp (class (x), class (y))
+          || ((isreal (x) || iscomplex (x)) && (isreal (y) || iscomplex (y))));
   else
-    t = (all (cellfun ("isclass", varargin, class (x)))
-         || ((isreal (x) || iscomplex (x))
-             && all (cellfun ("isreal", varargin)
-                     | cellfun ("isnumeric", varargin))));
+    tf = (all (cellfun ("isclass", varargin, class (x)))
+          || ((isreal (x) || iscomplex (x))
+              && all (cellfun ("isreal", varargin)
+                      | cellfun ("isnumeric", varargin))));
   endif
 
   ## Test that everything is the same size (which also tests dimensions)
-  if (t)
-    t = size_equal (x, varargin{:});
+  if (tf)
+    tf = size_equal (x, varargin{:});
   endif
 
   ## From here on, compare any objects as if they were structures.
-  if (t && isobject (x))
+  if (tf && isobject (x))
     ## Locally suppress class-to-struct warning.  We know what we are doing.
     warning ("off", "Octave:classdef-to-struct", "local");
     x = builtin ("struct", x);
@@ -98,44 +98,44 @@
   ############################################################
   ## Check individual classes.
 
-  if (t)
+  if (tf)
     if (two_args)
 
       if (ischar (x) && ischar (y))
         ## char type.  Optimization, strcmp is ~35% faster than '==' operator.
-        t = strcmp (x, y);
+        tf = strcmp (x, y);
 
       elseif (isreal (x) || iscomplex (x))
         if (issparse (x))
           ## sparse types.
           [xi, xj, xv] = find (x);
           [yi, yj, yv] = find (y);
-          t = (length (xi) == length (yi)) && all (xi == yi) ...
+          tf = (length (xi) == length (yi)) && all (xi == yi) ...
               && all (xj == yj) && all (xv == yv);
         else
           ## general "numeric" type.  Use '==' operator.
           m = (x == y);
-          t = all (m(:));
+          tf = all (m(:));
         endif
 
       elseif (isstruct (x))
         ## struct type.  Compare # of fields, fieldnames, then field values.
 
         ## Test number of fields are equal.
-        t = (numfields (x) == numfields (y));
+        tf = (numfields (x) == numfields (y));
 
         ## Test that all the field names are equal.
-        if (t)
+        if (tf)
           s_fnm_x = sort (fieldnames (x));
-          t = all (strcmp (s_fnm_x, sort (fieldnames (y))));
+          tf = all (strcmp (s_fnm_x, sort (fieldnames (y))));
         endif
 
         ## Test that all field values are equal.  Slow because of recursion.
-        if (t)
+        if (tf)
           if (isscalar (x))
             for fldnm = s_fnm_x.'
-              t = isequal (x.(fldnm{1}), y.(fldnm{1}));
-              if (! t)
+              tf = isequal (x.(fldnm{1}), y.(fldnm{1}));
+              if (! tf)
                 break;
               endif
             endfor
@@ -143,8 +143,8 @@
             ## struct arrays have to have the contents of each field wrapped
             ## in a cell since it expands to a collection of values.
             for fldnm = s_fnm_x.'
-              t = isequal ({x.(fldnm{1})}, {y.(fldnm{1})});
-              if (! t)
+              tf = isequal ({x.(fldnm{1})}, {y.(fldnm{1})});
+              if (! tf)
                 break;
               endif
             endfor
@@ -156,20 +156,27 @@
         ## FIXME: It would be faster to use strcmp on whole cellstr arrays,
         ## but bug #51412 needs to be fixed.  Instead, time/space trade-off.
         ## Convert to char (space) for faster processing with strcmp (time).
-        t = strcmp (char (x), char (y));
+        tf = strcmp (char (x), char (y));
 
       elseif (iscell (x))
         ## cell type.  Check that each element of a cell is equal.  Slow.
         n = numel (x);
         idx = 1;
-        while (t && idx <= n)
-          t = isequal (x{idx}, y{idx});
+        while (tf && idx <= n)
+          tf = isequal (x{idx}, y{idx});
           idx += 1;
         endwhile
 
       elseif (is_function_handle (x))
         ## function type.  Use '==' operator which is overloaded.
-        t = (x == y);
+        tf = (x == y);
+
+      elseif (isjava (x))
+        try
+          tf = x.equals (y);
+        catch
+          error ('isequal: Java object does not implement "equals" function');
+        end_try_catch
 
       else
         error ("isequal: Impossible to reach code.  File a bug report.");
@@ -181,8 +188,8 @@
       if (ischar (x) && all (cellfun ("isclass", varargin, "char")))
         ## char type.  Optimization, strcmp is ~35% faster than '==' operator.
         idx = 1;
-        while (t && idx <= nvarargin)
-          t = strcmp (x, varargin{idx});
+        while (tf && idx <= nvarargin)
+          tf = strcmp (x, varargin{idx});
           idx += 1;
         endwhile
 
@@ -193,11 +200,11 @@
 
           idx = 1;
           [xi, xj, xv] = find (x);
-          while (t && idx <= nvarargin)
+          while (tf && idx <= nvarargin)
             y = varargin{idx};
             [yi, yj, yv] = find (y);
-            t = (length (xi) == length (yi)) && all (xi == yi) ...
-                && all (xj == yj) && all (xv == yv);
+            tf = (length (xi) == length (yi)) && all (xi == yi) ...
+                 && all (xj == yj) && all (xv == yv);
 
             idx += 1;
           endwhile
@@ -206,10 +213,10 @@
           ## general "numeric" type.  Use '==' operator.
 
           idx = 1;
-          while (t && idx <= nvarargin)
+          while (tf && idx <= nvarargin)
             y = varargin{idx};
             m = (x == y);
-            t = all (m(:));
+            tf = all (m(:));
 
             idx += 1;
           endwhile
@@ -223,21 +230,21 @@
         fnm_x = fieldnames (x);
         n = numel (fnm_x);
         fnm_v = cellfun ("fieldnames", varargin, "uniformoutput", false);
-        t = all (n == cellfun ("numel", fnm_v));
+        tf = all (n == cellfun ("numel", fnm_v));
 
         ## Test that all the field names are equal.
-        if (t)
+        if (tf)
           fnm_x = sort (fnm_x);
           idx = 1;
-          while (t && idx <= nvarargin)
+          while (tf && idx <= nvarargin)
             ## Allow the fieldnames to be in a different order.
-            t = all (strcmp (fnm_x, sort (fnm_v{idx})));
+            tf = all (strcmp (fnm_x, sort (fnm_v{idx})));
             idx += 1;
           endwhile
         endif
 
         ## Test that all field values are equal.  Slow because of recursion.
-        if (t)
+        if (tf)
           args = cell (1, 1 + nvarargin);
           if (isscalar (x))
             for fldnm = fnm_x.'
@@ -246,9 +253,9 @@
                 args{argn+1} = varargin{argn}.(fldnm{1});
               endfor
 
-              t = isequal (args{:});
+              tf = isequal (args{:});
 
-              if (! t)
+              if (! tf)
                 break;
               endif
             endfor
@@ -261,9 +268,9 @@
                 args{argn+1} = { varargin{argn}.(fldnm{1}) };
               endfor
 
-              t = isequal (args{:});
+              tf = isequal (args{:});
 
-              if (! t)
+              if (! tf)
                 break;
               endif
             endfor
@@ -277,8 +284,8 @@
         ## Convert to char (space) for faster processing with strcmp (time).
         idx = 1;
         x = char (x);
-        while (t && idx <= nvarargin)
-          t = strcmp (x, char (varargin{idx}));
+        while (tf && idx <= nvarargin)
+          tf = strcmp (x, char (varargin{idx}));
           idx += 1;
         endwhile
 
@@ -287,18 +294,18 @@
         n = numel (x);
         args = cell (1, 1 + nvarargin);
         idx = 1;
-        while (t && idx <= n)
+        while (tf && idx <= n)
           args(1) = x{idx};
           args(2:end) = [cellindexmat(varargin, idx){:}];
 
-          t = isequal (args{:});
+          tf = isequal (args{:});
 
           idx += 1;
         endwhile
 
       elseif (is_function_handle (x))
         ## function type.  Use '==' operator which is overloaded.
-        t = all (cellfun ("eq", {x}, varargin));
+        tf = all (cellfun ("eq", {x}, varargin));
 
       else
         error ("isequal: Impossible to reach code.  File a bug report.");
@@ -308,7 +315,7 @@
     endif
   endif
 
-  t = full (t);  # Always return full logical value for Matlab compatibility.
+  tf = full (tf);  # Always return full logical value for Matlab compatibility.
 
 endfunction
 
@@ -544,6 +551,14 @@
 %!assert (isequal (sparse (1), sparse (1)), true)
 %!assert (isequal (sparse (1), sparse (1)), sparse (1), true)
 
+## Java objects
+%!testif HAVE_JAVA; usejava ("jvm")  <*62930>
+%! int1 = javaObject ("java.lang.Integer", 1.0);
+%! int2 = javaObject ("java.lang.Integer", 2.0);
+%! assert (isequal (int1, int1));
+%! assert (! isequal (int1, 1.0));
+%! assert (! isequal (int1, int2));
+
 ## test input validation
 %!error <Invalid call> isequal ()
 %!error <Invalid call> isequal (1)
--- a/scripts/general/isequaln.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/isequaln.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isequaln (@var{x1}, @var{x2}, @dots{})
+## @deftypefn {} {@var{tf} =} isequaln (@var{x1}, @var{x2}, @dots{})
 ## Return true if all of @var{x1}, @var{x2}, @dots{} are equal under the
 ## additional assumption that NaN == NaN (no comparison of NaN placeholders
 ## in dataset).
@@ -48,7 +48,7 @@
 ##    e. cell       compare each member with isequaln (recursive)
 ##    f. fcn_handle compare using overloaded "eq" operator
 
-function t = isequaln (x, varargin)
+function tf = isequaln (x, varargin)
 
   if (nargin < 2)
     print_usage ();
@@ -67,22 +67,22 @@
   ## All arguments must either be of the same class,
   ##  or they must be "numeric" values.
   if (two_args)
-    t = (strcmp (class (x), class (y))
-         || ((isreal (x) || iscomplex (x)) && (isreal (y) || iscomplex (y))));
+    tf = (strcmp (class (x), class (y))
+          || ((isreal (x) || iscomplex (x)) && (isreal (y) || iscomplex (y))));
   else
-    t = (all (cellfun ("isclass", varargin, class (x)))
-         || ((isreal (x) || iscomplex (x))
-             && all (cellfun ("isreal", varargin)
-                     | cellfun ("isnumeric", varargin))));
+    tf = (all (cellfun ("isclass", varargin, class (x)))
+          || ((isreal (x) || iscomplex (x))
+              && all (cellfun ("isreal", varargin)
+                      | cellfun ("isnumeric", varargin))));
   endif
 
   ## Test that everything is the same size (which also tests dimensions)
-  if (t)
-    t = size_equal (x, varargin{:});
+  if (tf)
+    tf = size_equal (x, varargin{:});
   endif
 
   ## From here on, compare any objects as if they were structures.
-  if (t && isobject (x))
+  if (tf && isobject (x))
     ## Locally suppress class-to-struct warning.  We know what we are doing.
     warning ("off", "Octave:classdef-to-struct", "local");
     x = builtin ("struct", x);
@@ -100,40 +100,40 @@
   ############################################################
   ## Check individual classes.
 
-  if (t)
+  if (tf)
     if (two_args)
 
       if (ischar (x) && ischar (y))
         ## char type.  Optimization, strcmp is ~35% faster than '==' operator.
-        t = strcmp (x, y);
+        tf = strcmp (x, y);
 
       elseif (isreal (x) || iscomplex (x))
         ## general "numeric" type.  Use '==' operator.
         m = (x == y);
-        t = all (m(:));
+        tf = all (m(:));
 
-        if (! t && isfloat (x) && isfloat (y))
-          t = isnan (x(! m)) && isnan (y(! m));
+        if (! tf && isfloat (x) && isfloat (y))
+          tf = isnan (x(! m)) && isnan (y(! m));
         endif
 
       elseif (isstruct (x))
         ## struct type.  Compare # of fields, fieldnames, then field values.
 
         ## Test number of fields are equal.
-        t = (numfields (x) == numfields (y));
+        tf = (numfields (x) == numfields (y));
 
         ## Test that all the field names are equal.
-        if (t)
+        if (tf)
           s_fnm_x = sort (fieldnames (x));
-          t = all (strcmp (s_fnm_x, sort (fieldnames (y))));
+          tf = all (strcmp (s_fnm_x, sort (fieldnames (y))));
         endif
 
         ## Test that all field values are equal.  Slow because of recursion.
-        if (t)
+        if (tf)
           if (isscalar (x))
             for fldnm = s_fnm_x.'
-              t = isequaln (x.(fldnm{1}), y.(fldnm{1}));
-              if (! t)
+              tf = isequaln (x.(fldnm{1}), y.(fldnm{1}));
+              if (! tf)
                 break;
               endif
             endfor
@@ -141,8 +141,8 @@
             ## struct arrays have to have the contents of each field wrapped
             ## in a cell since it expands to a collection of values.
             for fldnm = s_fnm_x.'
-              t = isequaln ({x.(fldnm{1})}, {y.(fldnm{1})});
-              if (! t)
+              tf = isequaln ({x.(fldnm{1})}, {y.(fldnm{1})});
+              if (! tf)
                 break;
               endif
             endfor
@@ -154,20 +154,20 @@
         ## FIXME: It would be faster to use strcmp on whole cellstr arrays,
         ## but bug #51412 needs to be fixed.  Instead, time/space trade-off.
         ## Convert to char (space) for faster processing with strcmp (time).
-        t = strcmp (char (x), char (y));
+        tf = strcmp (char (x), char (y));
 
       elseif (iscell (x))
         ## cell type.  Check that each element of a cell is equal.  Slow.
         n = numel (x);
         idx = 1;
-        while (t && idx <= n)
-          t = isequaln (x{idx}, y{idx});
+        while (tf && idx <= n)
+          tf = isequaln (x{idx}, y{idx});
           idx += 1;
         endwhile
 
       elseif (is_function_handle (x))
         ## function type.  Use '==' operator which is overloaded.
-        t = (x == y);
+        tf = (x == y);
 
       else
         error ("isequaln: Impossible to reach code.  File a bug report.");
@@ -179,8 +179,8 @@
       if (ischar (x) && all (cellfun ("isclass", varargin, "char")))
         ## char type.  Optimization, strcmp is ~35% faster than '==' operator.
         idx = 1;
-        while (t && idx <= nvarargin)
-          t = strcmp (x, varargin{idx});
+        while (tf && idx <= nvarargin)
+          tf = strcmp (x, varargin{idx});
           idx += 1;
         endwhile
 
@@ -188,13 +188,13 @@
         ## general "numeric" type.  Use '==' operator.
 
         idx = 1;
-        while (t && idx <= nvarargin)
+        while (tf && idx <= nvarargin)
           y = varargin{idx};
           m = (x == y);
-          t = all (m(:));
+          tf = all (m(:));
 
-          if (! t && isfloat (x) && isfloat (y))
-            t = isnan (x(! m)) && isnan (y(! m));
+          if (! tf && isfloat (x) && isfloat (y))
+            tf = isnan (x(! m)) && isnan (y(! m));
           endif
 
           idx += 1;
@@ -207,21 +207,21 @@
         fnm_x = fieldnames (x);
         n = numel (fnm_x);
         fnm_v = cellfun ("fieldnames", varargin, "uniformoutput", false);
-        t = all (n == cellfun ("numel", fnm_v));
+        tf = all (n == cellfun ("numel", fnm_v));
 
         ## Test that all the field names are equal.
-        if (t)
+        if (tf)
           fnm_x = sort (fnm_x);
           idx = 1;
-          while (t && idx <= nvarargin)
+          while (tf && idx <= nvarargin)
             ## Allow the fieldnames to be in a different order.
-            t = all (strcmp (fnm_x, sort (fnm_v{idx})));
+            tf = all (strcmp (fnm_x, sort (fnm_v{idx})));
             idx += 1;
           endwhile
         endif
 
         ## Test that all field values are equal.  Slow because of recursion.
-        if (t)
+        if (tf)
           args = cell (1, 1 + nvarargin);
           if (isscalar (x))
             for fldnm = fnm_x.'
@@ -230,9 +230,9 @@
                 args{argn+1} = varargin{argn}.(fldnm{1});
               endfor
 
-              t = isequaln (args{:});
+              tf = isequaln (args{:});
 
-              if (! t)
+              if (! tf)
                 break;
               endif
             endfor
@@ -245,9 +245,9 @@
                 args{argn+1} = { varargin{argn}.(fldnm{1}) };
               endfor
 
-              t = isequaln (args{:});
+              tf = isequaln (args{:});
 
-              if (! t)
+              if (! tf)
                 break;
               endif
             endfor
@@ -261,8 +261,8 @@
         ## Convert to char (space) for faster processing with strcmp (time).
         idx = 1;
         x = char (x);
-        while (t && idx <= nvarargin)
-          t = strcmp (x, char (varargin{idx}));
+        while (tf && idx <= nvarargin)
+          tf = strcmp (x, char (varargin{idx}));
           idx += 1;
         endwhile
 
@@ -271,18 +271,18 @@
         n = numel (x);
         args = cell (1, 1 + nvarargin);
         idx = 1;
-        while (t && idx <= n)
+        while (tf && idx <= n)
           args(1) = x{idx};
           args(2:end) = [cellindexmat(varargin, idx){:}];
 
-          t = isequaln (args{:});
+          tf = isequaln (args{:});
 
           idx += 1;
         endwhile
 
       elseif (is_function_handle (x))
         ## function type.  Use '==' operator which is overloaded.
-        t = all (cellfun ("eq", {x}, varargin));
+        tf = all (cellfun ("eq", {x}, varargin));
 
       else
         error ("isequaln: Impossible to reach code.  File a bug report.");
@@ -292,7 +292,7 @@
     endif
   endif
 
-  t = full (t);  # Always return full logical value for Matlab compatibility.
+  tf = full (tf);  # Always return full logical value for Matlab compatibility.
 
 endfunction
 
--- a/scripts/general/logspace.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/logspace.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} logspace (@var{a}, @var{b})
-## @deftypefnx {} {} logspace (@var{a}, @var{b}, @var{n})
-## @deftypefnx {} {} logspace (@var{a}, pi, @var{n})
+## @deftypefn  {} {@var{y} =} logspace (@var{a}, @var{b})
+## @deftypefnx {} {@var{y} =} logspace (@var{a}, @var{b}, @var{n})
+## @deftypefnx {} {@var{y} =} logspace (@var{a}, pi, @var{n})
 ## Return a row vector with @var{n} elements logarithmically spaced from
 ## @tex
 ## $10^{a}$ to $10^{b}$.
@@ -72,7 +72,7 @@
 ## @seealso{linspace}
 ## @end deftypefn
 
-function retval = logspace (a, b, n = 50)
+function y = logspace (a, b, n = 50)
 
   if (nargin < 2)
     print_usage ();
@@ -88,7 +88,7 @@
     b = log10 (pi);
   endif
 
-  retval = 10 .^ (linspace (a, b, npoints));
+  y = 10 .^ (linspace (a, b, npoints));
 
 endfunction
 
@@ -133,8 +133,8 @@
 ## FIXME: These are bizarre corner cases for Matlab compatibility.  See
 ## bug #56933.  This is marked as "Won't Fix", but if linspace is updated at
 ## some point then these tests can be re-instated.
-##%!assert (logspace (-Inf, 0, 3), [0, NaN, 1])
-##%!assert (logspace (Inf, 0, 3), [Inf, NaN, 1])
+%!#assert (logspace (-Inf, 0, 3), [0, NaN, 1])
+%!#assert (logspace (Inf, 0, 3), [Inf, NaN, 1])
 
 ## Test input validation
 %!error <Invalid call> logspace ()
--- a/scripts/general/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -47,6 +47,8 @@
   %reldir%/logspace.m \
   %reldir%/nextpow2.m \
   %reldir%/num2str.m \
+  %reldir%/pagectranspose.m \
+  %reldir%/pagetranspose.m \
   %reldir%/pol2cart.m \
   %reldir%/polyarea.m \
   %reldir%/postpad.m \
@@ -64,7 +66,6 @@
   %reldir%/rng.m \
   %reldir%/rot90.m \
   %reldir%/rotdim.m \
-  %reldir%/shift.m \
   %reldir%/shiftdim.m \
   %reldir%/sortrows.m \
   %reldir%/sph2cart.m \
--- a/scripts/general/num2str.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/num2str.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} num2str (@var{x})
-## @deftypefnx {} {} num2str (@var{x}, @var{precision})
-## @deftypefnx {} {} num2str (@var{x}, @var{format})
+## @deftypefn  {} {@var{str} =} num2str (@var{x})
+## @deftypefnx {} {@var{str} =} num2str (@var{x}, @var{precision})
+## @deftypefnx {} {@var{str} =} num2str (@var{x}, @var{format})
 ## Convert a number (or array) to a string (or a character array).
 ##
 ## The optional second argument may either give the number of significant
@@ -78,7 +78,7 @@
 ## @seealso{sprintf, int2str, mat2str}
 ## @end deftypefn
 
-function retval = num2str (x, arg)
+function str = num2str (x, arg)
 
   if (nargin < 1)
     print_usage ();
@@ -87,9 +87,9 @@
   endif
 
   if (ischar (x))
-    retval = x;
+    str = x;
   elseif (isempty (x))
-    retval = "";
+    str = "";
   elseif (isreal (x))
     if (nargin == 2)
       if (ischar (arg))
@@ -143,7 +143,7 @@
       fmt = [deblank(repmat (fmt, 1, nc)), "\n"];
     endif
     strtmp = sprintf (fmt, x);
-    retval = strtrim (char (ostrsplit (strtmp, "\n", true)));
+    str = strtrim (char (ostrsplit (strtmp, "\n", true)));
   else   # Complex matrix input
     if (nargin == 2)
       if (ischar (arg))
@@ -195,7 +195,7 @@
     tmp = regexprep (tmp, " +i\n", "i\n");
     tmp = regexprep (tmp, "( +)i", "i$1");
 
-    retval = strtrim (char (ostrsplit (tmp(1:end-1), "\n")));
+    str = strtrim (char (ostrsplit (tmp(1:end-1), "\n")));
   endif
 
 endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/general/pagectranspose.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,58 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {@var{y} =} pagectranspose (@var{A})
+## Return the page-wise complex conjugate transpose of the N-dimensional array
+## @var{A}.
+##
+## This is equivalent to @tcode{@var{A}(:,:, @var{k})'} for each page @var{k}.
+##
+## @seealso{pagetranspose, ctranspose, permute}
+## @end deftypefn
+
+function B = pagectranspose (A)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  B = permute (conj (A), [2, 1, 3:ndims(A)]);
+
+endfunction
+
+
+%!test
+%! A = reshape (1:8, [2, 2, 2]);
+%! B = pagectranspose (A);
+%! assert (B, cat (3, [1,2;3,4], [5,6;7,8]));
+
+%!test
+%! A = reshape ((1:8)*i, [2, 2, 2]);
+%! B = pagectranspose (A);
+%! assert (B, -i * cat (3, [1,2;3,4], [5,6;7,8]));
+
+## Test input validation
+%!error <Invalid call> pagectranspose ()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/general/pagetranspose.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,58 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {@var{B} =} pagetranspose (@var{A})
+## Return the page-wise transpose of the N-dimensional array @var{A}.
+##
+## This is equivalent to @tcode{@var{A}(:,:, @var{k}).@:'} for each page
+## @var{k}.
+##
+## @seealso{pagectranspose, transpose, permute}
+## @end deftypefn
+
+function B = pagetranspose (A)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  B = permute (A, [2, 1, 3:ndims(A)]);
+
+endfunction
+
+
+%!test
+%! A = reshape (1:8, [2, 2, 2]);
+%! B = pagetranspose (A);
+%! assert (B, cat (3, [1,2;3,4], [5,6;7,8]));
+
+%!test
+%! A = reshape ((1:8)*i, [2, 2, 2]);
+%! B = pagetranspose (A);
+%! assert (B, i * cat (3, [1,2;3,4], [5,6;7,8]));
+
+## Test input validation
+%!error <Invalid call> pagetranspose ()
--- a/scripts/general/polyarea.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/polyarea.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} polyarea (@var{x}, @var{y})
-## @deftypefnx {} {} polyarea (@var{x}, @var{y}, @var{dim})
+## @deftypefn  {} {@var{a} =} polyarea (@var{x}, @var{y})
+## @deftypefnx {} {@var{a} =} polyarea (@var{x}, @var{y}, @var{dim})
 ##
 ## Determine area of a polygon by triangle method.
 ##
@@ -55,9 +55,9 @@
   endif
 
   if (nargin == 2)
-    a = abs (sum (x .* (shift (y, -1) - shift (y, 1)))) / 2;
+    a = abs (sum (x .* (circshift (y, -1) - circshift (y, 1)))) / 2;
   else
-    a = abs (sum (x .* (shift (y, -1, dim) - shift (y, 1, dim)), dim)) / 2;
+    a = abs (sum (x .* (circshift (y, -1, dim) - circshift (y, 1, dim)), dim)) / 2;
   endif
 
 endfunction
--- a/scripts/general/postpad.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/postpad.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,25 +24,25 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} postpad (@var{x}, @var{l})
-## @deftypefnx {} {} postpad (@var{x}, @var{l}, @var{c})
-## @deftypefnx {} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim})
-## Append the scalar value @var{c} to the vector @var{x} until it is of length
+## @deftypefn  {} {@var{B} =} postpad (@var{A}, @var{l})
+## @deftypefnx {} {@var{B} =} postpad (@var{A}, @var{l}, @var{c})
+## @deftypefnx {} {@var{B} =} postpad (@var{A}, @var{l}, @var{c}, @var{dim})
+## Append the scalar value @var{c} to the vector @var{A} until it is of length
 ## @var{l}.  If @var{c} is not given, a value of 0 is used.
 ##
-## If @code{length (@var{x}) > @var{l}}, elements from the end of @var{x} are
+## If @code{length (@var{A}) > @var{l}}, elements from the end of @var{A} are
 ## removed until a vector of length @var{l} is obtained.
 ##
-## If @var{x} is a matrix, elements are appended or removed from each row.
+## If @var{A} is a matrix, elements are appended or removed from each row.
 ##
 ## If the optional argument @var{dim} is given, operate along this dimension.
 ##
-## If @var{dim} is larger than the dimensions of @var{x}, the result will have
+## If @var{dim} is larger than the dimensions of @var{A}, the result will have
 ## @var{dim} dimensions.
 ## @seealso{prepad, cat, resize}
 ## @end deftypefn
 
-function y = postpad (x, l, c, dim)
+function B = postpad (A, l, c, dim)
 
   if (nargin < 2)
     print_usage ();
@@ -56,8 +56,8 @@
     endif
   endif
 
-  nd = ndims (x);
-  sz = size (x);
+  nd = ndims (A);
+  sz = size (A);
   if (nargin < 4)
     ## Find the first non-singleton dimension.
     (dim = find (sz > 1, 1)) || (dim = 1);
@@ -84,14 +84,14 @@
     ##    ml = max (numel (v1), numel (v2));
     ##    v1 = postpad (v1, ml);
     ##    v2 = postpad (v2, ml);
-    y = x;
+    B = A;
   elseif (d >= l)
     idx = repmat ({':'}, nd, 1);
     idx{dim} = 1:l;
-    y = x(idx{:});
+    B = A(idx{:});
   else
     sz(dim) = l - d;
-    y = cat (dim, x, c(ones (sz)));
+    B = cat (dim, A, c(ones (sz)));
   endif
 
 endfunction
--- a/scripts/general/prepad.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/prepad.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,25 +24,25 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} prepad (@var{x}, @var{l})
-## @deftypefnx {} {} prepad (@var{x}, @var{l}, @var{c})
-## @deftypefnx {} {} prepad (@var{x}, @var{l}, @var{c}, @var{dim})
-## Prepend the scalar value @var{c} to the vector @var{x} until it is of length
+## @deftypefn  {} {@var{B} =} prepad (@var{A}, @var{l})
+## @deftypefnx {} {@var{B} =} prepad (@var{A}, @var{l}, @var{c})
+## @deftypefnx {} {@var{B} =} prepad (@var{A}, @var{l}, @var{c}, @var{dim})
+## Prepend the scalar value @var{c} to the vector @var{A} until it is of length
 ## @var{l}.  If @var{c} is not given, a value of 0 is used.
 ##
-## If @code{length (@var{x}) > @var{l}}, elements from the beginning of @var{x}
+## If @code{length (@var{A}) > @var{l}}, elements from the beginning of @var{A}
 ## are removed until a vector of length @var{l} is obtained.
 ##
-## If @var{x} is a matrix, elements are prepended or removed from each row.
+## If @var{A} is a matrix, elements are prepended or removed from each row.
 ##
 ## If the optional argument @var{dim} is given, operate along this dimension.
 ##
-## If @var{dim} is larger than the dimensions of @var{x}, the result will have
+## If @var{dim} is larger than the dimensions of @var{A}, the result will have
 ## @var{dim} dimensions.
 ## @seealso{postpad, cat, resize}
 ## @end deftypefn
 
-function y = prepad (x, l, c, dim)
+function B = prepad (A, l, c, dim)
 
   if (nargin < 2)
     print_usage ();
@@ -56,8 +56,8 @@
     endif
   endif
 
-  nd = ndims (x);
-  sz = size (x);
+  nd = ndims (A);
+  sz = size (A);
   if (nargin < 4)
     ## Find the first non-singleton dimension.
     (dim = find (sz > 1, 1)) || (dim = 1);
@@ -84,14 +84,14 @@
     ##    ml = max (numel (v1), numel (v2));
     ##    v1 = prepad (v1, ml);
     ##    v2 = prepad (v2, ml);
-    y = x;
+    B = A;
   elseif (d >= l)
     idx = repmat ({':'}, nd, 1);
     idx{dim} = d-l+1:d;
-    y = x(idx{:});
+    B = A(idx{:});
   else
     sz(dim) = l - d;
-    y = cat (dim, c(ones (sz)), x);
+    B = cat (dim, c(ones (sz)), A);
   endif
 
 endfunction
--- a/scripts/general/quadgk.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/quadgk.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,7 +27,7 @@
 ## @deftypefn  {} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b})
 ## @deftypefnx {} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol})
 ## @deftypefnx {} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}, @var{trace})
-## @deftypefnx {} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{prop}, @var{val}, @dots{})
+## @deftypefnx {} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, "@var{prop}", @var{val}, @dots{})
 ## @deftypefnx {} {[@var{q}, @var{err}] =} quadgk (@dots{})
 ##
 ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b}
@@ -35,7 +35,8 @@
 ##
 ## @var{f} is a function handle, inline function, or string containing the name
 ## of the function to evaluate.  The function @var{f} must be vectorized and
-## return a vector of output values when given a vector of input values.
+## return a vector of output values when given a vector of input values (See
+## property @qcode{"ArrayValued"} for an exception to this rule).
 ##
 ## @var{a} and @var{b} are the lower and upper limits of integration.  Either
 ## or both limits may be infinite or contain weak end singularities.  Variable
@@ -51,8 +52,9 @@
 ## operator @code{./} and all user functions to @code{quadgk} should do the
 ## same.
 ##
-## The optional argument @var{tol} defines the absolute tolerance used to stop
-## the integration procedure.  The default value is 1e-10 (1e-5 for single).
+## The optional argument @var{abstol} defines the absolute tolerance used to
+## stop the integration procedure.  The default value is 1e-10 (1e-5 for
+## single).
 ##
 ## The algorithm used by @code{quadgk} involves subdividing the integration
 ## interval and evaluating each subinterval.  If @var{trace} is true then after
@@ -60,8 +62,8 @@
 ## subintervals at this step, (2) the current estimate of the error @var{err},
 ## (3) the current estimate for the integral @var{q}.
 ##
-## The behavior of the algorithm can be configured by passing arguments
-## to @code{quadgk} as pairs @qcode{"@var{prop}", @var{val}}.  Valid properties
+## The behavior of the algorithm can be configured by passing arguments to
+## @code{quadgk} as pairs @qcode{"@var{prop}", @var{val}}.  Valid properties
 ## are
 ##
 ## @table @code
@@ -73,28 +75,53 @@
 ## Define the relative error tolerance for the quadrature.  The default
 ## relative tolerance is 1e-6 (1e-4 for single).
 ##
-## @item MaxIntervalCount
-## @code{quadgk} initially subdivides the interval on which to perform the
-## quadrature into 10 intervals.  Subintervals that have an unacceptable error
-## are subdivided and re-evaluated.  If the number of subintervals exceeds 650
-## subintervals at any point then a poor convergence is signaled and the
-## current estimate of the integral is returned.  The property
-## @qcode{"MaxIntervalCount"} can be used to alter the number of subintervals
-## that can exist before exiting.
-##
-## @item WayPoints
-## Discontinuities in the first derivative of the function to integrate can be
-## flagged with the @qcode{"WayPoints"} property.  This forces the ends of a
-## subinterval to fall on the breakpoints of the function and can result in
-## significantly improved estimation of the error in the integral, faster
-## computation, or both.  For example,
+## @item ArrayValued
+## When set to true, the function @var{f} produces an array output for a scalar
+## input.  The default is false which requires that @var{f} produce an output
+## that is the same size as the input.  For example,
 ##
 ## @example
-## quadgk (@@(x) abs (1 - x.^2), 0, 2, "Waypoints", 1)
+## quadgk (@@(x) x .^ (1:5), 0, 2, "ArrayValued", 1)
 ## @end example
 ##
 ## @noindent
-## signals the breakpoint in the integrand at @code{@var{x} = 1}.
+## will integrate @code{[x.^1, x.^2, x.^3, x.^4, x.^5]} in one function call
+## rather than having to repeatedly define a single anonymous function and
+## use a normal invocation of @code{quadgk}.
+##
+## @item WayPoints
+## Specify points which will become endpoints for subintervals in the
+## algorithm which can result in significantly improved estimation of the error
+## in the integral, faster computation, or both.  It can be useful to specify
+## more subintervals around a region where the integrand is rapidly changing or
+## to flag locations where there is a discontinuity in the first derivative
+## of the function.  For example, the signum function has a discontinuity at
+## @code{x == 0} and by specifying a waypoint
+##
+## @example
+## quadgk (@@(x) sign (x), -0.5, 1, "Waypoints", [0])
+## @end example
+##
+## @noindent
+## the error bound is reduced from 4e-7 to 1e-13.
+##
+## If the function has @strong{singularities} within the region of integration
+## those should not be addressed with waypoints.  Instead, the overall integral
+## should be decomposed into a sum of several smaller integrals such that the
+## singularity occurs as one of the bounds of integration in the call to
+## @code{quadgk}.
+##
+## If any of the waypoints are complex then contour integration is performed as
+## documented below.
+##
+## @item MaxIntervalCount
+## @code{quadgk} initially subdivides the interval on which to perform the
+## quadrature into 10 intervals or, if WayPoints are given, at each waypoint.
+## Subintervals that have an unacceptable error are subdivided and
+## re-evaluated.  If the number of subintervals exceeds 650 subintervals at any
+## point then a poor convergence is signaled and the current estimate of the
+## integral is returned.  The property @qcode{"MaxIntervalCount"} can be used
+## to alter the number of subintervals that can exist before exiting.
 ##
 ## @item Trace
 ## If logically true @code{quadgk} prints information on the convergence of the
@@ -102,7 +129,7 @@
 ## @end table
 ##
 ## If any of @var{a}, @var{b}, or @var{waypoints} is complex then the
-## quadrature is treated as a contour integral along a piecewise continuous
+## quadrature is treated as a contour integral along a piecewise linear
 ## path defined by
 ## @code{[@var{a}, @var{waypoints}(1), @var{waypoints}(2), @dots{}, @var{b}]}.
 ## In this case the integral is assumed to have no edge singularities.  For
@@ -123,7 +150,12 @@
 ##
 ## @var{err} is an approximate bound on the error in the integral
 ## @w{@code{abs (@var{q} - @var{I})}}, where @var{I} is the exact value of the
-## integral.
+## integral.  If the adaptive integration did not converge, the value of
+## @var{err} will be larger than the requested tolerance.  If only a single
+## output is requested then a warning will be emitted when the requested
+## tolerance is not met.  If the second output @var{err} is requested then no
+## warning is issued and it is the responsibility of the programmer to inspect
+## and determine whether the results are satisfactory.
 ##
 ## Reference: @nospell{L.F. Shampine},
 ## @cite{"Vectorized adaptive quadrature in @sc{matlab}"}, Journal of
@@ -131,7 +163,7 @@
 ## Feb 2008.
 ##
 ## @seealso{quad, quadv, quadl, quadcc, trapz, dblquad, triplequad, integral,
-##           integral2, integral3}
+##          integral2, integral3}
 ## @end deftypefn
 
 function [q, err] = quadgk (f, a, b, varargin)
@@ -140,17 +172,11 @@
     print_usage ();
   endif
 
-  if (b < a)
-    ## Reverse integration
-    [q, err] = quadgk (f, b, a, varargin{:});
-    q = -q;
-    return;
-  endif
-
   abstol = [];
   reltol = [];
   waypoints = [];
   maxint = 650;
+  arrayvalued = false;
   trace = false;
 
   ## Parse options if present.
@@ -176,28 +202,36 @@
         if (! ischar (varargin{idx}))
           error ("quadgk: property PROP must be a string");
         endif
-        str = varargin{idx++};
-        switch (tolower (str))
+        prop = varargin{idx++};
+        switch (tolower (prop))
           case "reltol"
             reltol = varargin{idx++};
           case "abstol"
             abstol = varargin{idx++};
           case "waypoints"
             waypoints = varargin{idx++}(:);
-            if (isreal (waypoints))
-              waypoints(waypoints < a | waypoints > b) = [];
-            endif
           case "maxintervalcount"
             maxint = varargin{idx++};
+          case "arrayvalued"
+            arrayvalued = varargin{idx++};
           case "trace"
             trace = varargin{idx++};
           otherwise
-            error ("quadgk: unknown property '%s'", str);
+            error ("quadgk: unknown property '%s'", prop);
         endswitch
       endwhile
     endif
   endif
 
+  reverse = 1;
+  contour = iscomplex (a) || iscomplex (b) || iscomplex (waypoints);
+  if ((b < a) && ! contour)
+    ## Reverse integration
+    [b, a] = deal (a, b);
+    waypoints = sort (waypoints(waypoints > a & waypoints < b));
+    reverse = -1;
+  endif
+
   issingle = (isa (a, "single") || isa (b, "single")
               || isa (waypoints, "single"));
 
@@ -213,6 +247,9 @@
     error ("quadgk: RELTOL must be a scalar >=0");
   endif
 
+  ## FIXME: No validation of inputs MaxIntervalCount, Waypoints, ArrayValued,
+  ##        Trace.
+
   ## Convert function given as a string to a function handle
   if (ischar (f))
     f = @(x) feval (f, x);
@@ -221,12 +258,13 @@
   ## Use variable substitution to weaken endpoint singularities and
   ## to perform integration with endpoints at infinity.
   ## No transform for contour integrals.
-  if (iscomplex (a) || iscomplex (b) || iscomplex (waypoints))
+  if (contour)
     ## contour integral, no transform
     subs = [a; waypoints; b];
     h = sum (abs (diff (subs)));
-    h0 = h;
     trans = @(t) t;
+    ## Ensure f is always vectorized even if specified as, e.g., f = @(x) 1;
+    f = @(t) f (t) + 0*t;
   elseif (isinf (a) && isinf (b))
     ## Standard infinite to finite integral transformation.
     ##   \int_{-\infinity_^\infinity f(x) dx = \int_-1^1 f (g(t)) g'(t) dt
@@ -242,7 +280,6 @@
       subs = linspace (-1, 1, 11)';
     endif
     h = 2;
-    h0 = b - a;
     trans = @(t) t ./ (1 - t.^2);
     f = @(t) f (t ./ (1 - t .^ 2)) .* (1 + t .^ 2) ./ ((1 - t .^ 2) .^ 2);
   elseif (isinf (a))
@@ -268,7 +305,6 @@
       subs = linspace (-1, 0, 11)';
     endif
     h = 1;
-    h0 = b - a;
     trans = @(t) b - (t ./ (1 + t)).^2;
     f = @(s) - 2 * s .* f (b -  (s ./ (1 + s)) .^ 2) ./ ((1 + s) .^ 3);
   elseif (isinf (b))
@@ -293,7 +329,6 @@
       subs = linspace (0, 1, 11)';
     endif
     h = 1;
-    h0 = b - a;
     trans = @(t) a + (t ./ (1 - t)).^2;
     f = @(s) 2 * s .* f (a +  (s ./ (1 - s)) .^ 2) ./ ((1 - s) .^ 3);
   else
@@ -315,7 +350,6 @@
       subs = linspace (-1, 1, 11)';
     endif
     h = 2;
-    h0 = b - a;
     trans = @(t) ((b - a) ./ 4) * t .* (3 - t.^2) + (b + a) ./ 2;
     f = @(t) f((b - a) ./ 4 .* t .* (3 - t.^2) + (b + a) ./ 2) .* ...
          3 .* (b - a) ./ 4 .* (1 - t.^2);
@@ -323,92 +357,170 @@
 
   ## Split interval into at least 10 subinterval with a 15 point
   ## Gauss-Kronrod rule giving a minimum of 150 function evaluations.
-  while (length (subs) < 11)
-    subs = [subs.' ; subs(1:end-1).' + diff(subs.') ./ 2, NaN](:)(1 : end - 1);
+  while (numel (subs) < 11)
+    subs = [subs.' ; subs(1:end-1).' + diff(subs.') ./ 2, NaN](:)(1:end-1);
   endwhile
   subs = [subs(1:end-1), subs(2:end)];
 
   warn_id = "Octave:quadgk:warning-termination";
 
-  if (issingle)
-    eps1 = eps ("single");
-  else
-    eps1 = eps ("double");
-  endif
+  if (! arrayvalued)
+    ## Initial evaluation of the integrand on the subintervals.
+    [q_subs, q_errs] = __quadgk_eval__ (f, subs, trans);
+    q0 = sum (q_subs);
+    err0 = sum (q_errs);
 
-  ## Initial evaluation of the integrand on the subintervals
-  [q_subs, q_errs] = __quadgk_eval__ (f, subs, eps1, trans);
-  q0 = sum (q_subs);
-  err0 = sum (q_errs);
+    first = true;
+    while (true)
+      ## Quit if any evaluations are not finite (Inf or NaN).
+      if (any (! isfinite (q_subs)))
+        warning (warn_id, "quadgk: non-finite integrand encountered");
+        q = q0;
+        err = err0;
+        break;
+      endif
+
+      tol = max (abstol, reltol .* abs (q0));
+
+      ## If the global error estimate is met then exit.
+      if (err0 <= tol)
+        q = q0;
+        err = err0;
+        break;
+      endif
 
-  first = true;
-  while (true)
-    ## Quit if any evaluations are not finite (Inf or NaN).
-    if (any (! isfinite (q_subs)))
-      warning (warn_id, "quadgk: non-finite integrand encountered");
-      q = q0;
-      err = err0;
-      break;
-    endif
+      ## Accept the subintervals that meet the convergence criteria.
+      idx = find (abs (q_errs) < tol .* abs (diff (subs, 1, 2)) ./ h);
+      if (first)
+        q = sum (q_subs(idx));
+        err = sum (q_errs(idx));
+        first = false;
+      else
+        q0 = q + sum (q_subs);
+        err0 = err + sum (q_errs);
+        q += sum (q_subs(idx));
+        err += sum (q_errs(idx));
+      endif
+      subs(idx,:) = [];
+
+      ## If no remaining subintervals then exit.
+      if (isempty (subs))
+        break;
+      endif
 
-    tol = max (abstol, reltol .* abs (q0));
+      if (trace)
+        disp ([rows(subs), err, q0]);
+      endif
+
+      ## Split remaining subintervals in two
+      mid = (subs(:,1) + subs(:,2)) ./ 2;
+      subs = [subs(:,1), mid; mid, subs(:,2)];
 
-    ## If the global error estimate is met then exit
-    if (err0 < tol)
-      q = q0;
-      err = err0;
-      break;
+      ## If the maximum subinterval count is met, then
+      ## accept remaining subinterval and exit.
+      if (rows (subs) > maxint)
+        warning (warn_id, "quadgk: maximum interval count (%d) exceeded", maxint);
+        q += sum (q_subs);
+        err += sum (q_errs);
+        break;
+      endif
+
+      ## Evaluation of the integrand on the remaining subintervals
+      [q_subs, q_errs] = __quadgk_eval__ (f, subs, trans);
+    endwhile
+
+    if (nargout < 2 && err > max (abstol, reltol * abs (q)))
+      warning (warn_id,
+               "quadgk: Error tolerance not met.  Estimated error %g", err);
     endif
 
-    ## Accept the subintervals that meet the convergence criteria.
-    idx = find (abs (q_errs) < tol .* abs (diff (subs, [], 2)) ./ h);
-    if (first)
-      q = sum (q_subs(idx));
-      err = sum (q_errs(idx));
-      first = false;
-    else
-      q0 = q + sum (q_subs);
-      err0 = err + sum (q_errs);
-      q += sum (q_subs(idx));
-      err += sum (q_errs(idx));
-    endif
-    subs(idx,:) = [];
+    ## Reverse integral if necessary.
+    q = reverse * q;
+
+  else
+    ## f is array-valued
+    sz = size (f (subs(1)));
+
+    ## Initial evaluation of the integrand on the subintervals
+    [q_subs, q_errs] = __quadgk_eval_array__ (f, subs, trans, prod (sz));
+    q0 = sum (q_subs, 1);
+    err0 = sum (q_errs, 1);
+
+    first = true;
+    while (true)
+      ## Quit if any evaluations are not finite (Inf or NaN).
+      if (any (! isfinite (q_subs)(:)))
+        warning (warn_id, "quadgk: non-finite integrand encountered");
+        q = q0;
+        err = err0;
+        break;
+      endif
+
+      tol = max (abstol, reltol .* abs (q0));
+
+      ## If the global error estimate is met then exit
+      if (err0 <= tol)
+        q = q0;
+        err = err0;
+        break;
+      endif
 
-    ## If no remaining subintervals exit
-    if (rows (subs) == 0)
-      break;
+      ## Accept subintervals that meet the convergence criteria in all entries.
+      idx = find (all (abs (q_errs) < tol .* abs (diff (subs, 1, 2)) ./ h, 2));
+      if (first)
+        q = sum (q_subs(idx,:), 1);
+        err = sum (q_errs(idx,:), 1);
+        first = false;
+      else
+        q0 = q + sum (q_subs, 1);
+        err0 = err + sum (q_errs, 1);
+        q += sum (q_subs(idx,:), 1);
+        err += sum (q_errs(idx,:), 1);
+      endif
+      subs(idx,:) = [];
+
+      ## If no remaining subintervals exit
+      if (isempty (subs))
+        break;
+      endif
+
+      if (trace)
+        disp ([rows(subs), err(1, 1), q0(1, 1)]); # print only first entry
+      endif
+
+      ## Split remaining subintervals in two
+      mid = (subs(:,1) + subs(:,2)) ./ 2;
+      subs = [subs(:,1), mid; mid, subs(:,2)];
+
+      ## If the maximum subinterval count is met accept remaining subinterval
+      ## and exit
+      if (rows (subs) > maxint)
+        warning (warn_id, "quadgk: maximum interval count (%d) exceeded", maxint);
+        q += sum (q_subs, 1);
+        err += sum (q_errs, 1);
+        break;
+      endif
+
+      ## Evaluation of the integrand on the remaining subintervals
+      [q_subs, q_errs] = __quadgk_eval_array__ (f, subs, trans, prod (sz));
+    endwhile
+
+    i = find (err > max (abstol, reltol * abs (q)), 1);
+    if (nargout < 2 && length (i) > 0)
+      ## like ind2sub, only as vector.
+      j = mod (floor ((i-1)./cumprod ([1 sz(1:end-1)])),sz)+1;
+      s = ["(" sprintf("%d,",j)(1:end-1) ")"];
+      warning (warn_id,
+               "quadgk: Error tolerance not met.  First entry at index %s with estimated error %g", s, err(i));
     endif
 
-    if (trace)
-      disp ([rows(subs), err, q0]);
-    endif
-
-    ## Split remaining subintervals in two
-    mid = (subs(:,2) + subs(:,1)) ./ 2;
-    subs = [subs(:,1), mid; mid, subs(:,2)];
-
-    ## If the maximum subinterval count is met accept remaining subinterval
-    ## and exit
-    if (rows (subs) > maxint)
-      warning (warn_id, "quadgk: maximum interval count (%d) exceeded", maxint);
-      q += sum (q_subs);
-      err += sum (q_errs);
-      break;
-    endif
-
-    ## Evaluation of the integrand on the remaining subintervals
-    [q_subs, q_errs] = __quadgk_eval__ (f, subs, eps1, trans);
-  endwhile
-
-  if (err > max (abstol, reltol * abs (q)))
-    warning (warn_id,
-             "quadgk: Error tolerance not met.  Estimated error %g", err);
+    q = reverse * reshape (q, sz);
+    err = reshape (err, sz);
   endif
 
 endfunction
 
-## FIXME: too_close output is never used in function that calls this one.
-function [q, err, too_close] = __quadgk_eval__ (f, subs, eps1, trans)
+function [q, err] = __quadgk_eval__ (f, subs, trans)
 
   ## A (15,7) point pair of Gauss-Kronrod quadrature rules.
   ## The abscissa and weights are copied directly from dqk15w.f from quadpack.
@@ -438,20 +550,11 @@
              0.3818300505051889e+00,  0.2797053914892767e+00, ...
              0.1294849661688697e+00]);
 
-  halfwidth = diff (subs, [], 2) ./ 2;
+  halfwidth = diff (subs, 1, 2) ./ 2;
   center = sum (subs, 2) ./ 2;
   t = (halfwidth * abscissa) + center;
   x = trans ([t(:,1), t(:,end)]);
 
-  ## Shampine suggests 100 * eps1, beginning of section 6.
-  if (any (abs (diff (x, [], 2) ./ max (abs (x), [], 2))) < 100 * eps1)
-    too_close = true;
-    q = 0;
-    err = 0;
-    return;
-  endif
-
-  too_close = false;
   y = reshape (f (t(:)), size (t));
 
   ## This is faster than using bsxfun as the * operator can use a
@@ -461,6 +564,54 @@
 
 endfunction
 
+function [q, err] = __quadgk_eval_array__ (f, subs, trans, nel)
+
+  ## A (15,7) point pair of Gauss-Kronrod quadrature rules.
+  ## The abscissa and weights are copied directly from dqk15w.f from quadpack.
+
+  persistent abscissa = [-0.9914553711208126e+00, -0.9491079123427585e+00, ...
+                         -0.8648644233597691e+00, -0.7415311855993944e+00, ...
+                         -0.5860872354676911e+00, -0.4058451513773972e+00, ...
+                         -0.2077849550078985e+00,  0.0000000000000000e+00, ...
+                          0.2077849550078985e+00,  0.4058451513773972e+00, ...
+                          0.5860872354676911e+00,  0.7415311855993944e+00, ...
+                          0.8648644233597691e+00,  0.9491079123427585e+00, ...
+                          0.9914553711208126e+00];
+
+  persistent weights15 = ...
+            [0.2293532201052922e-01,  0.6309209262997855e-01, ...
+             0.1047900103222502e+00,  0.1406532597155259e+00, ...
+             0.1690047266392679e+00,  0.1903505780647854e+00, ...
+             0.2044329400752989e+00,  0.2094821410847278e+00, ...
+             0.2044329400752989e+00,  0.1903505780647854e+00, ...
+             0.1690047266392679e+00,  0.1406532597155259e+00, ...
+             0.1047900103222502e+00,  0.6309209262997855e-01, ...
+             0.2293532201052922e-01];
+
+  persistent weights7 = ...
+            [0.1294849661688697e+00,  0.2797053914892767e+00, ...
+             0.3818300505051889e+00,  0.4179591836734694e+00, ...
+             0.3818300505051889e+00,  0.2797053914892767e+00, ...
+             0.1294849661688697e+00];
+
+  halfwidth = diff (subs, 1, 2) ./ 2;
+  center = sum (subs, 2) ./ 2;
+  t = (halfwidth * abscissa) + center;
+  x = trans ([t(:,1), t(:,end)]);
+
+  y = zeros (nel, columns(t), rows(t));
+  for i = 1:rows (t)
+    for j = 1:columns(t)
+      y(:,j,i) = f (t(i,j))(:);
+    endfor
+  endfor
+  y = permute (y, [2 3 1]);
+
+  q = reshape (weights15 * y(:,:), [rows(t), nel]) .* halfwidth;
+  err = abs (reshape (weights7 * y(2:2:end,:), rows (t), nel) .* halfwidth - q);
+
+endfunction
+
 function t = __quadgk_finite_waypoint__ (x, a, b)
   c = (-4 .* x + 2.* (b + a)) ./ (b - a);
   k = ((sqrt (c .^ 2 - 4) + c) ./ 2) .^ (1/3);
@@ -469,7 +620,9 @@
 
 
 %!assert (quadgk (@sin,-pi,pi), 0, 1e-10)
-%!assert (quadgk (inline ("sin"),-pi,pi), 0, 1e-10)
+%!test
+%! warning ("off", "Octave:legacy-function", "local");
+%! assert (quadgk (inline ("sin"), -pi, pi), 0, 1e-10);
 %!assert (quadgk ("sin",-pi,pi), 0, 1e-10)
 %!assert (quadgk (@sin,-pi,pi, "WayPoints", 0, "MaxIntervalCount", 100,
 %!                "RelTol", 1e-3, "AbsTol", 1e-6, "trace", false), 0, 1e-6)
@@ -495,6 +648,19 @@
 %! f = @(x) x .^ 5 .* exp (-x) .* sin (x);
 %! assert (quadgk (f, 0, Inf, "RelTol", 1e-8, "AbsTol", 1e-12), -15, -1e-8);
 
+## Test vector-valued functions
+%!assert (quadgk (@(x) [(sin (x)), (sin (2 * x))], 0, pi, "arrayvalued", 1),
+%!        [2, 0], 1e-6)
+
+## Test matrix-valued functions
+%!assert (quadgk (@(x) [ x,x,x; x,1./sqrt(x),x; x,x,x ], 0, 1, "arrayvalued",1),
+%!        [0.5,0.5,0.5; 0.5,2,0.5; 0.5,0.5,0.5], 15*1e-6);
+
+## Bug #62412
+%!warning <Error tolerance not met>
+%! f = @(t) -1 ./ t.^1.1;
+%! quadgk (f, 1, Inf);
+
 ## Test input validation
 %!error quadgk (@sin)
 %!error quadgk (@sin, 0)
--- a/scripts/general/quadl.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/quadl.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,7 +28,7 @@
 ## @deftypefnx {} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol})
 ## @deftypefnx {} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace})
 ## @deftypefnx {} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{})
-## @deftypefnx {} {[@var{q}, @var{nfun}] =} quadl (@dots{})
+## @deftypefnx {} {[@var{q}, @var{nfev}] =} quadl (@dots{})
 ##
 ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b} using
 ## an adaptive @nospell{Lobatto} rule.
@@ -55,7 +55,7 @@
 ##
 ## The result of the integration is returned in @var{q}.
 ##
-## The optional output @var{nfun} indicates the total number of function
+## The optional output @var{nfev} indicates the total number of function
 ## evaluations performed.
 ##
 ## Reference: @nospell{W. Gander and W. Gautschi}, @cite{Adaptive Quadrature -
@@ -72,7 +72,7 @@
 ## 2003-08-05 Shai Ayal
 ##   * permission from author to release as GPL
 
-function [q, nfun] = quadl (f, a, b, tol = [], trace = false, varargin)
+function [q, nfev] = quadl (f, a, b, tol = [], trace = false, varargin)
 
   if (nargin < 3)
     print_usage ();
@@ -97,17 +97,17 @@
   endif
 
   y = feval (f, [a, b], varargin{:});
-  nfun = 1;
+  nfev = 1;
 
   fa = y(1);
   fb = y(2);
 
   h = b - a;
 
-  [q, nfun, hmin] = adaptlobstp (f, a, b, fa, fb, Inf, nfun, abs (h),
+  [q, nfev, hmin] = adaptlobstp (f, a, b, fa, fb, Inf, nfev, abs (h),
                                  tol, trace, varargin{:});
 
-  if (nfun > 10_000)
+  if (nfev > 10_000)
     warning ("quadl: maximum iteration count reached -- possible singular integral");
   elseif (any (! isfinite (q(:))))
     warning ("quadl: infinite or NaN function evaluations were returned");
@@ -117,13 +117,13 @@
 
 endfunction
 
-function [q, nfun, hmin] = adaptlobstp (f, a, b, fa, fb, q0, nfun, hmin,
+function [q, nfev, hmin] = adaptlobstp (f, a, b, fa, fb, q0, nfev, hmin,
                                         tol, trace, varargin)
 
   persistent alpha = sqrt (2/3);
   persistent beta = 1 / sqrt (5);
 
-  if (nfun > 10_000)
+  if (nfev > 10_000)
     q = q0;
     return;
   endif
@@ -136,7 +136,7 @@
   mrr = m + alpha*h;
   x = [mll, ml, m, mr, mrr];
   y = feval (f, x, varargin{:});
-  nfun += 1;
+  nfev += 1;
   fmll = y(1);
   fml  = y(2);
   fm   = y(3);
@@ -150,25 +150,25 @@
   endif
 
   if (trace)
-    disp ([nfun, a, b-a, i1]);
+    disp ([nfev, a, b-a, i1]);
   endif
 
-  ## Force at least one adaptive step (nfun > 2 test).
-  if ((abs (i1-i2) < tol || mll <= a || b <= mrr) && nfun > 2)
+  ## Force at least one adaptive step (nfev > 2 test).
+  if ((abs (i1-i2) < tol || mll <= a || b <= mrr) && nfev > 2)
     q = i1;
   else
     q = zeros (6, 1, class (x));
-    [q(1), nfun, hmin] = adaptlobstp (f, a  , mll, fa  , fmll, q0/6, nfun, hmin,
+    [q(1), nfev, hmin] = adaptlobstp (f, a  , mll, fa  , fmll, q0/6, nfev, hmin,
                                       tol, trace, varargin{:});
-    [q(2), nfun, hmin] = adaptlobstp (f, mll, ml , fmll, fml , q0/6, nfun, hmin,
+    [q(2), nfev, hmin] = adaptlobstp (f, mll, ml , fmll, fml , q0/6, nfev, hmin,
                                       tol, trace, varargin{:});
-    [q(3), nfun, hmin] = adaptlobstp (f, ml , m  , fml , fm  , q0/6, nfun, hmin,
+    [q(3), nfev, hmin] = adaptlobstp (f, ml , m  , fml , fm  , q0/6, nfev, hmin,
                                       tol, trace, varargin{:});
-    [q(4), nfun, hmin] = adaptlobstp (f, m  , mr , fm  , fmr , q0/6, nfun, hmin,
+    [q(4), nfev, hmin] = adaptlobstp (f, m  , mr , fm  , fmr , q0/6, nfev, hmin,
                                       tol, trace, varargin{:});
-    [q(5), nfun, hmin] = adaptlobstp (f, mr , mrr, fmr , fmrr, q0/6, nfun, hmin,
+    [q(5), nfev, hmin] = adaptlobstp (f, mr , mrr, fmr , fmrr, q0/6, nfev, hmin,
                                       tol, trace, varargin{:});
-    [q(6), nfun, hmin] = adaptlobstp (f, mrr, b  , fmrr, fb  , q0/6, nfun, hmin,
+    [q(6), nfev, hmin] = adaptlobstp (f, mrr, b  , fmrr, fb  , q0/6, nfev, hmin,
                                       tol, trace, varargin{:});
     q = sum (q);
   endif
@@ -189,11 +189,11 @@
 
 ## test different tolerances.
 %!test
-%! [q, nfun1] = quadl (@(x) sin (2 + 3*x).^2, 0, 10, 0.5, []);
+%! [q, nfev1] = quadl (@(x) sin (2 + 3*x).^2, 0, 10, 0.5, []);
 %! assert (q, (60 + sin (4) - sin (64))/12, 0.5);
-%! [q, nfun2] = quadl (@(x) sin (2 + 3*x).^2, 0, 10, 0.1, []);
+%! [q, nfev2] = quadl (@(x) sin (2 + 3*x).^2, 0, 10, 0.1, []);
 %! assert (q, (60 + sin (4) - sin (64))/12, 0.1);
-%! assert (nfun2 > nfun1);
+%! assert (nfev2 > nfev1);
 
 %!test  # test single input/output
 %! assert (class (quadl (@sin, 0, 1)), "double");
--- a/scripts/general/quadv.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/quadv.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,7 +28,7 @@
 ## @deftypefnx {} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol})
 ## @deftypefnx {} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace})
 ## @deftypefnx {} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{})
-## @deftypefnx {} {[@var{q}, @var{nfun}] =} quadv (@dots{})
+## @deftypefnx {} {[@var{q}, @var{nfev}] =} quadv (@dots{})
 ##
 ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b}
 ## using an adaptive Simpson's rule.
@@ -57,7 +57,7 @@
 ##
 ## The result of the integration is returned in @var{q}.
 ##
-## The optional output @var{nfun} indicates the total number of function
+## The optional output @var{nfev} indicates the total number of function
 ## evaluations performed.
 ##
 ## Note: @code{quadv} is written in Octave's scripting language and can be
@@ -70,7 +70,7 @@
 ## Algorithm: See https://en.wikipedia.org/wiki/Adaptive_Simpson%27s_method
 ## for basic explanation.  See NOTEs and FIXME for Octave modifications.
 
-function [q, nfun] = quadv (f, a, b, tol = [], trace = false, varargin)
+function [q, nfev] = quadv (f, a, b, tol = [], trace = false, varargin)
 
   if (nargin < 3)
     print_usage ();
@@ -89,7 +89,7 @@
 
   if (trace)
     ## Print column headers once above trace display.
-    printf ("  nfun          a            (b - a)         q_interval\n");
+    printf ("  nfev          a            (b - a)         q_interval\n");
   endif
 
   ## NOTE: Split the interval into 3 parts which avoids problems with periodic
@@ -110,46 +110,46 @@
   fb2 = feval (f, b2, varargin{:});
   fc3 = feval (f, c3, varargin{:});
   fb  = feval (f, b,  varargin{:});
-  nfun = 7;
+  nfev = 7;
 
   ## NOTE: If there are edge singularities, move edge point by eps*(b-a) as
   ## discussed in Shampine paper used to implement quadgk.
   if (any (isinf (fa(:))))
     fa = feval (f, a + eps * (b-a), varargin{:});
-    nfun++;
+    nfev++;
   endif
   if (any (isinf (fb(:))))
     fb = feval (f, b - eps * (b-a), varargin{:});
-    nfun++;
+    nfev++;
   endif
 
   ## Region 1
   h = (b1 - a);
   q1 = h / 6 * (fa + 4*fc1 + fb1);
 
-  [q1, nfun, hmin1] = simpsonstp (f, a, b1, c1, fa, fb1, fc1, q1, tol,
-                                  nfun, abs (h), trace, varargin{:});
+  [q1, nfev, hmin1] = simpsonstp (f, a, b1, c1, fa, fb1, fc1, q1, tol,
+                                  nfev, abs (h), trace, varargin{:});
 
   ## Region 2
   h = (b2 - b1);
   q2 = h / 6 * (fb1 + 4*fc2 + fb2);
 
-  [q2, nfun, hmin2] = simpsonstp (f, b1, b2, c2, fb1, fb2, fc2, q2, tol,
-                                  nfun, abs (h), trace, varargin{:});
+  [q2, nfev, hmin2] = simpsonstp (f, b1, b2, c2, fb1, fb2, fc2, q2, tol,
+                                  nfev, abs (h), trace, varargin{:});
 
   ## Region 3
   h = (b - b2);
   q3 = h / 6 * (fb2 + 4*fc3 + fb);
 
-  [q3, nfun, hmin3] = simpsonstp (f, b2, b, c3, fb2, fb, fc3, q3, tol,
-                                  nfun, abs (h), trace, varargin{:});
+  [q3, nfev, hmin3] = simpsonstp (f, b2, b, c3, fb2, fb, fc3, q3, tol,
+                                  nfev, abs (h), trace, varargin{:});
 
   ## Total integral over all 3 regions and verify results
   q = q1 + q2 + q3;
 
   hmin = min ([hmin1, hmin2, hmin3]);
 
-  if (nfun > 10_000)
+  if (nfev > 10_000)
     warning ("quadv: maximum iteration count reached -- possible singular integral");
   elseif (any (! isfinite (q(:))))
     warning ("quadv: infinite or NaN function evaluations were returned");
@@ -159,10 +159,10 @@
 
 endfunction
 
-function [q, nfun, hmin] = simpsonstp (f, a, b, c, fa, fb, fc, q0, tol,
-                                       nfun, hmin, trace, varargin)
+function [q, nfev, hmin] = simpsonstp (f, a, b, c, fa, fb, fc, q0, tol,
+                                       nfev, hmin, trace, varargin)
 
-  if (nfun > 10_000)   # stop endless recursion
+  if (nfev > 10_000)   # stop endless recursion
     q = q0;
     return;
   endif
@@ -171,7 +171,7 @@
   e = (c + b) / 2;
   fd = feval (f, d, varargin{:});
   fe = feval (f, e, varargin{:});
-  nfun += 2;
+  nfev += 2;
   q1 = (c - a) / 6 * (fa + 4*fd + fc);
   q2 = (b - c) / 6 * (fc + 4*fe + fb);
   q = q1 + q2;
@@ -184,7 +184,7 @@
 
   if (trace)
     printf ("%5d   %#14.11g   %16.10e   %-16.11g\n",
-            nfun,  a,         b-a,      q + delta/15);
+            nfev,  a,         b-a,      q + delta/15);
   endif
 
   ## NOTE: Not vectorizing q-q0 in the norm provides a more rigid criterion
@@ -194,10 +194,10 @@
     ## each bisection interval should use tol/2.  However, Matlab does not
     ## do this, and it would also profoundly increase the number of function
     ## evaluations required.
-    [q1, nfun, hmin] = simpsonstp (f, a, c, d, fa, fc, fd, q1, tol,
-                                   nfun, hmin, trace, varargin{:});
-    [q2, nfun, hmin] = simpsonstp (f, c, b, e, fc, fb, fe, q2, tol,
-                                   nfun, hmin, trace, varargin{:});
+    [q1, nfev, hmin] = simpsonstp (f, a, c, d, fa, fc, fd, q1, tol,
+                                   nfev, hmin, trace, varargin{:});
+    [q2, nfev, hmin] = simpsonstp (f, c, b, e, fc, fb, fe, q2, tol,
+                                   nfev, hmin, trace, varargin{:});
     q = q1 + q2;
   else
     q += delta / 15;   # NOTE: Richardson extrapolation correction
--- a/scripts/general/randi.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/randi.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,11 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} randi (@var{imax})
-## @deftypefnx {} {} randi (@var{imax}, @var{n})
-## @deftypefnx {} {} randi (@var{imax}, @var{m}, @var{n}, @dots{})
-## @deftypefnx {} {} randi ([@var{imin} @var{imax}], @dots{})
-## @deftypefnx {} {} randi (@dots{}, "@var{class}")
+## @deftypefn  {} {@var{R} =} randi (@var{imax})
+## @deftypefnx {} {@var{R} =} randi (@var{imax}, @var{n})
+## @deftypefnx {} {@var{R} =} randi (@var{imax}, @var{m}, @var{n}, @dots{})
+## @deftypefnx {} {@var{R} =} randi ([@var{imin} @var{imax}], @dots{})
+## @deftypefnx {} {@var{R} =} randi (@dots{}, "@var{class}")
 ## Return random integers in the range 1:@var{imax}.
 ##
 ## Additional arguments determine the shape of the return matrix.  When no
@@ -37,7 +37,7 @@
 ## is returned.  Two or more arguments will return a multi-dimensional matrix
 ## @w{(@var{m} x @var{n} x @dots{})}.
 ##
-## The integer range may optionally be described by a two element matrix with a
+## The integer range may optionally be described by a two-element matrix with a
 ## lower and upper bound in which case the returned integers will be on the
 ## interval @w{[@var{imin}, @var{imax}]}.
 ##
@@ -56,10 +56,10 @@
 ## returned by the @code{flintmax} function.  For IEEE floating point numbers
 ## this value is @w{@math{2^{53} - 1}}.
 ##
-## @seealso{rand}
+## @seealso{rand, randn}
 ## @end deftypefn
 
-function ri = randi (bounds, varargin)
+function R = randi (bounds, varargin)
 
   if (nargin < 1)
     print_usage ();
@@ -121,7 +121,7 @@
     r_prim = r_prim(r_prim < K*rng);
   until (numel (r_prim) >= N)           # should practically always be true
 
-  ri = imin + floor (reshape (r_prim(1:N), varargin{:}) / K);
+  R = imin + floor (reshape (r_prim(1:N), varargin{:}) / K);
 
   if (! strcmp (rclass, "double"))
     if (strfind (rclass, "int"))
@@ -141,7 +141,7 @@
                 " Values might be truncated to requested type."]);
     endif
 
-    ri = cast (ri, rclass);
+    R = cast (R, rclass);
   endif
 
 endfunction
@@ -188,9 +188,9 @@
 %! max_single = double (flintmax ("single"));
 
 ## Test that no warning thrown if IMAX is exactly on the limits of the range
-%!function test_no_warning (func, varargin)
+%!function test_no_warning (fcn, varargin)
 %!  lastwarn ("");
-%!  func (varargin{:});
+%!  fcn (varargin{:});
 %!  assert (lastwarn (), "");
 %!endfunction
 %!test test_no_warning (@randi, max_int8, "int8");
--- a/scripts/general/repmat.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/repmat.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,11 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} repmat (@var{A}, @var{m})
-## @deftypefnx {} {} repmat (@var{A}, @var{m}, @var{n})
-## @deftypefnx {} {} repmat (@var{A}, @var{m}, @var{n}, @var{p} @dots{})
-## @deftypefnx {} {} repmat (@var{A}, [@var{m} @var{n}])
-## @deftypefnx {} {} repmat (@var{A}, [@var{m} @var{n} @var{p} @dots{}])
+## @deftypefn  {} {@var{B} =} repmat (@var{A}, @var{m})
+## @deftypefnx {} {@var{B} =} repmat (@var{A}, @var{m}, @var{n})
+## @deftypefnx {} {@var{B} =} repmat (@var{A}, @var{m}, @var{n}, @var{p} @dots{})
+## @deftypefnx {} {@var{B} =} repmat (@var{A}, [@var{m} @var{n}])
+## @deftypefnx {} {@var{B} =} repmat (@var{A}, [@var{m} @var{n} @var{p} @dots{}])
 ## Repeat matrix or N-D array.
 ##
 ## Form a block matrix of size @var{m} by @var{n}, with a copy of matrix
@@ -42,7 +42,7 @@
 ## @seealso{bsxfun, kron, repelems}
 ## @end deftypefn
 
-function x = repmat (A, m, varargin)
+function B = repmat (A, m, varargin)
 
   if (nargin < 2)
     print_usage ();
@@ -107,21 +107,21 @@
   if (numel (A) == 1)
     ## optimize the scalar fill case.
     if (any (idx == 0))
-      x = resize (A, idx);
+      B = resize (A, idx);
     else
-      x(1:prod (idx)) = A;
-      x = reshape (x, idx);
+      B(1:prod (idx)) = A;
+      B = reshape (B, idx);
     endif
   elseif (ndims (A) == 2 && length (idx) < 3)
     if (issparse (A))
-      x = kron (ones (idx), A);
+      B = kron (ones (idx), A);
     else
       ## indexing is now faster, so we use it rather than kron.
       m = rows (A); n = columns (A);
       p = idx(1); q = idx(2);
-      x = reshape (A, m, 1, n, 1);
-      x = x(:, ones (1, p), :, ones (1, q));
-      x = reshape (x, m*p, n*q);
+      B = reshape (A, m, 1, n, 1);
+      B = B(:, ones (1, p), :, ones (1, q));
+      B = reshape (B, m*p, n*q);
     endif
   else
     aidx = size (A);
@@ -138,7 +138,7 @@
     ## add singleton dims
     aaidx(2,:) = 1;
     A = reshape (A, aaidx(:));
-    x = reshape (A (cidx{:}), idx .* aidx);
+    B = reshape (A (cidx{:}), idx .* aidx);
   endif
 
 endfunction
--- a/scripts/general/rng.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/rng.m	Tue Nov 15 13:15:28 2022 -0800
@@ -75,7 +75,7 @@
 ## @seealso{rand, randn}
 ## @end deftypefn
 
-function retval = rng (varargin)
+function s = rng (varargin)
 
   if (nargin > 2)
     print_usage ();
@@ -93,12 +93,12 @@
   ## Type is the generator name.
   ## Seed is the initial seed value.
   ## State is a structure describing internal state of the generator.
-  s = struct ("Type", "twister",
-              "Seed", "Not applicable",
-              "State", {{rand("state"), randn("state")}});
+  srng = struct ("Type", "twister",
+                 "Seed", "Not applicable",
+                 "State", {{rand("state"), randn("state")}});
 
   if (nargin == 0)
-    retval = s;
+    s = srng;
     return;
   endif
 
@@ -135,7 +135,7 @@
 
   ## Set the type of random number generator and seed it
   if (isempty (generator))
-    generator = s.Type;
+    generator = srng.Type;
   endif
   switch (generator)
     case "twister"
@@ -158,7 +158,7 @@
   endswitch
 
   if (nargout > 0)
-    retval = s;
+    s = srng;
   endif
 
 endfunction
--- a/scripts/general/rot90.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/rot90.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} rot90 (@var{A})
-## @deftypefnx {} {} rot90 (@var{A}, @var{k})
+## @deftypefn  {} {@var{B} =} rot90 (@var{A})
+## @deftypefnx {} {@var{B} =} rot90 (@var{A}, @var{k})
 ## Rotate array by 90 degree increments.
 ##
 ## Return a copy of @var{A} with the elements rotated counterclockwise in
--- a/scripts/general/rotdim.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/rotdim.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} rotdim (@var{x})
-## @deftypefnx {} {} rotdim (@var{x}, @var{n})
-## @deftypefnx {} {} rotdim (@var{x}, @var{n}, @var{plane})
-## Return a copy of @var{x} with the elements rotated counterclockwise in
+## @deftypefn  {} {@var{B} =} rotdim (@var{A})
+## @deftypefnx {} {@var{B} =} rotdim (@var{A}, @var{n})
+## @deftypefnx {} {@var{B} =} rotdim (@var{A}, @var{n}, @var{plane})
+## Return a copy of @var{A} with the elements rotated counterclockwise in
 ## 90-degree increments.
 ##
 ## The second argument @var{n} is optional, and specifies how many 90-degree
@@ -63,7 +63,7 @@
 ## @seealso{rot90, fliplr, flipud, flip}
 ## @end deftypefn
 
-function y = rotdim (x, n, plane)
+function B = rotdim (A, n, plane)
 
   if (nargin < 1)
     print_usage ();
@@ -77,8 +77,8 @@
     n = 1;
   endif
 
-  nd = ndims (x);
-  sz = size (x);
+  nd = ndims (A);
+  sz = size (A);
   if (nargin < 3)
     if (nd > 2)
       ## Find the first two non-singleton dimension.
@@ -105,7 +105,7 @@
     if (! (isvector (plane) && length (plane) == 2
            && all (plane == fix (plane)) && all (plane > 0)
            && all (plane < (nd + 1)) && plane(1) != plane(2)))
-      error ("rotdim: PLANE must be a 2 element integer vector defining a valid PLANE");
+      error ("rotdim: PLANE must be a 2-element integer vector defining a valid plane");
     endif
   endif
 
@@ -114,21 +114,19 @@
     n += 4;
   endif
   if (n == 0)
-    y = x;
+    B = A;
   elseif (n == 2)
-    y = flip (flip (x, plane(1)), plane(2));
+    B = flip (flip (A, plane(1)), plane(2));
   elseif (n == 1 || n == 3)
     perm = 1:nd;
     perm(plane(1)) = plane(2);
     perm(plane(2)) = plane(1);
-    y = permute (x, perm);
+    B = permute (A, perm);
     if (n == 1)
-      y = flip (y, min (plane));
+      B = flip (B, min (plane));
     else
-      y = flip (y, max (plane));
+      B = flip (B, max (plane));
     endif
-  else
-    error ("rotdim: internal error!");
   endif
 
 endfunction
--- a/scripts/general/shift.m	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-########################################################################
-##
-## Copyright (C) 1995-2022 The Octave Project Developers
-##
-## See the file COPYRIGHT.md in the top-level directory of this
-## distribution or <https://octave.org/copyright/>.
-##
-## This file is part of Octave.
-##
-## Octave is free software: you can redistribute it and/or modify it
-## under the terms of the GNU General Public License as published by
-## the Free Software Foundation, either version 3 of the License, or
-## (at your option) any later version.
-##
-## Octave is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with Octave; see the file COPYING.  If not, see
-## <https://www.gnu.org/licenses/>.
-##
-########################################################################
-
-## -*- texinfo -*-
-## @deftypefn  {} {} shift (@var{x}, @var{b})
-## @deftypefnx {} {} shift (@var{x}, @var{b}, @var{dim})
-## If @var{x} is a vector, perform a circular shift of length @var{b} of
-## the elements of @var{x}.
-##
-## If @var{x} is a matrix, do the same for each column of @var{x}.
-##
-## If the optional @var{dim} argument is given, operate along this dimension.
-## @end deftypefn
-
-function y = shift (x, b, dim)
-
-  if (nargin < 2)
-    print_usage ();
-  endif
-
-  if (numel (x) < 1)
-    error ("shift: X must not be empty");
-  elseif (! (isscalar (b) && b == fix (b)))
-    error ("shift: B must be an integer");
-  endif
-
-  nd = ndims (x);
-  sz = size (x);
-
-  if (nargin == 3)
-    if (!(isscalar (dim) && dim == fix (dim))
-        || !(1 <= dim && dim <= nd))
-      error ("shift: DIM must be an integer and a valid dimension");
-    endif
-  else
-    ## Find the first non-singleton dimension.
-    (dim = find (sz > 1, 1)) || (dim = 1);
-  endif
-
-  d = sz(dim);
-
-  idx = repmat ({':'}, nd, 1);
-  if (b > 0)
-    b = rem (b, d);
-    idx{dim} = [d-b+1:d, 1:d-b];
-  elseif (b < 0)
-    b = rem (abs (b), d);
-    idx{dim} = [b+1:d, 1:b];
-  endif
-
-  y = x(idx{:});
-
-endfunction
-
-
-%!test
-%! a = [1, 2, 3];
-%! b = [4, 5, 6];
-%! c = [7, 8, 9];
-%!
-%! r = [a, b, c];
-%! m = [a; b; c];
-%!
-%! assert (shift (r, 0), r);
-%! assert (shift (r, 3), [c, a, b]);
-%! assert (shift (r, -6), [c, a, b]);
-%! assert (shift (r, -3), [b, c, a]);
-%! assert (shift (m, 1), [c; a; b]);
-%! assert (shift (m, -2), [c; a; b]);
-
-## Test input validation
-%!error <Invalid call> shift ()
-%!error <Invalid call> shift (1)
-%!error <X must not be empty> shift ([], 1)
-%!error <B must be an integer> shift (ones (2), ones (2))
-%!error <B must be an integer> shift (ones (2), 1.5)
-%!error <DIM must be an integer> shift (1, 1, 1.5)
-%!error <DIM must be .* a valid dimension> shift (1, 1, 0)
-%!error <DIM must be .* a valid dimension> shift (1, 1, 3)
--- a/scripts/general/structfun.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/structfun.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,16 +24,16 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} structfun (@var{func}, @var{S})
-## @deftypefnx {} {[@var{A}, @dots{}] =} structfun (@dots{})
-## @deftypefnx {} {} structfun (@dots{}, "ErrorHandler", @var{errfunc})
-## @deftypefnx {} {} structfun (@dots{}, "UniformOutput", @var{val})
+## @deftypefn  {} {@var{A} =} structfun (@var{fcn}, @var{S})
+## @deftypefnx {} {@var{A} =} structfun (@dots{}, "ErrorHandler", @var{errfcn})
+## @deftypefnx {} {@var{A} =} structfun (@dots{}, "UniformOutput", @var{val})
+## @deftypefnx {} {[@var{A}, @var{B}, @dots{}] =} structfun (@dots{})
 ##
 ## Evaluate the function named @var{name} on the fields of the structure
-## @var{S}.  The fields of @var{S} are passed to the function @var{func}
+## @var{S}.  The fields of @var{S} are passed to the function @var{fcn}
 ## individually.
 ##
-## @code{structfun} accepts an arbitrary function @var{func} in the form of an
+## @code{structfun} accepts an arbitrary function @var{fcn} in the form of an
 ## inline function, function handle, or the name of a function (in a character
 ## string).  In the case of a character string argument, the function must
 ## accept a single argument named @var{x}, and it must return a string value.
@@ -57,16 +57,16 @@
 ## @end group
 ## @end example
 ##
-## Given the parameter @qcode{"ErrorHandler"}, @var{errfunc} defines a function
-## to call in case @var{func} generates an error.  The form of the function is
+## Given the parameter @qcode{"ErrorHandler"}, @var{errfcn} defines a function
+## to call in case @var{fcn} generates an error.  The form of the function is
 ##
 ## @example
-## function [@dots{}] = errfunc (@var{se}, @dots{})
+## function [@dots{}] = errfcn (@var{se}, @dots{})
 ## @end example
 ##
 ## @noindent
-## where there is an additional input argument to @var{errfunc} relative to
-## @var{func}, given by @nospell{@var{se}}.  This is a structure with the
+## where there is an additional input argument to @var{errfcn} relative to
+## @var{fcn}, given by @nospell{@var{se}}.  This is a structure with the
 ## elements @qcode{"identifier"}, @qcode{"message"} and @qcode{"index"},
 ## giving respectively the error identifier, the error message, and the index
 ## into the input arguments of the element that caused the error.  For an
@@ -75,7 +75,7 @@
 ## @seealso{cellfun, arrayfun, spfun}
 ## @end deftypefn
 
-function varargout = structfun (func, S, varargin)
+function varargout = structfun (fcn, S, varargin)
 
   if (nargin < 2)
     print_usage ();
@@ -105,7 +105,7 @@
   endif
 
   varargout = cell (max ([nargout, 1]), 1);
-  [varargout{:}] = cellfun (func, struct2cell (S), varargin{:});
+  [varargout{:}] = cellfun (fcn, struct2cell (S), varargin{:});
 
   if (! uniform_output)
     varargout = cellfun ("cell2struct", varargout, {fieldnames(S)}, {1}, ...
--- a/scripts/general/triplequad.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/general/triplequad.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb})
-## @deftypefnx {} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol})
-## @deftypefnx {} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf})
-## @deftypefnx {} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}, @dots{})
+## @deftypefn  {} {@var{q} =} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb})
+## @deftypefnx {} {@var{q} =} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol})
+## @deftypefnx {} {@var{q} =} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf})
+## @deftypefnx {} {@var{q} =} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}, @dots{})
 ## Numerically evaluate the triple integral of @var{f}.
 ##
 ## @var{f} is a function handle, inline function, or string containing the name
@@ -90,6 +90,6 @@
 %!assert (triplequad (@(x,y,z) exp (-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadcc), pi^(3/2) * erf (1).^3, 1e-6)
 
 ## These tests are too expensive to run normally (~30 sec each).  Disable them
-#%!assert (triplequad (@(x,y,z) exp (-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadgk), pi^(3/2) * erf (1).^3, 1e-6)
-#%!#assert (triplequad (@(x,y,z) exp (-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadl), pi^(3/2) * erf (1).^3, 1e-6)
-#%!#assert (triplequad (@(x,y,z) exp (-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadv), pi^(3/2) * erf (1).^3, 1e-6)
+%!#assert (triplequad (@(x,y,z) exp (-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadgk), pi^(3/2) * erf (1).^3, 1e-6)
+%!#assert (triplequad (@(x,y,z) exp (-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadl), pi^(3/2) * erf (1).^3, 1e-6)
+%!#assert (triplequad (@(x,y,z) exp (-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadv), pi^(3/2) * erf (1).^3, 1e-6)
--- a/scripts/geometry/delaunayn.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/geometry/delaunayn.m	Tue Nov 15 13:15:28 2022 -0800
@@ -68,6 +68,12 @@
     print_usage ();
   endif
 
+  ## NOTE: varargin options input validation is performed in __delaunayn__
+  if ((! isnumeric (pts)) || (ndims (pts) > 2))
+    error ("delaunayn: input PTS must be a 2-dimensional numeric array");
+  endif
+
+  ## Perform delaunay calculation using either default or specified options
   if (isempty (varargin) || isempty (varargin{1}))
     try
       T = __delaunayn__ (pts);
@@ -82,49 +88,98 @@
     T = __delaunayn__ (pts, varargin{:});
   endif
 
-  if (isa (pts, "single"))
-    tol = 1e3 * eps ("single");
-  else
-    tol = 1e3 * eps;
-  endif
+  ## Begin check for and removal of trivial simplices
+  if (! isequal (T, 0))  # skip trivial simplex check if no simplexes
+
+    if (isa (pts, "single"))
+      tol = 1e3 * eps ("single");
+    else
+      tol = 1e3 * eps;
+    endif
+
+    ## Try to remove the ~zero volume simplices.  The volume of the i-th simplex
+    ## is given by abs(det(pts(T(i,2:end),:)-pts(T(i,1),:)))/factorial(ndim+1)
+    ## (reference http://en.wikipedia.org/wiki/Simplex).  Any simplex with a
+    ## relative volume less than some arbitrary criteria is rejected.  The
+    ## criteria we use is the volume of a simplex corresponding to an
+    ## orthogonal simplex (rectangle, rectangular prism, etc.) with edge lengths
+    ## equal to the common-origin edge lengths of the original simplex.  If the
+    ## relative volume is 1e3*eps then the simplex is rejected.  Note division
+    ## of the two volumes means that the factor factorial(ndim+1) is dropped
+    ## from volume calculations.
+
+    [nt, nd] = size (T);  # nt = simplex count, nd = # of simplex points
+    dim = nd - 1;
+
+    ## Calculate common origin edge vectors for each simplex (p2-p1,p3-p1,...)
+    ## Store in 3-D array such that:
+    ## rows = nt simplexes, cols = coordinates, pages = simplex edges
+    edge_vecs =  permute (reshape (pts(T(:, 2:nd), :).', [dim, nt, dim]), ...
+                          [2, 1, 3]) - pts(T(:, 1), :, ones (1, 1, dim));
+
+    ## Calculate orthogonal simplex volumes for comparison
+    orthog_simplex_vols = sqrt (prod (sumsq (edge_vecs, 2), 3));
+
+    ## Calculate simplex volumes according to problem dimension
+    if (nd == 3)
+      ## 2-D: area = cross product of triangle edge vectors
+      vol = edge_vecs(:,1,1) .* edge_vecs(:,2,2) ...
+            - edge_vecs(:,1,2) .* edge_vecs(:,2,1);
 
-  ## Try to remove the zero volume simplices.  The volume of the i-th simplex is
-  ## given by abs(det(pts(T(i,1:end-1),:)-pts(T(i,2:end),:)))/factorial(ndim+1)
-  ## (reference http://en.wikipedia.org/wiki/Simplex).  Any simplex with a
-  ## relative volume less than some arbitrary criteria is rejected.  The
-  ## criteria we use is the volume of the simplex corresponding to an
-  ## orthogonal simplex is equal edge length all equal to the edge length of
-  ## the original simplex.  If the relative volume is 1e3*eps then the simplex
-  ## is rejected.  Note division of the two volumes means that the factor
-  ## factorial(ndim+1) is dropped.
-  [nt, nd] = size (T);
-  if (nd == 3)
-    ## 2-D case
-    np = rows (pts);
-    ptsz = [pts, zeros(np, 1)];
-    p1 = ptsz(T(:,1), :);
-    p2 = ptsz(T(:,2), :);
-    p3 = ptsz(T(:,3), :);
-    p12 = p1 - p2;
-    p23 = p2 - p3;
-    det = cross (p12, p23, 2);
-    idx = abs (det (:,3) ./ sqrt (sumsq (p12, 2))) < tol & ...
-          abs (det (:,3) ./ sqrt (sumsq (p23, 2))) < tol;
-  else
-    ## FIXME: Vectorize this for loop or convert delaunayn to .oct function
-    idx = [];
-    for i = 1:nt
-      X = pts(T(i,1:end-1),:) - pts(T(i,2:end),:);
-      if (abs (det (X)) / sqrt (sumsq (X, 2)) < tol)
-        idx(end+1) = i;
-      endif
-    endfor
+    elseif (nd == 4)
+      ## 3-D: vol = scalar triple product [a.(b x c)]
+      vol = edge_vecs(:,1,1) .* ...
+              (edge_vecs(:,2,2) .* edge_vecs(:,3,3) - ...
+                edge_vecs(:,3,2) .* edge_vecs(:,2,3)) ...
+            - edge_vecs(:,2,1) .* ...
+              (edge_vecs(:,1,2) .* edge_vecs(:,3,3) - ...
+                edge_vecs(:,3,2) .* edge_vecs(:,1,3)) ...
+            + edge_vecs(:,3,1) .* ...
+              (edge_vecs(:,1,2) .* edge_vecs(:,2,3) - ...
+                edge_vecs(:,2,2) .* edge_vecs(:,1,3));
+
+    else
+      ## 1-D and >= 4-D: simplex 'volume' proportional to det|edge_vecs|
+
+      ## FIXME: Vectorize this for n-D inputs without excessive memory impact
+      ## over __delaunayn__ itself, or move simplex checking into __delaunayn__;
+      ## perhaps with an optimized page-wise determinant.
+      ## See bug #60818 for speed/memory improvement attempts and concerns.
+      vol = zeros (nt, 1);
+
+      ## Reshape so det can operate in dim 1&2
+      edge_vecs = permute (edge_vecs, [3, 2, 1]);
+
+      ## Calculate determinant for arbitrary problem dimension
+      for ii = 1:nt
+        vol(ii) = det (edge_vecs(:, :, ii));
+      endfor
+    endif
+
+    ## Mark simplices with relative volume < tol for removal
+    idx = (abs ((vol) ./ orthog_simplex_vols)) < tol;
+
+    ## Remove trivially small simplexes from T
+    T(idx, :) = [];
+
+    ## Ensure CCW node order for consistent outward normal (bug #53397)
+    ## simplest method of maintaining positive unit normal direction is to
+    ## reverse order of two nodes; this preserves 'nice' monotonic descending
+    ## node 1 ordering.  Currently ignores 1-D cases for compatibility.
+    if (dim > 1 && any (negvol = (vol(! idx) < 0)))
+      T(negvol, [2, 3]) = T(negvol, [3, 2]);
+    endif
+
   endif
-  T(idx,:) = [];
-
 endfunction
 
 
+## Test 1-D input
+%!testif HAVE_QHULL
+%! assert (sortrows (sort (delaunayn ([1;2]), 2)), [1, 2]);
+%! assert (sortrows (sort (delaunayn ([1;2;3]), 2)), [1, 2; 2, 3]);
+
+## Test 2-D input
 %!testif HAVE_QHULL
 %! x = [-1, 0; 0, 1; 1, 0; 0, -1; 0, 0];
 %! assert (sortrows (sort (delaunayn (x), 2)), [1,2,5;1,4,5;2,3,5;3,4,5]);
@@ -135,7 +190,52 @@
 %! assert (sortrows (sort (delaunayn ([x(:) y(:) z(:)]), 2)),
 %!         [1,2,3,4;1,2,4,5]);
 
-## FIXME: Need tests for delaunayn
+## 3-D test with trivial simplex removal
+%!testif HAVE_QHULL
+%! x = [0 0 0; 0 0 1; 0 1 0; 1 0 0; 0 1 1; 1 0 1; 1 1 0; 1 1 1; 0.5 0.5 0.5];
+%! T = sortrows (sort (delaunayn (x), 2));
+%! assert (rows (T), 12);
+
+## 4-D single simplex test
+%!testif HAVE_QHULL
+%! x = [0 0 0 0; 1 0 0 0; 1 1 0 0; 0 0 1 0; 0 0 0 1];
+%! T = sort (delaunayn (x), 2);
+%! assert (T, [1 2 3 4 5]);
+
+## 4-D two simplices test
+%!testif HAVE_QHULL
+%! x = [0 0 0 0; 1 0 0 0; 1 1 0 0; 0 0 1 0; 0 0 0 1; 0 0 0 2];
+%! T = sortrows (sort (delaunayn (x), 2));
+%! assert (rows (T), 2);
+%! assert (T, [1 2 3 4 5; 2 3 4 5 6]);
+
+## Test negative simplex produce positive normals
+## 2-D test
+%!testif HAVE_QHULL <*53397>
+%! x = [-1, 0; 0, 1; 1, 0; 0, -1; 0, 0];
+%! y = delaunayn (x);
+%! edges = permute (reshape (x(y(:, 2:end), :).', [2, 4, 2]), [2, 1, 3]) - ...
+%!         x(y(:, 1), :, ones (1, 1, 2));
+%! vol = edges(:,1,1) .* edges(:,2,2) - edges(:,1,2) .* edges(:,2,1);
+%! assert (all (vol >= 0));
+
+## 3-D test
+%!testif HAVE_QHULL <*53397>
+%! x = [[-1, -1, 1, 0, -1]',[-1, 1, 1, 0, -1]',[0, 0, 0, 1, 1]'];
+%! y = delaunayn (x);
+%! edges = permute (reshape (x(y(:, 2:end), :).', [3, 2, 3]), [2, 1, 3]) - ...
+%!         x(y(:, 1), :, ones (1, 1, 3));
+%! vol = edges(:,1,1) .* ...
+%!            (edges(:,2,2) .* edges(:,3,3) - edges(:,3,2) .* edges(:,2,3)) ...
+%!       - edges(:,2,1) .* ...
+%!            (edges(:,1,2) .* edges(:,3,3) - edges(:,3,2) .* edges(:,1,3)) ...
+%!       + edges(:,3,1) .* ...
+%!            (edges(:,1,2) .* edges(:,2,3) - edges(:,2,2) .* edges(:,1,3));
+%! assert (all (vol >= 0));
 
 ## Input validation tests
 %!error <Invalid call> delaunayn ()
+%!error <input PTS must be> delaunayn ("abc")
+%!error <input PTS must be> delaunayn ({1})
+%!error <input PTS must be> delaunayn (true)
+%!error <input PTS must be> delaunayn (ones (3,3,3))
--- a/scripts/geometry/griddata.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/geometry/griddata.m	Tue Nov 15 13:15:28 2022 -0800
@@ -83,8 +83,9 @@
   endif
 
   if (nargin > 6)
-    ## Current 2D implementation has nargin max = 6, since no triangulation
-    ## options are passed to the 2D algorithm. 3D algorithm requires nargin >=7
+    ## Current 2-D implementation has nargin max = 6, since no triangulation
+    ## options are passed to the 2-D algorithm.
+    ## 3-D algorithm requires nargin >=7.
 
     if (nargout > 1)
       error ("griddata: only one output argument valid for 3-D interpolation");
@@ -92,7 +93,7 @@
     rx = griddata3 (x, y, z, varargin{:});
 
   else
-    ## for nargin 5 or 6, assign varargin terms to variables for 2D algorithm
+    ## for nargin 5 or 6, assign varargin terms to variables for 2-D algorithm
     xi = varargin{1};
     yi = varargin{2};
 
--- a/scripts/geometry/inpolygon.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/geometry/inpolygon.m	Tue Nov 15 13:15:28 2022 -0800
@@ -141,7 +141,7 @@
 %! assert (in, [true, true, false]);
 %! assert (on, [true, false, false]);
 
-## 3D array input
+## 3-D array input
 %!test
 %! x = zeros (2, 2, 2);
 %! x(1, 1, 1) = 1;
--- a/scripts/gui/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -36,6 +36,7 @@
   %reldir%/uicontrol.m \
   %reldir%/uigetdir.m \
   %reldir%/uigetfile.m \
+  %reldir%/uifigure.m \
   %reldir%/uimenu.m \
   %reldir%/uipanel.m \
   %reldir%/uipushtool.m \
--- a/scripts/gui/private/__is_function__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/private/__is_function__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,13 +24,14 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{result} =} __is_function__ (@var{func})
-## Undocumented internal function.
+## @deftypefn {} {@var{tf} =} __is_function__ (@var{fcn})
+## Return true if @var{fcn} is an m-file function, @file{.oct} or @file{.mex}
+## function, or a built-in function.
 ## @end deftypefn
 
-function result = __is_function__ (func)
+function tf = __is_function__ (fcn)
 
-  existval = exist (func);
-  result = (existval == 2 || existval == 3 || existval == 5);
+  existval = exist (fcn);
+  tf = (existval == 2 || existval == 3 || existval == 5);
 
 endfunction
--- a/scripts/gui/uibuttongroup.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uibuttongroup.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,12 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{hui} =} uibuttongroup (@var{property}, @var{value}, @dots{})
+## @deftypefn  {} {@var{hui} =} uibuttongroup ()
+## @deftypefnx {} {@var{hui} =} uibuttongroup (@var{property}, @var{value}, @dots{})
+## @deftypefnx {} {@var{hui} =} uibuttongroup (@var{parent})
 ## @deftypefnx {} {@var{hui} =} uibuttongroup (@var{parent}, @var{property}, @var{value}, @dots{})
+## @c FIXME: 3rd form is not documented by Matlab nor implemented in Octave.
+## @c        Should it be removed?  (1/9/2022).
 ## @deftypefnx {} {} uibuttongroup (@var{h})
 ##
 ## Create a uibuttongroup object and return a handle to it.
--- a/scripts/gui/uicontrol.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uicontrol.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{hui} =} uicontrol (@var{property}, @var{value}, @dots{})
+## @deftypefn  {} {@var{hui} =} uicontrol ()
+## @deftypefnx {} {@var{hui} =} uicontrol (@var{property}, @var{value}, @dots{})
+## @deftypefnx {} {@var{hui} =} uicontrol (@var{parent})
 ## @deftypefnx {} {@var{hui} =} uicontrol (@var{parent}, @var{property}, @var{value}, @dots{})
 ## @deftypefnx {} {} uicontrol (@var{h})
 ##
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/gui/uifigure.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,81 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn  {} {@var{h} =} uifigure ()
+## @deftypefnx {} {@var{h} =} uifigure ("@var{property}", @var{value}, @dots{})
+## Create a new figure window for applications.
+##
+## Multiple property-value pairs may be specified for the figure object, but
+## they must occur in pairs.
+##
+## The return value @var{h} is a graphics handle to the created figure object.
+##
+## Programming Note: The full list of properties is documented at
+## @ref{Figure Properties}.  This function differs from @code{figure} in that
+## the created figure is optimized for application development, rather than
+## plotting.  This means features such as menubars and toolbars are turned off.
+## @seealso{uipanel, uibuttongroup}
+## @end deftypefn
+
+## FIXME: This is not a perfect replica of a Matlab uifigure object because
+## some ordinary figure object properties are exposed (e.g., the "PaperXXX"
+## properties).  In addition, the following properties are missing:
+## "AutoResizeChildren", "Icon", "Scrollable".
+
+function h = uifigure (varargin)
+
+  if (mod (nargin, 2) != 0)
+    error ("uifigure: PROPERTY/VALUE parameters must occur in pairs");
+  endif
+
+  h = __go_figure__ (NaN, "handlevisibility", "off",
+                          "numbertitle", "off", "integerhandle", "off",
+                          "menubar", "none", "toolbar", "none");
+
+  ## Add uifigure-specific properties on top of regular figure graphics object
+  ## FIXME: There is no implementation behind these properties.
+  addproperty ("AutoResizeChildren", h, "boolean", "on");
+  addproperty ("Scrollable", h, "boolean", "off");
+
+  ## Apply any overrides.
+  if (! isempty (varargin))
+    set (h, varargin{:});
+  endif
+
+endfunction
+
+
+%!test
+%! hf = uifigure ("visible", "off");
+%! unwind_protect
+%!   assert (isfigure (hf));
+%!   assert (get (hf, {"numbertitle", "menubar", "scrollable"}),
+%!                    {"off", "none", "off"});
+%! unwind_protect_cleanup
+%!   close (hf);
+%! end_unwind_protect
+
+%!error <parameters must occur in pairs> uifigure ("PROP1")
--- a/scripts/gui/uigetfile.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uigetfile.m	Tue Nov 15 13:15:28 2022 -0800
@@ -41,7 +41,7 @@
 ## If a filename is given then the file extension is extracted and used as
 ## filter.  In addition, the path is selected as current path in the dialog and
 ## the filename is selected as default file.
-## Example: @code{uigetfile ("myfun.m")}
+## Example: @code{uigetfile ("myfcn.m")}
 ##
 ## @item A single file extension @qcode{"*.ext"}
 ## Example: @code{uigetfile ("*.ext")}
--- a/scripts/gui/uimenu.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uimenu.m	Tue Nov 15 13:15:28 2022 -0800
@@ -35,37 +35,40 @@
 ##
 ## @table @asis
 ## @item @qcode{"accelerator"}
-## A string containing the key combination together with CTRL to execute this
+## A string containing the key, together with CTRL, to execute this
 ## menu entry (e.g., @qcode{"x"} for CTRL+x).
 ##
-## @item @qcode{"callback"}
-## Is the function called when this menu entry is executed.  It can be either a
-## function string (e.g., @qcode{"myfun"}), a function handle (e.g., @@myfun)
-## or a cell array containing the function handle and arguments for the
-## callback function (e.g., @{@@myfun, arg1, arg2@}).
-##
 ## @item @qcode{"checked"}
 ## Can be set @qcode{"on"} or @qcode{"off"}.  Sets a mark at this menu entry.
 ##
 ## @item @qcode{"enable"}
-## Can be set @qcode{"on"} or @qcode{"off"}.  If disabled the menu entry
-## cannot be selected and it is grayed out.
+## Can be set @qcode{"on"} or @qcode{"off"}.  If disabled then the menu entry
+## cannot be selected and is grayed out.
 ##
 ## @item @qcode{"foregroundcolor"}
-## A color value setting the text color for this menu entry.
+## A color value for the text of the menu entry.
 ##
-## @item @qcode{"label"}
-## A string containing the label for this menu entry.  A @qcode{"&"}-symbol
-## can be used to mark the @qcode{"accelerator"} character (e.g.,
-## @nospell{@qcode{"E&xit"}})
+## @item @qcode{"menuselectedfcn"}
+## The function called when this menu entry is executed.  It can be either a
+## function string (e.g., @qcode{"@nospell{myfcn}"}), a function handle (e.g.,
+## @@@nospell{myfcn}) or a cell array containing the function handle and
+## arguments for the callback function (e.g., @{@@@nospell{myfcn}, arg1,
+## arg2@}).
 ##
 ## @item @qcode{"position"}
-## An scalar value containing the relative menu position.  The entry with the
-## lowest value is at the first position starting from left or top.
+## A scalar value containing the relative menu position.  The first position
+## has value 1 and will be either the left or top depending on the orientation
+## of the uimenu.
 ##
 ## @item @qcode{"separator"}
-## Can be set @qcode{"on"} or @qcode{"off"}.  If enabled it draws a separator
-## line above the current position.  It is ignored for top level entries.
+## Can be set @qcode{"on"} or @qcode{"off"}.  If enabled, a separator
+## line is drawn above the current position.  This property is ignored for
+## top-level entries.
+##
+## @item @qcode{"text"}
+## A string containing the text for this menu entry.  A @qcode{"&"}-symbol
+## can be used to mark the @qcode{"accelerator"} character (e.g.,
+## @nospell{@qcode{"E&xit"}}).
 ##
 ## @end table
 ##
@@ -75,12 +78,12 @@
 ##
 ## @example
 ## @group
-## f = uimenu ("label", "&File", "accelerator", "f");
-## e = uimenu ("label", "&Edit", "accelerator", "e");
-## uimenu (f, "label", "Close", "accelerator", "q", ...
-##            "callback", "close (gcf)");
-## uimenu (e, "label", "Toggle &Grid", "accelerator", "g", ...
-##            "callback", "grid (gca)");
+## f = uimenu ("text", "&File", "accelerator", "f");
+## e = uimenu ("text", "&Edit", "accelerator", "e");
+## uimenu (f, "text", "Close", "accelerator", "q", ...
+##            "menuselectedfcn", "close (gcf)");
+## uimenu (e, "text", "Toggle &Grid", "accelerator", "g", ...
+##            "menuselectedfcn", "grid (gca)");
 ## @end group
 ## @end example
 ## @seealso{figure}
@@ -91,10 +94,10 @@
   [h, args] = __uiobject_split_args__ ("uimenu", varargin,
                                        {"figure", "uicontextmenu", "uimenu"});
 
-  tmp = __go_uimenu__ (h, args{:});
+  htmp = __go_uimenu__ (h, args{:});
 
   if (nargout > 0)
-    hui = tmp;
+    hui = htmp;
   endif
 
 endfunction
@@ -105,18 +108,20 @@
 %! surfl (peaks);
 %! colormap (copper (64));
 %! shading ('interp');
-%! f = uimenu ('label', '&File', 'accelerator', 'f');
-%! e = uimenu ('label', '&Edit', 'accelerator', 'e');
-%! uimenu (f, 'label', 'Close', 'accelerator', 'q', 'callback', 'close (gcf)');
-%! uimenu (e, 'label', 'Toggle &Grid', 'accelerator', 'g', 'callback', 'grid (gca)');
+%! f = uimenu ('text', '&File', 'accelerator', 'f');
+%! e = uimenu ('text', '&Edit', 'accelerator', 'e');
+%! uimenu (f, 'text', 'Close', 'accelerator', 'q', ...
+%!            'menuselectedfcn', 'close (gcf)');
+%! uimenu (e, 'text', 'Toggle &Grid', 'accelerator', 'g', ...
+%!            'menuselectedfcn', 'grid (gca)');
 
 %!testif HAVE_OPENGL, HAVE_QT; have_window_system () && any (strcmp ("qt", available_graphics_toolkits ()))
 %! toolkit = graphics_toolkit ("qt");
 %! hf = figure ("visible", "off");
 %! unwind_protect
-%!   ui = uimenu ("label", "mylabel");
+%!   ui = uimenu ("text", "mytext");
 %!   assert (findobj (hf, "type", "uimenu"), ui);
-%!   assert (get (ui, "label"), "mylabel");
+%!   assert (get (ui, "text"), "mytext");
 %!   assert (get (ui, "checked"), "off");
 %!   assert (get (ui, "separator"), "off");
 %!   assert (get (ui, "enable"), "on");
@@ -131,9 +136,9 @@
 %! toolkit = graphics_toolkit ("qt");
 %! hf = figure ("visible", "off");
 %! unwind_protect
-%!   uif = findall (hf, "label", "&file");
+%!   uif = findall (hf, "text", "&file");
 %!   assert (ishghandle (uif));
-%!   uie = findall (hf, "label", "&edit");
+%!   uie = findall (hf, "text", "&edit");
 %!   assert (ishghandle (uie));
 %! unwind_protect_cleanup
 %!   close (hf);
@@ -144,8 +149,8 @@
 %! toolkit = graphics_toolkit ("qt");
 %! hf = figure ("visible", "off");
 %! unwind_protect
-%!   uie = findall (hf, "label", "&edit");
-%!   myui = uimenu (uie, "label", "mylabel");
+%!   uie = findall (hf, "text", "&edit");
+%!   myui = uimenu (uie, "text", "mytext");
 %!   assert (ancestor (myui, "uimenu", "toplevel"), uie);
 %! unwind_protect_cleanup
 %!   close (hf);
--- a/scripts/gui/uipanel.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uipanel.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} uipanel (@var{property}, @var{value}, @dots{})
-## @deftypefnx {} {} uipanel (@var{parent}, @var{property}, @var{value}, @dots{})
-## @deftypefnx {} {@var{hui} =} uipanel (@dots{})
+## @deftypefn  {} {@var{hui} =} uipanel ()
+## @deftypefnx {} {@var{hui} =} uipanel (@var{property}, @var{value}, @dots{})
+## @deftypefnx {} {@var{hui} =} uipanel (@var{parent})
+## @deftypefnx {} {@var{hui} =} uipanel (@var{parent}, @var{property}, @var{value}, @dots{})
 ##
 ## Create a uipanel object.
 ##
--- a/scripts/gui/uipushtool.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uipushtool.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} uipushtool (@var{property}, @var{value}, @dots{})
+## @deftypefn  {} {} uipushtool ()
+## @deftypefnx {} {} uipushtool (@var{property}, @var{value}, @dots{})
+## @deftypefnx {} {} uipushtool (@var{parent})
 ## @deftypefnx {} {} uipushtool (@var{parent}, @var{property}, @var{value}, @dots{})
-## @deftypefnx {} {@var{hui} =} uipushtool (@dots{})
 ##
 ## Create a uipushtool object.
 ##
--- a/scripts/gui/uiputfile.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uiputfile.m	Tue Nov 15 13:15:28 2022 -0800
@@ -37,7 +37,8 @@
 ## @item @qcode{"/path/to/filename.ext"}
 ## If a filename is given the file extension is extracted and used as filter.
 ## In addition the path is selected as current path in the dialog and the
-## filename is selected as default file.  Example: @code{uiputfile ("myfun.m")}
+## filename is selected as default file.  Example:
+## @code{uiputfile ("myfcn.m")}
 ##
 ## @item @qcode{"*.ext"}
 ## A single file extension.
--- a/scripts/gui/uitoggletool.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uitoggletool.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} uitoggletool (@var{property}, @var{value}, @dots{})
-## @deftypefnx {} {} uitoggletool (@var{parent}, @var{property}, @var{value}, @dots{})
-## @deftypefnx {} {@var{hui} =} uitoggletool (@dots{})
+## @deftypefn  {} {@var{hui} =} uitoggletool ()
+## @deftypefnx {} {@var{hui} =} uitoggletool (@var{property}, @var{value}, @dots{})
+## @deftypefnx {} {@var{hui} =} uitoggletool (@var{parent})
+## @deftypefnx {} {@var{hui} =} uitoggletool (@var{parent}, @var{property}, @var{value}, @dots{})
 ##
 ## Create a uitoggletool object.
 ##
--- a/scripts/gui/uitoolbar.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/uitoolbar.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} uitoolbar (@var{property}, @var{value}, @dots{})
-## @deftypefnx {} {} uitoolbar (@var{parent}, @var{property}, @var{value}, @dots{})
-## @deftypefnx {} {@var{hui} =} uitoolbar (@dots{})
+## @deftypefn  {} {@var{hui} =} uitoolbar ()
+## @deftypefnx {} {@var{hui} =} uitoolbar (@var{property}, @var{value}, @dots{})
+## @deftypefnx {} {@var{hui} =} uitoolbar (@var{parent})
+## @deftypefnx {} {@var{hui} =} uitoolbar (@var{parent}, @var{property}, @var{value}, @dots{})
 ##
 ## Create a uitoolbar object.  A uitoolbar displays uitoggletool and uipushtool
 ## buttons.
--- a/scripts/gui/waitbar.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/waitbar.m	Tue Nov 15 13:15:28 2022 -0800
@@ -139,7 +139,7 @@
     ## Add createcancelbtn property
     addproperty ("createcancelbtn", hf, "figurebuttondownfcn");
     ## FIXME: Can't add listener because of bug #55963.
-    #addlistener (hf, "createcancelbtn", {@updatecancelbutton, ax});
+    ## addlistener (hf, "createcancelbtn", {@updatecancelbutton, ax});
 
     if (! isempty (varargin))
       set (hf, varargin{:});
--- a/scripts/gui/waitforbuttonpress.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/gui/waitforbuttonpress.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} waitforbuttonpress ()
-## @deftypefnx {} {@var{b} =} waitforbuttonpress ()
+## @deftypefn {} {@var{b} =} waitforbuttonpress ()
 ## Wait for mouse click or key press over the current figure window.
 ##
 ## The return value of @var{b} is 0 if a mouse button was pressed or 1 if a
--- a/scripts/help/__makeinfo__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/help/__makeinfo__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -101,7 +101,15 @@
   endif
   ## Texinfo crashes if @end tex does not appear first on the line.
   text = regexprep (text, '^ +@end tex', '@end tex', 'lineanchors');
-  text = regexprep (text, '@seealso', '@xseealso');
+  ## Replace @seealso with Octave specific @xseealso macro, and escape '@'
+  [s, e] = regexp (text, '@seealso{[^}]*}');
+  cum_rep = 0;
+  for (i_match = 1:numel (s))
+    esc_text = strrep (text(((s(i_match)+8:e(i_match))+i_match-1)+cum_rep), '@', '@@');
+    text = [text(1:s(i_match)+i_match+cum_rep-1), 'xseealso', esc_text, ...
+            text(e(i_match)+1+i_match+cum_rep-1:end)];
+    cum_rep += numel (esc_text) - (e(i_match)-(s(i_match)+8)+1);
+  endfor
 
   ## We don't want *ref macros to clutter plain text output with "Note ..."
   if (strcmp (output_type, "plain text"))
--- a/scripts/help/doc_cache_create.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/help/doc_cache_create.m	Tue Nov 15 13:15:28 2022 -0800
@@ -147,8 +147,8 @@
   endif
 
   ## create cache
-  func = @(s_) create_cache (__list_functions__ (s_));
-  cache = cellfun (func, directory, "UniformOutput", false);
+  f_lsfcn = @(dir) create_cache (__list_functions__ (dir));
+  cache = cellfun (f_lsfcn, directory, "UniformOutput", false);
 
   ## concatenate results
   cache = [cache{:}];
--- a/scripts/help/get_first_help_sentence.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/help/get_first_help_sentence.m	Tue Nov 15 13:15:28 2022 -0800
@@ -181,8 +181,8 @@
 endfunction
 
 
-%!assert (get_first_help_sentence ('get_first_help_sentence'), ...
-%!        "Return the first sentence of a function's help text.")
+%!assert (regexp (get_first_help_sentence ('get_first_help_sentence'), ...
+%!                "Return the first sentence of a function.s help text\."))
 
 %!assert (get_first_help_sentence ('get_first_help_sentence', 28), ...
 %!        "Return the first sentence...")
--- a/scripts/help/help.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/help/help.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,6 +28,7 @@
 ## @deftypefnx {} {} help --list
 ## @deftypefnx {} {} help .
 ## @deftypefnx {} {} help
+## @deftypefnx {} {@var{help_text} =} help (@dots{})
 ## Display the help text for @var{name}.
 ##
 ## For example, the command @kbd{help help} prints a short message describing
--- a/scripts/help/private/__additional_help_message__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/help/private/__additional_help_message__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __additional_help_message__ ()
+## @deftypefn {} {@var{msg} =} __additional_help_message__ ()
 ## Undocumented internal function.
 ## @end deftypefn
 
--- a/scripts/help/warning_ids.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/help/warning_ids.m	Tue Nov 15 13:15:28 2022 -0800
@@ -178,6 +178,13 @@
 ## different file target than the programmer intended is being used.
 ## By default, the @code{Octave:data-file-in-path} warning is enabled.
 ##
+## @item Octave:datevec:date-format-spec
+## If the @code{Octave:datevec:date-format-spec} warning is enabled, a warning
+## is printed if the date format specification contains questionable date or
+## time specifiers.  Typical bad patterns are using uppercase date specifiers
+## or lowercase time specifiers.
+## By default, the @code{Octave:datevec:date-format-spec} warning is enabled.
+##
 ## @item Octave:deprecated-function
 ## If the @code{Octave:deprecated-function} warning is enabled, a
 ## warning is issued when Octave encounters a function that is obsolete and
@@ -359,6 +366,11 @@
 ## By default, the @code{Octave:possible-matlab-short-circuit-operator} warning
 ## is enabled.
 ##
+## @item Octave:pow2:imaginary-ignored
+## If the @code{Octave:pow2:imaginary-ignored} warning is enabled, a warning is
+## printed if either input to @code{pow2} is complex.
+## By default, the @code{Octave:pow2:imaginary-ignored} warning is enabled.
+##
 ## @item Octave:recursive-path-search
 ## If the @code{Octave:recursive-path-search} warning is enabled, Octave
 ## will issue a warning if @code{addpath} is used with double trailing
--- a/scripts/image/cubehelix.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/cubehelix.m	Tue Nov 15 13:15:28 2022 -0800
@@ -87,7 +87,7 @@
 endfunction
 
 
-## A better demo of this colormap would be a 3D plot in NTSC instead of
+## A better demo of this colormap would be a 3-D plot in NTSC instead of
 ## RGB values.  That would really show what this colormap is about.
 %!demo
 %! ## Show the 'cubehelix' colormap profile and as an image
--- a/scripts/image/hsv.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/hsv.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} hsv (@var{n})
+## @deftypefn  {} {@var{map} =} hsv ()
+## @deftypefnx {} {@var{map} =} hsv (@var{n})
 ## Create color colormap.  This colormap begins with red, changes through
 ## yellow, green, cyan, blue, and magenta, before returning to red.
 ##
--- a/scripts/image/im2double.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/im2double.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,20 +24,19 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} im2double (@var{img})
-## @deftypefnx {} {} im2double (@var{img}, "indexed")
+## @deftypefn  {} {@var{dimg} =} im2double (@var{img})
+## @deftypefnx {} {@var{dimg} =} im2double (@var{img}, "indexed")
 ## Convert image to double precision.
 ##
-## The conversion of @var{img} to double precision, is dependent
-## on the type of input image.  The following input classes are
-## supported:
+## The conversion of @var{img} to double precision, is dependent on the type of
+## input image.  The following input classes are supported:
 ##
 ## @table @samp
 ## @item uint8, uint16, and int16
 ## The range of values from the class is scaled to the interval [0 1].
 ##
 ## @item logical
-## True and false values are assigned a value of 0 and 1 respectively.
+## True and false values are assigned a value of 1 and 0 respectively.
 ##
 ## @item single
 ## Values are cast to double.
@@ -47,15 +46,15 @@
 ##
 ## @end table
 ##
-## If @var{img} is an indexed image, then the second argument should be
-## the string @qcode{"indexed"}.  If so, then @var{img} must either be
-## of floating point class, or unsigned integer class and it will simply
-## be cast to double.  If it is an integer class, a +1 offset is applied.
+## If @var{img} is an indexed image, then the second argument should be the
+## string @qcode{"indexed"}.  If so, then @var{img} must either be of floating
+## point class, or unsigned integer class and it will simply be cast to double.
+## If it is an integer class, an offset of +1 is applied.
 ##
 ## @seealso{double}
 ## @end deftypefn
 
-function img = im2double (img, im_type)
+function dimg = im2double (img, im_type)
 
   if (nargin < 1)
     print_usage ();
@@ -64,12 +63,12 @@
   if (nargin == 1)
     ## "normal" (non-indexed) images
     switch (class (img))
-      case "uint8",   img = double (img) / 255;
-      case "uint16",  img = double (img) / 65535;
-      case "int16",   img = (double (img) + 32768) / 65535;
-      case "single",  img = double (img);
-      case "logical", img = double (img);
-      case "double",  # do nothing
+      case "uint8",   dimg = double (img) / 255;
+      case "uint16",  dimg = double (img) / 65535;
+      case "int16",   dimg = (double (img) + 32768) / 65535;
+      case "single",  dimg = double (img);
+      case "logical", dimg = double (img);
+      case "double",  dimg = img;
       otherwise, error ('im2double: IMG is of unsupported class "%s"', class (img));
     endswitch
   else
@@ -77,9 +76,9 @@
     if (! strcmpi (im_type, "indexed"))
       error ('im2double: second input argument must be the string "indexed"');
     elseif (any (isa (img, {"uint8", "uint16"})))
-      img = double (img) + 1;
+      dimg = double (img) + 1;
     elseif (isfloat (img) || isbool (img))
-      img = double (img);
+      dimg = double (img);
     else
       ## Technically, it could also be of logical class and we do not
       ## enforce positive integers for floating for Matlab compatibility.
--- a/scripts/image/im2frame.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/im2frame.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} im2frame (@var{rgb})
-## @deftypefnx {} {} im2frame (@var{x}, @var{map})
+## @deftypefn  {} {@var{frame} =} im2frame (@var{rgb})
+## @deftypefnx {} {@var{frame} =} im2frame (@var{x}, @var{map})
 ## Convert image to movie frame.
 ##
 ## A movie frame is simply a struct with the fields @qcode{"cdata"} and
--- a/scripts/image/iscolormap.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/iscolormap.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} iscolormap (@var{cmap})
+## @deftypefn {} {@var{tf} =} iscolormap (@var{cmap})
 ## Return true if @var{cmap} is a colormap.
 ##
 ## A colormap is a real matrix, of class single or double, with 3 columns.
@@ -38,15 +38,14 @@
 ## @seealso{colormap, rgbplot}
 ## @end deftypefn
 
-function retval = iscolormap (cmap)
+function tf = iscolormap (cmap)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = (isnumeric (cmap) && isreal (cmap)
-            && ndims (cmap) == 2 && columns (cmap) == 3
-            && isfloat (cmap));
+  tf = isnumeric (cmap) && isreal (cmap) && isfloat (cmap) ...
+       && ndims (cmap) == 2 && columns (cmap) == 3;
 
 endfunction
 
--- a/scripts/image/movie.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/movie.m	Tue Nov 15 13:15:28 2022 -0800
@@ -103,7 +103,7 @@
   if (nargin > 1)
     n = varargin{2};
     if (! isindex (abs (n(1))))
-      error ("movie: N must be a non-zero integer");
+      error ("movie: N must be a nonzero integer");
     endif
 
     if (! isscalar (n))
@@ -249,9 +249,9 @@
 %!error <MOV must be a frame struct array> movie ({2})
 %!error <MOV must contain at least two frames>
 %! movie (struct ("cdata", [], "colormap", []));
-%!error <N must be a non-zero integer>
+%!error <N must be a nonzero integer>
 %! movie (struct ("cdata", {[], []}, "colormap", []), 2.3);
-%!error <N must be a non-zero integer>
+%!error <N must be a nonzero integer>
 %! movie (struct ("cdata", {[], []}, "colormap", []), [2.3 -6]);
 %!error <All elements N\(2:end\) must be valid indices into the MOV struct>
 %! movie (struct ("cdata", {[], []}, "colormap", []), [1 -1]);
--- a/scripts/image/private/__imread__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/private/__imread__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -61,7 +61,7 @@
     if (sum (idx) > 1)
       error ("imread: Index or Frames may only be specified once");
     endif
-    val = varargin{shift (idx, 1)};
+    val = varargin{circshift (idx, 1)};
     if (! is_valid_index_option (val) && ! strcmpi (val, "all"))
       error ("imread: %s must be a vector or the string 'all'", varargin{idx});
     endif
--- a/scripts/image/private/colorspace_conversion_input_check.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/private/colorspace_conversion_input_check.m	Tue Nov 15 13:15:28 2022 -0800
@@ -29,7 +29,7 @@
 ## by the complementary private function colorspace_conversion_revert()
 
 function [in_arg, sz, is_im, is_nd] ...
-            = colorspace_conversion_input_check (func, arg_name, in_arg)
+            = colorspace_conversion_input_check (fcn, arg_name, in_arg)
 
   cls = class (in_arg);
   sz = size (in_arg);
@@ -38,11 +38,11 @@
   if (! iscolormap (in_arg))
     if (! any (strcmp (cls, {"uint8", "int8", "int16", "uint16", ...
                              "single", "double"})))
-      error ("%s: %s of invalid data type '%s'", func, arg_name, cls);
+      error ("%s: %s of invalid data type '%s'", fcn, arg_name, cls);
     elseif (size (in_arg, 3) != 3)
-      error ("%s: %s must be a colormap or %s image", func, arg_name, arg_name);
+      error ("%s: %s must be a colormap or %s image", fcn, arg_name, arg_name);
     elseif (! isreal (in_arg) || ! isnumeric (in_arg))
-      error ("%s: %s must be numeric and real", func, arg_name);
+      error ("%s: %s must be numeric and real", fcn, arg_name);
     endif
     is_im = true;
 
@@ -60,7 +60,7 @@
       is_nd = true;
       in_arg = permute (in_arg, [1 2 4 3]);
     elseif (nd > 4)
-      error ("%s: invalid %s with more than 4 dimensions", func, arg_name);
+      error ("%s: invalid %s with more than 4 dimensions", fcn, arg_name);
     endif
     in_arg = reshape (in_arg, [numel(in_arg)/3 3]);
   else
--- a/scripts/image/private/imageIO.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/private/imageIO.m	Tue Nov 15 13:15:28 2022 -0800
@@ -35,8 +35,8 @@
 ##
 ## Usage:
 ##
-## func      - Function name to use on error message.
-## core_func - Function handle for the default function to use if we can't
+## fcn       - Function name to use on error message.
+## core_fcn  - Function handle for the default function to use if we can't
 ##             find the format in imformats.
 ## fieldname - Name of the field in the struct returned by imformats that
 ##             has the function to use.
@@ -46,7 +46,7 @@
 ## varargin  - Followed by all the OTHER arguments passed to imread and
 ##             imfinfo.
 
-function varargout = imageIO (func, core_func, fieldname, filename, varargin)
+function varargout = imageIO (fcn, core_fcn, fieldname, filename, varargin)
 
   ## First thing: figure out the filename and possibly download it.
   ## The first attempt is to try the filename and see if it exists.  If it
@@ -77,7 +77,7 @@
   endif
 
   if (isempty (fn))
-    error ([func ": unable to find file '" filename "'"]);
+    error ([fcn ": unable to find file '" filename "'"]);
   endif
 
   ## unwind_protect block because we may have a file to remove in the end
@@ -89,7 +89,7 @@
     ## try to guess the format from the file extension.  Finally, if
     ## we still don't know the format, we use the Octave core functions
     ## which is the same for all formats.
-    foo = []; # the function we will use
+    hfcn = []; # the function we will use
 
     ## We check if the call to imformats (ext) worked using
     ## "numfields (fmt) > 0 because when it fails, the returned
@@ -99,13 +99,13 @@
     if (! isempty (varargin) && ischar (varargin{1}))
       fmt = imformats (varargin{1});
       if (numfields (fmt) > 0)
-        foo = fmt.(fieldname);
+        hfcn = fmt.(fieldname);
         varargin(1) = []; # remove format name from arguments
       endif
     endif
 
     ## try extension from filename
-    if (isempty (foo))
+    if (isempty (hfcn))
       [~, ~, ext] = fileparts (fn);
       if (! isempty (ext))
         ## remove dot from extension
@@ -113,16 +113,16 @@
       endif
       fmt = imformats (ext);
       if (numfields (fmt) > 0)
-        foo = fmt.(fieldname);
+        hfcn = fmt.(fieldname);
       endif
     endif
 
     ## use the core function
-    if (isempty (foo))
-      foo = core_func;
+    if (isempty (hfcn))
+      hfcn = core_fcn;
     endif
 
-    [varargout{1:nargout}] = foo (fn, varargin{:});
+    [varargout{1:nargout}] = hfcn (fn, varargin{:});
 
   unwind_protect_cleanup
     if (file_2_delete)
--- a/scripts/image/private/ind2x.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/private/ind2x.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,9 +28,9 @@
 function [x, map] = ind2x (caller, x, map)
 
   ## Check if X is an indexed image.
-  ## An indexed image is defined has having only 2D, and that's how Matlab
-  ## behaves.  But we want to support ND images, so we will allow up to 4D
-  ## and check that the 3rd dimension is a singleton.
+  ## An indexed image is defined has having only 2 dimensions, and that's how
+  ## Matlab behaves.  But we want to support N-D images, so we will allow up to
+  ## 4-D and check that the 3rd dimension is a singleton.
   if (all (ndims (x) != [2 4]) || size (x, 3) != 1
       || iscomplex (x) || issparse (x)
       || ! (isfloat (x) && all (x(:) == fix (x(:)))
--- a/scripts/image/spinmap.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/image/spinmap.m	Tue Nov 15 13:15:28 2022 -0800
@@ -56,7 +56,7 @@
 
   t0 = clock ();
   while (etime (clock (), t0) < t)
-    cmap = shift (cmap, inc, 1);
+    cmap = circshift (cmap, inc, 1);
     set (gcf (), "colormap", cmap);
     drawnow ();
   endwhile
--- a/scripts/io/importdata.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/io/importdata.m	Tue Nov 15 13:15:28 2022 -0800
@@ -316,7 +316,7 @@
         ## FIXME: This code should be redundant because dlmread was called
         ##        with "emptyval", NA.  Delete if there are no problems
         ##        detected after some time.  Commented out: 5/23/2020.
-        ##output.data(ridx, (col+1):end) = NA;
+        ## output.data(ridx, (col+1):end) = NA;
         missing_idx = missing_idx(1:col);
       endif
       text = fields(missing_idx);
--- a/scripts/io/is_valid_file_id.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/io/is_valid_file_id.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,23 +24,23 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} is_valid_file_id (@var{fid})
+## @deftypefn {} {@var{tf} =} is_valid_file_id (@var{fid})
 ## Return true if @var{fid} refers to an open file.
 ## @seealso{freport, fopen}
 ## @end deftypefn
 
-function retval = is_valid_file_id (fid)
+function tf = is_valid_file_id (fid)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = false;
+  tf = false;
 
   try
     if (isscalar (fid))
       [file, mode, arch] = fopen (fid);
-      retval = ! isempty (file);
+      tf = ! isempty (file);
     endif
   end_try_catch
 
--- a/scripts/java/javachk.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/java/javachk.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} javachk (@var{feature})
-## @deftypefnx {} {} javachk (@var{feature}, @var{caller})
-## @deftypefnx {} {@var{msg} =} javachk (@dots{})
+## @deftypefn  {} {@var{msg} =} javachk (@var{feature})
+## @deftypefnx {} {@var{msg} =} javachk (@var{feature}, @var{caller})
 ## Check for the presence of the Java @var{feature} in the current session.
 ## Return an error structure if @var{feature} is not available, not enabled,
 ## or not recognized.
--- a/scripts/java/org/octave/ClassHelper.java	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/java/org/octave/ClassHelper.java	Tue Nov 15 13:15:28 2022 -0800
@@ -677,28 +677,28 @@
       {
         if (expType.equals (Integer.TYPE) || expType.equals (Integer.class))
           {
-            return new Integer (((Number) obj).intValue ());
+            return Integer.valueOf (((Number) obj).intValue ());
           }
         else if (expType.equals (Double.TYPE) || expType.equals (Double.class))
           {
-            return new Double (((Number) obj).doubleValue ());
+            return Double.valueOf (((Number) obj).doubleValue ());
           }
         else if (expType.equals (Short.TYPE) || expType.equals (Short.class))
           {
-            return new Short (((Number) obj).shortValue ());
+            return Short.valueOf (((Number) obj).shortValue ());
           }
         else if (expType.equals (Long.TYPE) || expType.equals (Long.class))
           {
-            return new Long (((Number) obj).longValue ());
+            return Long.valueOf (((Number) obj).longValue ());
           }
         else if (expType.equals (Float.TYPE) || expType.equals (Float.class))
           {
-            return new Float (((Number) obj).floatValue ());
+            return Float.valueOf (((Number) obj).floatValue ());
           }
       }
     else if (isBooleanClass (expType))
       {
-        return new Boolean (((Number) obj).intValue () != 0);
+        return Boolean.valueOf (((Number) obj).intValue () != 0);
       }
     else if (isCharClass (expType))
       {
@@ -707,7 +707,7 @@
           {
             throw new ClassCastException ("cannot cast " + s + " to character");
           }
-        return new Character (s.charAt (0));
+        return Character.valueOf (s.charAt (0));
       }
     else if (expType.isArray () && type.isArray ())
       {
--- a/scripts/java/usejava.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/java/usejava.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} usejava (@var{feature})
+## @deftypefn {} {@var{tf} =} usejava (@var{feature})
 ## Return true if the Java element @var{feature} is available.
 ##
 ## Possible features are:
@@ -52,32 +52,32 @@
 ## @seealso{javachk}
 ## @end deftypefn
 
-function retval = usejava (feature)
+function tf = usejava (feature)
 
   if (nargin < 1 || ! ischar (feature))
     print_usage ();
   endif
 
-  retval = false;
+  tf = false;
 
   switch (feature)
     ## For each feature, try methods() on a Java class of a feature
     case "awt"
       try
         dum = methods ("java.awt.Frame");
-        retval = ! javaMethod ("isHeadless", "java.awt.GraphicsEnvironment");
+        tf = ! javaMethod ("isHeadless", "java.awt.GraphicsEnvironment");
       end_try_catch
     case "desktop"
-      ## Octave has no Java based GUI/desktop, leave retval = false
+      ## Octave has no Java based GUI/desktop, leave tf = false
     case "jvm"
       try
         dum = methods ("java.lang.Runtime");
-        retval = true;
+        tf = true;
       end_try_catch
     case "swing"
       try
         dum = methods ("javax.swing.Popup");
-        retval = ! javaMethod ("isHeadless", "java.awt.GraphicsEnvironment");
+        tf = ! javaMethod ("isHeadless", "java.awt.GraphicsEnvironment");
       end_try_catch
     otherwise
       error ("usejava: unrecognized FEATURE '%s'", feature);
--- a/scripts/legacy/@inline/argnames.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/@inline/argnames.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,18 +24,17 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} argnames (@var{fun})
+## @deftypefn {} {@var{args} =} argnames (@var{fobj})
 ## Return a cell array of character strings containing the names of the
-## arguments of the inline function @var{fun}.
-## @seealso{inline, formula, vectorize}
+## arguments of the inline function object @var{fobj}.
+##
+## Programming Note: @code{symvar (@var{fobj})} is equivalent to
+## @code{argnames (@var{fobj})}.
+## @seealso{symvar, formula, vectorize, inline}
 ## @end deftypefn
 
-function args = argnames (obj)
+function args = argnames (fobj)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  args = obj.args;
+  args = fobj.args;
 
 endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/legacy/@inline/cat.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,39 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {} cat (@var{fobj1}, @var{dots})
+## Concatenate inline function objects.
+##
+## Concatenating inline function objects is @strong{not} possible;
+## Octave emits an error if this function is called.
+## @seealso{inline}
+## @end deftypefn
+
+function cat (varargin)
+
+  error ("@inline/cat: concatenating inline function objects is not possible");
+
+endfunction
--- a/scripts/legacy/@inline/char.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/@inline/char.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,20 +24,17 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} char (@var{fun})
-## Return a character string representing the inline function @var{fun}.
+## @deftypefn {} {@var{fcnstr} =} char (@var{fobj})
+## Return a character string representing the inline function object
+## @var{fobj}.
 ##
-## Note that @code{char (@var{fun})} is equivalent to
-## @code{formula (@var{fun})}.
-## @seealso{char, argnames, inline, vectorize}
+## Programming Note: @code{char (@var{fobj})} is equivalent to
+## @code{formula (@var{fobj})}.
+## @seealso{formula, argnames, vectorize, inline}
 ## @end deftypefn
 
-function expr = char (obj)
+function fcnstr = char (fobj)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  expr = obj.expr;
+  fcnstr = fobj.expr;
 
 endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/legacy/@inline/disp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,42 @@
+########################################################################
+##
+## Copyright (C) 2017-2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {} disp (@var{fobj})
+## Display an @code{inline} function object.
+## @seealso{display}
+## @end deftypefn
+
+function disp (fobj)
+
+  disp ("inline function object:");
+  ## FIXME: inputname doesn't work with @class methods
+  ## str = inputname (1);
+  ## args = strjoin (fobj.args, ',');
+  ## str = [str '(' args ')' " = " fobj.expr];
+  ## disp (str);
+  disp (formula (fobj));
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/legacy/@inline/exist.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,37 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {@var{C} =} exist (@var{fobj})
+## Return code 1 indicating @var{fobj} is an Octave variable.
+##
+## @seealso{inline}
+## @end deftypefn
+
+function retval = exist (fobj)
+
+  retval = 1;
+
+endfunction
--- a/scripts/legacy/@inline/feval.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/@inline/feval.m	Tue Nov 15 13:15:28 2022 -0800
@@ -23,14 +23,8 @@
 ##
 ########################################################################
 
-function retval = feval (fcn, varargin)
+function retval = feval (fobj, varargin)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  fh = eval (sprintf ("@(%s) %s", strjoin (fcn.args, ","), fcn.expr));
-
-  retval = fh (varargin{:});
+  retval = fobj.fh (varargin{:});
 
 endfunction
--- a/scripts/legacy/@inline/formula.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/@inline/formula.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,20 +24,16 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} formula (@var{fun})
-## Return a character string representing the inline function @var{fun}.
+## @deftypefn {} {@var{fcnstr} =} formula (@var{fobj})
+## Return a character string representing the inline function @var{fobj}.
 ##
-## Note that @code{char (@var{fun})} is equivalent to
-## @code{formula (@var{fun})}.
-## @seealso{char, argnames, inline, vectorize}
+## Programming Note: @code{char (@var{fobj})} is equivalent to
+## @code{formula (@var{fobj})}.
+## @seealso{char, argnames, vectorize, inline}
 ## @end deftypefn
 
-function expr = formula (obj)
+function fcnstr = formula (obj)
 
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  expr = obj.expr;
+  fcnstr = obj.expr;
 
 endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/legacy/@inline/horzcat.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,39 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {} horzcat (@var{fobj1}, @var{dots})
+## Horizontally concatenate inline function objects.
+##
+## Concatenating inline function objects is @strong{not} possible;
+## Octave emits an error if this function is called.
+## @seealso{inline}
+## @end deftypefn
+
+function horzcat (varargin)
+
+  error ("@inline/horzcat: concatenating inline function objects is not possible");
+
+endfunction
--- a/scripts/legacy/@inline/inline.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/@inline/inline.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,20 +24,20 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} inline (@var{str})
-## @deftypefnx {} {} inline (@var{str}, @var{arg1}, @dots{})
-## @deftypefnx {} {} inline (@var{str}, @var{n})
+## @deftypefn  {} {@var{fobj} =} inline (@var{str})
+## @deftypefnx {} {@var{fobj} =} inline (@var{str}, @var{arg1}, @dots{})
+## @deftypefnx {} {@var{fobj} =} inline (@var{str}, @var{n})
 ##
 ## This function is obsolete.  Use anonymous functions
 ## (@pxref{Anonymous Functions}) instead.
 ##
-## Create an inline function from the character string @var{str}.
+## Create an inline function object from the character string @var{str}.
 ##
 ## If called with a single argument, the arguments of the generated
 ## function are extracted from the function itself.  The generated
 ## function arguments will then be in alphabetical order.  It should be
 ## noted that i and j are ignored as arguments due to the ambiguity
-## between their use as a variable or their use as an built-in constant.
+## between their use as a variable and their use as an built-in constant.
 ## All arguments followed by a parenthesis are considered to be
 ## functions.  If no arguments are found, a function taking a single
 ## argument named @code{x} will be created.
@@ -55,7 +55,7 @@
 ## @seealso{argnames, formula, vectorize, str2func}
 ## @end deftypefn
 
-function obj = inline (expr, varargin)
+function fobj = inline (expr, varargin)
 
   persistent warned = false;
   if (! warned)
@@ -97,13 +97,16 @@
 
   p.expr = expr;
   p.args = args(:);
-  p.numArgs = numel (args);
+  p.nargs = numel (args);
+  p.fh = eval (sprintf ("@(%s) %s", strjoin (args(:), ","), expr));
+
+  ## FIXME: Do we need these parts of inline struct anymore (4/6/22)?
   tmp = [args; num2cell(1:numel(args))];
   p.inputExpr = sprintf ("%s = INLINE_INPUTS_{%d}; ", tmp{:});
   p.isEmpty = false;
   p.version = 1;
 
-  obj = __inline_ctor__ (p);
+  fobj = __inline_ctor__ (p);
 
 endfunction
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/legacy/@inline/nargin.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,37 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {@var{n} =} nargin (@var{fobj})
+## Return the number of input arguments for the inline function object
+## @var{fobj}.
+## @seealso{nargout, argnames, inline}
+## @end deftypefn
+
+function n = nargin (fobj)
+
+  n = fobj.nargs;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/legacy/@inline/nargout.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,40 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {@var{n} =} nargout (@var{fobj})
+## Return the number of output arguments for the inline function object
+## @var{fobj}.
+##
+## Programming Note: The return value is always 1 because @code{inline}
+## function objects only support one output.
+## @seealso{nargin, inline}
+## @end deftypefn
+
+function n = nargout (fobj)
+
+  n = 1;
+
+endfunction
--- a/scripts/legacy/@inline/subsref.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/@inline/subsref.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,11 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{value} =} subsref (@var{fcn}, @var{idx})
-## Perform subscripted function call on the inline function object @var{fcn}.
+## @deftypefn {} {@var{value} =} subsref (@var{fobj}, @var{idx})
+## Perform subscripted function call on the inline function object @var{fobj}.
 ## @end deftypefn
 
-function retval = subsref (fcn, idx)
+function retval = subsref (fobj, idx)
 
   if (nargin != 2)
     print_usage ();
@@ -41,9 +41,9 @@
   if (strcmp (idx(1).type, "()"))
     args = idx.subs;
     if (numel (args) > 0)
-      retval = feval (fcn, args{:});
+      retval = feval (fobj, args{:});
     else
-      retval = feval (fcn);
+      retval = feval (fobj);
     endif
   else
     error ("@inline/subsref: invalid subscript type");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/legacy/@inline/symvar.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,40 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {@var{args} =} symvar (@var{fobj})
+## Return a cell array of character strings containing the names of the
+## arguments of the inline function object @var{fobj}.
+##
+## Programming Note: @code{symvar (@var{fobj})} is equivalent to
+## @code{argnames (@var{fobj})}.
+## @seealso{argnames, formula, vectorize, inline}
+## @end deftypefn
+
+function args = symvar (fobj)
+
+  args = fobj.args;
+
+endfunction
--- a/scripts/legacy/@inline/vectorize.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/@inline/vectorize.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} vectorize (@var{fun})
-## Create a vectorized version of the inline function @var{fun} by
+## @deftypefn {} {@var{vfcn} =} vectorize (@var{fobj})
+## Create a vectorized version of the inline function @var{fobj} by
 ## replacing all occurrences of @code{*}, @code{/}, etc., with
 ## @code{.*}, @code{./}, etc.
 ##
@@ -35,27 +35,17 @@
 ##
 ## @example
 ## @group
-## fcn = vectorize (inline ("x^2 - 1"))
-##    @result{} fcn = f(x) = x.^2 - 1
-## quadv (fcn, 0, 3)
+## fobj = vectorize (inline ("x^2 - 1"))
+##    @result{} fobj = f(x) = x.^2 - 1
+## quadv (fobj, 0, 3)
 ##    @result{} 6
 ## @end group
 ## @end example
 ## @seealso{inline, formula, argnames}
 ## @end deftypefn
 
-## The following function was translated directly from the original C++
-## version.  Yes, it will be slow, but the use of inline functions is
-## strongly discouraged anyway, and most expressions will probably be
-## short.  It may also be buggy.  Well, don't use this object!  Use
-## function handles instead!
+function vfcn = vectorize (fobj)
 
-function fcn = vectorize (obj)
-
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  fcn = inline (__vectorize__ (obj.expr));
+  vfcn = inline (__vectorize__ (fobj.expr));
 
 endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/legacy/@inline/vertcat.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,39 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {} vertcat (@var{fobj1}, @var{dots})
+## Vertically concatenate inline function objects.
+##
+## Concatenating inline function objects is @strong{not} possible;
+## Octave emits an error if this function is called.
+## @seealso{inline}
+## @end deftypefn
+
+function vertcat (varargin)
+
+  error ("@inline/vertcat: concatenating inline function objects is not possible");
+
+endfunction
--- a/scripts/legacy/__vectorize__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/__vectorize__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,15 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __vectorize__ (@var{expr})
+## @deftypefn {} {@var{new_expr} =} __vectorize__ (@var{expr})
 ## Undocumented internal function.
 ## @end deftypefn
 
+## The following function was translated directly from the original C++
+## version.  Yes, it will be slow, but its use is strongly discouraged
+## anyway, and most expressions will probably be short.  It may also be
+## buggy.  Well, don't use this function!
+
 function new_expr = __vectorize__ (expr);
 
   new_expr = "";
--- a/scripts/legacy/findstr.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/findstr.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} findstr (@var{s}, @var{t})
-## @deftypefnx {} {} findstr (@var{s}, @var{t}, @var{overlap})
+## @deftypefn  {} {@var{v} =} findstr (@var{s}, @var{t})
+## @deftypefnx {} {@var{v} =} findstr (@var{s}, @var{t}, @var{overlap})
 ##
 ## This function is obsolete.  Use @code{strfind} instead.
 ##
--- a/scripts/legacy/flipdim.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/flipdim.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,13 +24,13 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} flipdim (@var{x})
-## @deftypefnx {} {} flipdim (@var{x}, @var{dim})
+## @deftypefn  {} {@var{B} =} flipdim (@var{A})
+## @deftypefnx {} {@var{B} =} flipdim (@var{A}, @var{dim})
 ## This function is obsolete.  Use @code{flip} instead.
 ## @seealso{flip, fliplr, flipud, rot90, rotdim}
 ## @end deftypefn
 
-function y = flipdim (varargin)
+function B = flipdim (varargin)
 
   persistent warned = false;
   if (! warned)
@@ -39,6 +39,6 @@
              "flipdim is obsolete; please use flip instead");
   endif
 
-  y = flip (varargin{:});
+  B = flip (varargin{:});
 
 endfunction
--- a/scripts/legacy/isdir.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/isdir.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isdir (@var{f})
+## @deftypefn {} {@var{tf} =} isdir (@var{f})
 ##
 ## This function is not recommended.  Use @code{isfolder} or
 ## @code{file_in_loadpath} instead.
@@ -43,7 +43,7 @@
 ## is_rooted_relative_filename}
 ## @end deftypefn
 
-function retval = isdir (f)
+function tf = isdir (f)
 
   persistent warned = false;
   if (! warned)
@@ -57,7 +57,7 @@
   endif
 
   ## Exist returns an integer but isdir should return a logical.
-  retval = (exist (f, "dir") == 7);
+  tf = (exist (f, "dir") == 7);
 
 endfunction
 
--- a/scripts/legacy/isstr.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/isstr.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isstr (@var{x})
+## @deftypefn {} {@var{tf} =} isstr (@var{x})
 ## This function is obsolete.  Use @code{ischar} instead.
 ## @seealso{ischar}
 ## @end deftypefn
@@ -33,7 +33,7 @@
 ## removed in some future version.  Now users are told that it should be
 ## avoided, but there is no mention of possible future removal.
 
-function retval = isstr (varargin)
+function tf = isstr (varargin)
 
   persistent warned = false;
   if (! warned)
@@ -42,6 +42,6 @@
              "isstr is obsolete; please use ischar instead");
   endif
 
-  retval = ischar (varargin{:});
+  tf = ischar (varargin{:});
 
 endfunction
--- a/scripts/legacy/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -26,12 +26,20 @@
 
 %canon_reldir%_@inline_FCN_FILES = \
   %reldir%/@inline/argnames.m \
+  %reldir%/@inline/cat.m \
   %reldir%/@inline/char.m \
+  %reldir%/@inline/disp.m \
+  %reldir%/@inline/exist.m \
   %reldir%/@inline/feval.m \
   %reldir%/@inline/formula.m \
+  %reldir%/@inline/horzcat.m \
   %reldir%/@inline/inline.m \
+  %reldir%/@inline/nargin.m \
+  %reldir%/@inline/nargout.m \
   %reldir%/@inline/subsref.m \
-  %reldir%/@inline/vectorize.m
+  %reldir%/@inline/symvar.m \
+  %reldir%/@inline/vectorize.m \
+  %reldir%/@inline/vertcat.m
 
 %canon_reldir%_@inlinedir = $(fcnfiledir)/legacy/@inline
 
--- a/scripts/legacy/strmatch.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/strmatch.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} strmatch (@var{s}, @var{A})
-## @deftypefnx {} {} strmatch (@var{s}, @var{A}, "exact")
+## @deftypefn  {} {@var{idx} =} strmatch (@var{s}, @var{A})
+## @deftypefnx {} {@var{idx} =} strmatch (@var{s}, @var{A}, "exact")
 ##
 ## This function is obsolete.  @strong{Use an alternative} such as
 ## @code{strncmp} or @code{strcmp} instead.
--- a/scripts/legacy/textread.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/textread.m	Tue Nov 15 13:15:28 2022 -0800
@@ -266,7 +266,7 @@
   warning ("off", "Octave:legacy-function", "local");
   [varargout{1:max (nargout, 1)}] = strread (str, format, varargin{:});
 
-  ## Hack to concatenate/reshape numeric output into 2D array (undocumented ML)
+  ## Hack to concatenate/reshape numeric output into 2-D array (undocumented ML)
   ## In ML this only works in case of an empty format string
   if (isempty (format))
     ## Get number of fields per line.
@@ -334,7 +334,7 @@
 %! unlink (f);
 %! assert (a, d(2:7, 1), 1e-2);
 
-## Test reading 2D matrix with empty format
+## Test reading 2-D matrix with empty format
 %!test
 %! f = tempname ();
 %! d = rand (5, 2);
@@ -455,82 +455,82 @@
 %! unlink (f);
 
 ### Tests with format repeat count #5, nr of data lines = limiting factor
-#%!test
-#%! f = tempname ();
-#%! fid = fopen (f, "w");
-#%! fprintf (fid, "%2d\n%s\n%2dn%s", ...
-#%!                1, "a", 2, "b");
-#%! fclose (fid);
-#%! [a, b] = textread (f, "%d %s", 2);
-#%! assert (a, int32 (1));
-#%! assert (b, {"a"});
+%!#test
+%!# f = tempname ();
+%!# fid = fopen (f, "w");
+%!# fprintf (fid, "%2d\n%s\n%2dn%s", ...
+%!#                1, "a", 2, "b");
+%!# fclose (fid);
+%!# [a, b] = textread (f, "%d %s", 2);
+%!# assert (a, int32 (1));
+%!# assert (b, {"a"});
 
 ### Read multiple lines using empty format string, missing data (should be 0)
-#%!test
-#%! f = tempname ();
-#%! unlink (f);
-#%! fid = fopen (f, "w");
-#%! d = rand (1, 4);
-#%! fprintf (fid, "%f, %f, ,  %f,  %f ", d);
-#%! fclose (fid);
-#%! A = textread (f, "");
-#%! unlink (f);
-#%! assert (A, [ d(1:2) 0 d(3:4)], 1e-6);
+%!#test
+%!# f = tempname ();
+%!# unlink (f);
+%!# fid = fopen (f, "w");
+%!# d = rand (1, 4);
+%!# fprintf (fid, "%f, %f, ,  %f,  %f ", d);
+%!# fclose (fid);
+%!# A = textread (f, "");
+%!# unlink (f);
+%!# assert (A, [ d(1:2) 0 d(3:4)], 1e-6);
 
 ### Test with empty positions - ML returns 0 for empty fields
-#%!test
-#%! f = tempname ();
-#%! unlink (f);
-#%! fid = fopen (f, "w");
-#%! d = rand (1, 4);
-#%! fprintf (fid, ",2,,4\n5,,7,\n");
-#%! fclose (fid);
-#%! A = textread (f, "", "delimiter", ",");
-#%! unlink (f);
-#%! assert (A, [0 2 0 4; 5 0 7 0], 1e-6);
+%!#test
+%!# f = tempname ();
+%!# unlink (f);
+%!# fid = fopen (f, "w");
+%!# d = rand (1, 4);
+%!# fprintf (fid, ",2,,4\n5,,7,\n");
+%!# fclose (fid);
+%!# A = textread (f, "", "delimiter", ",");
+%!# unlink (f);
+%!# assert (A, [0 2 0 4; 5 0 7 0], 1e-6);
 
 ### Another test with empty format + positions, now with more incomplete lower
 ### row (must be appended with zeros to get rectangular matrix)
-#%!test
-#%! f = tempname ();
-#%! unlink (f);
-#%! fid = fopen (f, "w");
-#%! d = rand (1, 4);
-#%! fprintf (fid, ",2,,4\n5,\n");
-#%! fclose (fid);
-#%! A = textread (f, "", "delimiter", ",");
-#%! unlink (f);
-#%! assert (A, [0 2 0 4; 5 0 0 0], 1e-6);
+%!#test
+%!# f = tempname ();
+%!# unlink (f);
+%!# fid = fopen (f, "w");
+%!# d = rand (1, 4);
+%!# fprintf (fid, ",2,,4\n5,\n");
+%!# fclose (fid);
+%!# A = textread (f, "", "delimiter", ",");
+%!# unlink (f);
+%!# assert (A, [0 2 0 4; 5 0 0 0], 1e-6);
 
 ### Test endofline
-#%!test <*45046>
-#%! f = tempname ();
-#%! fid = fopen (f, "w");
-#%! fprintf (fid, "a\rb\rc");
-#%! fclose (fid);
-#%! ## Test EOL detection
-#%! d = textread (f, "%s");
-#%! assert (d, {"a";"b";"c"});
-#%! ## Test explicit EOL specification (bug #45046)
-#%! d = textread (f, "%s", "endofline", "\r");
-#%! assert (d, {"a"; "b"; "c"});
-#%! unlink (f);
+%!#test <*45046>
+%!# f = tempname ();
+%!# fid = fopen (f, "w");
+%!# fprintf (fid, "a\rb\rc");
+%!# fclose (fid);
+%!# ## Test EOL detection
+%!# d = textread (f, "%s");
+%!# assert (d, {"a";"b";"c"});
+%!# ## Test explicit EOL specification (bug #45046)
+%!# d = textread (f, "%s", "endofline", "\r");
+%!# assert (d, {"a"; "b"; "c"});
+%!# unlink (f);
 
 ### Properly process single-quoted EOL args
-#%!test <*46477>
-#%! f = tempname ();
-#%! fid = fopen (f, "w");
-#%! fprintf (fid, "hello, world!");
-#%! fclose (fid);
-#%! [a, b] = textread (f, "%s%s", "endofline", '\n');
-#%! assert (a{1}, "hello,");
-#%! assert (b{1}, "world!");
+%!#test <*46477>
+%!# f = tempname ();
+%!# fid = fopen (f, "w");
+%!# fprintf (fid, "hello, world!");
+%!# fclose (fid);
+%!# [a, b] = textread (f, "%s%s", "endofline", '\n');
+%!# assert (a{1}, "hello,");
+%!# assert (b{1}, "world!");
 
 ### Test input validation
-#%!error textread ()
-#%!error textread (1)
-#%!error <arguments must be strings> textread (1, "%f")
-#%!error <arguments must be strings> textread ("fname", 1)
-#%!error <missing or invalid value for> textread (file_in_loadpath ("textread.m"), "", "headerlines")
-#%!error <missing or invalid value for> textread (file_in_loadpath ("textread.m"), "", "headerlines", 'hh')
-#%!error <character value required for> textread (file_in_loadpath ("textread.m"), "%s", "endofline", true)
+%!#error textread ()
+%!#error textread (1)
+%!#error <arguments must be strings> textread (1, "%f")
+%!#error <arguments must be strings> textread ("fname", 1)
+%!#error <missing or invalid value for> textread (file_in_loadpath ("textread.m"), "", "headerlines")
+%!#error <missing or invalid value for> textread (file_in_loadpath ("textread.m"), "", "headerlines", 'hh')
+%!#error <character value required for> textread (file_in_loadpath ("textread.m"), "%s", "endofline", true)
--- a/scripts/legacy/vectorize.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/legacy/vectorize.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} vectorize (@var{fun})
+## @deftypefn {} {@var{vfcn} =} vectorize (@var{fcn})
 ## Create a vectorized version of the anonymous function or expression
-## @var{fun} by replacing all occurrences of @code{*}, @code{/}, etc.,
+## @var{fcn} by replacing all occurrences of @code{*}, @code{/}, etc.,
 ## with @code{.*}, @code{./}, etc.
 ##
 ## Note that the transformation is extremely simplistic.  Use of this
@@ -34,12 +34,7 @@
 ## version of Octave.
 ## @end deftypefn
 
-## The following function was translated directly from the original C++
-## version.  Yes, it will be slow, but its use is strongly discouraged
-## anyway, and most expressions will probably be short.  It may also be
-## buggy.  Well, don't use this function!
-
-function retval = vectorize (fun)
+function vfcn = vectorize (fcn)
 
   persistent warned = false;
   if (! warned)
@@ -52,21 +47,21 @@
     print_usage ();
   endif
 
-  if (isa (fun, "function_handle"))
-    finfo = functions (fun);
+  if (is_function_handle (fcn))
+    finfo = functions (fcn);
     if (! strcmp (finfo.type, "anonymous"))
-      error ("vectorize: FUN must be a string or anonymous function handle");
+      error ("vectorize: FCN must be a string or anonymous function handle");
     endif
     expr = finfo.function;
     idx = index (expr, ")");
     args = expr(1:idx);
     expr = expr(idx+1:end);
     new_expr = __vectorize__ (expr);
-    retval = str2func ([args, new_expr]);
-  elseif (ischar (fun))
-    retval = __vectorize__ (fun);
+    vfcn = str2func ([args, new_expr]);
+  elseif (ischar (fcn))
+    vfcn = __vectorize__ (fcn);
   else
-    error ("vectorize: FUN must be a string or anonymous function handle");
+    error ("vectorize: FCN must be a string or anonymous function handle");
   endif
 
 endfunction
@@ -92,4 +87,4 @@
 
 ## Test input validation
 %!error <Invalid call> vectorize ()
-%!error <FUN must be a string or anonymous function handle> vectorize (1)
+%!error <FCN must be a string or anonymous function handle> vectorize (1)
--- a/scripts/linear-algebra/commutation_matrix.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/commutation_matrix.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} commutation_matrix (@var{m}, @var{n})
+## @deftypefn {} {@var{k} =} commutation_matrix (@var{m}, @var{n})
 ## Return the commutation matrix
 ## @tex
 ##  $K_{m,n}$
--- a/scripts/linear-algebra/cond.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/cond.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} cond (@var{A})
-## @deftypefnx {} {} cond (@var{A}, @var{p})
+## @deftypefn  {} {@var{c} =} cond (@var{A})
+## @deftypefnx {} {@var{c} =} cond (@var{A}, @var{p})
 ## Compute the @var{p}-norm condition number of a matrix with respect to
 ## inversion.
 ##
@@ -51,7 +51,7 @@
 ## @seealso{condest, rcond, condeig, norm, svd}
 ## @end deftypefn
 
-function retval = cond (A, p = 2)
+function c = cond (A, p = 2)
 
   if (nargin < 1)
     print_usage ();
@@ -63,21 +63,23 @@
 
   if (p == 2)
     if (isempty (A))
-      retval = 0.0;
-    elseif (any (! isfinite (A(:))))
-      error ("cond: A must not contain Inf or NaN values");
+      c = 0.0;
     else
-      sigma   = svd (A);
+      try
+        sigma = svd (A);
+      catch
+        error ("cond: A must not contain Inf or NaN values");
+      end_try_catch
       sigma_1 = sigma(1);
       sigma_n = sigma(end);
       if (sigma_1 == 0 || sigma_n == 0)
-        retval = Inf;
+        c = Inf;
       else
-        retval = sigma_1 / sigma_n;
+        c = sigma_1 / sigma_n;
       endif
     endif
   else
-    retval = norm (A, p) * norm (inv (A), p);
+    c = norm (A, p) * norm (inv (A), p);
   endif
 
 endfunction
--- a/scripts/linear-algebra/cross.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/cross.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} cross (@var{x}, @var{y})
-## @deftypefnx {} {} cross (@var{x}, @var{y}, @var{dim})
+## @deftypefn  {} {@var{z} =} cross (@var{x}, @var{y})
+## @deftypefnx {} {@var{z} =} cross (@var{x}, @var{y}, @var{dim})
 ## Compute the vector cross product of two 3-dimensional vectors @var{x} and
 ## @var{y}.
 ##
--- a/scripts/linear-algebra/duplication_matrix.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/duplication_matrix.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} duplication_matrix (@var{n})
+## @deftypefn {} {@var{d} =} duplication_matrix (@var{n})
 ## Return the duplication matrix
 ## @tex
 ##  $D_n$
@@ -37,21 +37,21 @@
 ##  $n^2 \times n(n+1)/2$
 ## @end tex
 ## @ifnottex
-## @math{n^2} by @math{n*(n+1)/2}
+## @math{N^2}-by-@math{N*(N+1)/2}
 ## @end ifnottex
 ## matrix such that
 ## @tex
 ##  $D_n * {\rm vech} (A) = {\rm vec} (A)$
 ## @end tex
 ## @ifnottex
-## @nospell{@math{Dn vech (A) = vec (A)}}
+## @nospell{@code{Dn * vech (A) = vec (A)}}
 ## @end ifnottex
 ## for all symmetric
 ## @tex
 ##  $n \times n$
 ## @end tex
 ## @ifnottex
-## @math{n} by @math{n}
+## @math{N}-by-@math{N}
 ## @end ifnottex
 ## matrices
 ## @tex
--- a/scripts/linear-algebra/expm.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/expm.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} expm (@var{A})
+## @deftypefn {} {@var{r} =} expm (@var{A})
 ## Return the exponential of a matrix.
 ##
 ## The matrix exponential is defined as the infinite Taylor series
--- a/scripts/linear-algebra/isbanded.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/isbanded.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isbanded (@var{A}, @var{lower}, @var{upper})
+## @deftypefn {} {@var{tf} =} isbanded (@var{A}, @var{lower}, @var{upper})
 ## Return true if @var{A} is a matrix with entries confined between
 ## @var{lower} diagonals below the main diagonal and @var{upper} diagonals
 ## above the main diagonal.
@@ -33,7 +33,7 @@
 ## @seealso{isdiag, istril, istriu, bandwidth}
 ## @end deftypefn
 
-function retval = isbanded (A, lower, upper)
+function tf = isbanded (A, lower, upper)
 
   if (nargin != 3)
     print_usage ();
@@ -44,16 +44,16 @@
   endif
 
   if (isempty (A))
-    retval = [];
+    tf = [];
   else
-    retval = (isnumeric (A) || islogical (A)) && ndims (A) == 2;
-    if (retval)
+    tf = (isnumeric (A) || islogical (A)) && ndims (A) == 2;
+    if (tf)
       [i, j] = find (A);
       pupp = j >= i;
-      retval = all (j(pupp) - i(pupp) <= upper);
-      if (retval)
+      tf = all (j(pupp) - i(pupp) <= upper);
+      if (tf)
         plow = i >= j;
-        retval = all (i(plow) - j(plow) <= lower);
+        tf = all (i(plow) - j(plow) <= lower);
       endif
     endif
   endif
--- a/scripts/linear-algebra/isdefinite.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/isdefinite.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} isdefinite (@var{A})
-## @deftypefnx {} {} isdefinite (@var{A}, @var{tol})
+## @deftypefn  {} {@var{tf} =} isdefinite (@var{A})
+## @deftypefnx {} {@var{tf} =} isdefinite (@var{A}, @var{tol})
 ## Return true if @var{A} is symmetric positive definite matrix within the
 ## tolerance specified by @var{tol}.
 ##
@@ -47,14 +47,14 @@
 ## @seealso{issymmetric, ishermitian}
 ## @end deftypefn
 
-function retval = isdefinite (A, tol)
+function tf = isdefinite (A, tol)
 
   if (nargin < 1)
     print_usage ();
   endif
 
   ## Validate inputs
-  retval = false;
+  tf = false;
   if (! isnumeric (A))
     return;
   endif
@@ -76,7 +76,7 @@
   e = tol * eye (rows (A));
   [~, p] = chol (A - e);
   if (p == 0)
-    retval = true;
+    tf = true;
   endif
 
 endfunction
--- a/scripts/linear-algebra/isdiag.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/isdiag.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,24 +24,24 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isdiag (@var{A})
+## @deftypefn {} {@var{tf} =} isdiag (@var{A})
 ## Return true if @var{A} is a diagonal matrix.
 ## @seealso{isbanded, istril, istriu, diag, bandwidth}
 ## @end deftypefn
 
-function retval = isdiag (A)
+function tf = isdiag (A)
 
   if (nargin < 1)
     print_usage ();
   endif
 
   if (strfind (typeinfo (A), "diagonal matrix"))
-    retval = true;
+    tf = true;
   elseif ((isnumeric (A) || islogical (A)) && ndims (A) == 2)
     [i, j] = find (A);
-    retval = all (i == j);
+    tf = all (i == j);
   else
-    retval = false;
+    tf = false;
   endif
 
 endfunction
--- a/scripts/linear-algebra/ishermitian.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/ishermitian.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} ishermitian (@var{A})
-## @deftypefnx {} {} ishermitian (@var{A}, @var{tol})
-## @deftypefnx {} {} ishermitian (@var{A}, @qcode{"skew"})
-## @deftypefnx {} {} ishermitian (@var{A}, @qcode{"skew"}, @var{tol})
+## @deftypefn  {} {@var{tf} =} ishermitian (@var{A})
+## @deftypefnx {} {@var{tf} =} ishermitian (@var{A}, @var{tol})
+## @deftypefnx {} {@var{tf} =} ishermitian (@var{A}, @qcode{"skew"})
+## @deftypefnx {} {@var{tf} =} ishermitian (@var{A}, @qcode{"skew"}, @var{tol})
 ## Return true if @var{A} is a Hermitian or skew-Hermitian matrix within the
 ## tolerance specified by @var{tol}.
 ##
@@ -50,7 +50,7 @@
 ## @seealso{issymmetric, isdefinite}
 ## @end deftypefn
 
-function retval = ishermitian (A, skewopt = "nonskew", tol = 0)
+function tf = ishermitian (A, skewopt = "nonskew", tol = 0)
 
   if (nargin < 1)
     print_usage ();
@@ -67,8 +67,8 @@
   endif
 
   ## Validate inputs
-  retval = (isnumeric (A) || islogical (A)) && issquare (A);
-  if (! retval)
+  tf = (isnumeric (A) || islogical (A)) && issquare (A);
+  if (! tf)
     return;
   endif
 
@@ -84,26 +84,26 @@
   if (strcmp (skewopt, "nonskew"))
     if (tol == 0)
       ## check for exact symmetry
-      retval = full (! any ((A != A')(:)));
+      tf = full (! any ((A != A')(:)));
     else
       if (islogical (A))
         ## Hack to allow norm to work.  Choose single to minimize memory.
         A = single (A);
       endif
       norm_x = norm (A, Inf);
-      retval = norm_x == 0 || norm (A - A', Inf) / norm_x <= tol;
+      tf = norm_x == 0 || norm (A - A', Inf) / norm_x <= tol;
     endif
   else
     ## skew-Hermitian
     if (tol == 0)
-      retval = full (! any ((A != -A')(:)));
+      tf = full (! any ((A != -A')(:)));
     else
       if (islogical (A))
         ## Hack to allow norm to work.  Choose single to minimize memory.
         A = single (A);
       endif
       norm_x = norm (A, Inf);
-      retval = norm_x == 0 || norm (A + A', Inf) / norm_x <= tol;
+      tf = norm_x == 0 || norm (A + A', Inf) / norm_x <= tol;
     endif
   endif
 
--- a/scripts/linear-algebra/issymmetric.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/issymmetric.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} issymmetric (@var{A})
-## @deftypefnx {} {} issymmetric (@var{A}, @var{tol})
-## @deftypefnx {} {} issymmetric (@var{A}, @qcode{"skew"})
-## @deftypefnx {} {} issymmetric (@var{A}, @qcode{"skew"}, @var{tol})
+## @deftypefn  {} {@var{tf} =} issymmetric (@var{A})
+## @deftypefnx {} {@var{tf} =} issymmetric (@var{A}, @var{tol})
+## @deftypefnx {} {@var{tf} =} issymmetric (@var{A}, @qcode{"skew"})
+## @deftypefnx {} {@var{tf} =} issymmetric (@var{A}, @qcode{"skew"}, @var{tol})
 ## Return true if @var{A} is a symmetric or skew-symmetric matrix within the
 ## tolerance specified by @var{tol}.
 ##
@@ -49,7 +49,7 @@
 ## @seealso{ishermitian, isdefinite}
 ## @end deftypefn
 
-function retval = issymmetric (A, skewopt = "nonskew", tol = 0)
+function tf = issymmetric (A, skewopt = "nonskew", tol = 0)
 
   if (nargin < 1)
     print_usage ();
@@ -79,7 +79,7 @@
   endif
 
   if (! issquare (A))
-    retval = false;
+    tf = false;
     return;
   endif
 
@@ -87,26 +87,26 @@
   if (strcmp (skewopt, "nonskew"))
     if (tol == 0)
       ## check for exact symmetry
-      retval = full (! any ((A != A.')(:)));
+      tf = full (! any ((A != A.')(:)));
     else
       if (! isnumeric (A))
         ## Hack to allow norm to work.  Choose single to minimize memory.
         A = single (A);
       endif
       norm_x = norm (A, Inf);
-      retval = norm_x == 0 || norm (A - A.', Inf) / norm_x <= tol;
+      tf = norm_x == 0 || norm (A - A.', Inf) / norm_x <= tol;
     endif
   else
     ## skew symmetry
     if (tol == 0)
-      retval = full (! any ((A != -A.')(:)));
+      tf = full (! any ((A != -A.')(:)));
     else
       if (! isnumeric (A))
         ## Hack to allow norm to work.  Choose single to minimize memory.
         A = single (A);
       endif
       norm_x = norm (A, Inf);
-      retval = norm_x == 0 || norm (A + A.', Inf) / norm_x <= tol;
+      tf = norm_x == 0 || norm (A + A.', Inf) / norm_x <= tol;
     endif
   endif
 
--- a/scripts/linear-algebra/istril.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/istril.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} istril (@var{A})
+## @deftypefn {} {@var{tf} =} istril (@var{A})
 ## Return true if @var{A} is a lower triangular matrix.
 ##
 ## A lower triangular matrix has nonzero entries only on the main diagonal and
@@ -32,16 +32,16 @@
 ## @seealso{istriu, isbanded, isdiag, tril, bandwidth}
 ## @end deftypefn
 
-function retval = istril (A)
+function tf = istril (A)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = (isnumeric (A) || islogical (A)) && ndims (A) == 2;
-  if (retval)
+  tf = (isnumeric (A) || islogical (A)) && ndims (A) == 2;
+  if (tf)
     [i, j] = find (A);
-    retval = all (i >= j);
+    tf = all (i >= j);
   endif
 
 endfunction
--- a/scripts/linear-algebra/istriu.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/istriu.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} istriu (@var{A})
+## @deftypefn {} {@var{tf} =} istriu (@var{A})
 ## Return true if @var{A} is an upper triangular matrix.
 ##
 ## An upper triangular matrix has nonzero entries only on the main diagonal and
@@ -32,16 +32,16 @@
 ## @seealso{isdiag, isbanded, istril, triu, bandwidth}
 ## @end deftypefn
 
-function retval = istriu (A)
+function tf = istriu (A)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = (isnumeric (A) || islogical (A)) && ndims (A) == 2;
-  if (retval)
+  tf = (isnumeric (A) || islogical (A)) && ndims (A) == 2;
+  if (tf)
     [i, j] = find (A);
-    retval = all (i <= j);
+    tf = all (i <= j);
   endif
 
 endfunction
--- a/scripts/linear-algebra/logm.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/logm.m	Tue Nov 15 13:15:28 2022 -0800
@@ -143,7 +143,7 @@
 ######      (SIAM, 2008.).
 #######################################################################
 
-##LOGM_PADE_PF   Evaluate Pade approximant to matrix log by partial fractions.
+## LOGM_PADE_PF   Evaluate Pade approximant to matrix log by partial fractions.
 ##   Y = LOGM_PADE_PF(A,M) evaluates the [M/M] Pade approximation to
 ##   LOG(EYE(SIZE(A))+A) using a partial fraction expansion.
 
--- a/scripts/linear-algebra/normest1.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/normest1.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,7 +27,7 @@
 ## @deftypefn  {} {@var{nest} =} normest1 (@var{A})
 ## @deftypefnx {} {@var{nest} =} normest1 (@var{A}, @var{t})
 ## @deftypefnx {} {@var{nest} =} normest1 (@var{A}, @var{t}, @var{x0})
-## @deftypefnx {} {@var{nest} =} normest1 (@var{Afun}, @var{t}, @var{x0}, @var{p1}, @var{p2}, @dots{})
+## @deftypefnx {} {@var{nest} =} normest1 (@var{Afcn}, @var{t}, @var{x0}, @var{p1}, @var{p2}, @dots{})
 ## @deftypefnx {} {[@var{nest}, @var{v}] =} normest1 (@var{A}, @dots{})
 ## @deftypefnx {} {[@var{nest}, @var{v}, @var{w}] =} normest1 (@var{A}, @dots{})
 ## @deftypefnx {} {[@var{nest}, @var{v}, @var{w}, @var{iter}] =} normest1 (@var{A}, @dots{})
@@ -39,7 +39,7 @@
 ## estimate of the 1-norm of a linear operator @var{A} when matrix-vector
 ## products @code{@var{A} * @var{x}} and @code{@var{A}' * @var{x}} can be
 ## cheaply computed.  In this case, instead of the matrix @var{A}, a function
-## @code{@var{Afun} (@var{flag}, @var{x})} is used; it must return:
+## @code{@var{Afcn} (@var{flag}, @var{x})} is used; it must return:
 ##
 ## @itemize @bullet
 ## @item
@@ -69,7 +69,7 @@
 ## @end example
 ##
 ## The parameters @var{p1}, @var{p2}, @dots{} are arguments of
-## @code{@var{Afun} (@var{flag}, @var{x}, @var{p1}, @var{p2}, @dots{})}.
+## @code{@var{Afcn} (@var{flag}, @var{x}, @var{p1}, @var{p2}, @dots{})}.
 ##
 ## The default value for @var{t} is 2.  The algorithm requires matrix-matrix
 ## products with sizes @var{n} x @var{n} and @var{n} x @var{t}.
@@ -134,8 +134,8 @@
     Aismat = false;
     Aisreal = A ("real", [], varargin{:});
     n = A ("dim", [], varargin{:});
-    Afun = @(x) A ("notransp", x, varargin{:});
-    A1fun = @(x) A ("transp", x, varargin{:});
+    Afcn = @(x) A ("notransp", x, varargin{:});
+    A1fcn = @(x) A ("transp", x, varargin{:});
   else
     error ("normest1: A must be a square matrix or a function handle");
   endif
@@ -175,7 +175,7 @@
     if (Aismat)
       Y = A * X;
     else
-      Y = Afun (X);
+      Y = Afcn (X);
     endif
     iter(2)++;
     [nest, j] = max (sum (abs (Y), 1), [], 2);
@@ -222,7 +222,7 @@
       if (Aismat)
         Z = A' * S;
       else
-        Z = A1fun (S);  # (3) of Algorithm 2.4
+        Z = A1fcn (S);  # (3) of Algorithm 2.4
       endif
       iter(2)++;
       h = max (abs (Z), [], 2);
@@ -254,7 +254,7 @@
 endfunction
 
 
-%!function z = afun_A (flag, x, A, n)
+%!function z = afcn_A (flag, x, A, n)
 %!  switch (flag)
 %!  case {"dim"}
 %!    z = n;
@@ -266,7 +266,7 @@
 %!    z = A * x;
 %!  endswitch
 %!endfunction
-%!function z = afun_A_P (flag, x, A, m)
+%!function z = afcn_A_P (flag, x, A, m)
 %!  switch (flag)
 %!  case "dim"
 %!    z = length (A);
@@ -297,17 +297,17 @@
 %! X = [1,1,-1;1,1,1;1,1,-1;1,-1,-1]/3;
 %! assert (normest1 (A, 3, X), norm (A, 1), 2 * eps);
 
-## test Afun
+## test Afcn
 %!test
 %! A = rand (10);
 %! n = length (A);
-%! Afun = @(flag, x) afun_A (flag, x, A, n);
-%! assert (normest1 (Afun), norm (A, 1), 2 * eps);
+%! Afcn = @(flag, x) afcn_A (flag, x, A, n);
+%! assert (normest1 (Afcn), norm (A, 1), 2 * eps);
 
-## test Afun with parameters
+## test Afcn with parameters
 %!test
 %! A = rand (10);
-%! assert (normest1 (@afun_A_P, [], [], A, 3), norm (A ^ 3, 1), 1000 * eps);
+%! assert (normest1 (@afcn_A_P, [], [], A, 3), norm (A ^ 3, 1), 1000 * eps);
 
 ## test output
 %!test
--- a/scripts/linear-algebra/orth.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/orth.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} orth (@var{A})
-## @deftypefnx {} {} orth (@var{A}, @var{tol})
+## @deftypefn  {} {@var{B} =} orth (@var{A})
+## @deftypefnx {} {@var{B} =} orth (@var{A}, @var{tol})
 ## Return an orthonormal basis of the range space of @var{A}.
 ##
 ## The dimension of the range space is taken as the number of singular values
@@ -38,14 +38,14 @@
 ## @seealso{null}
 ## @end deftypefn
 
-function retval = orth (A, tol)
+function B = orth (A, tol)
 
   if (nargin < 1)
     print_usage ();
   endif
 
   if (isempty (A))
-    retval = [];
+    B = [];
     return;
   endif
 
@@ -72,9 +72,9 @@
   rank = sum (s > tol);
 
   if (rank > 0)
-    retval = -U(:, 1:rank);
+    B = -U(:, 1:rank);
   else
-    retval = zeros (rows, 0);
+    B = zeros (rows, 0);
   endif
 
 endfunction
--- a/scripts/linear-algebra/rank.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/rank.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} rank (@var{A})
-## @deftypefnx {} {} rank (@var{A}, @var{tol})
+## @deftypefn  {} {@var{k} =} rank (@var{A})
+## @deftypefnx {} {@var{k} =} rank (@var{A}, @var{tol})
 ## Compute the rank of matrix @var{A}, using the singular value decomposition.
 ##
 ## The rank is taken to be the number of singular values of @var{A} that are
@@ -79,7 +79,7 @@
 ## @seealso{null, orth, sprank, svd, eps}
 ## @end deftypefn
 
-function retval = rank (A, tol)
+function k = rank (A, tol)
 
   if (nargin < 1)
     print_usage ();
@@ -101,7 +101,7 @@
     tolerance = tol;
   endif
 
-  retval = sum (sigma > tolerance);
+  k = sum (sigma > tolerance);
 
 endfunction
 
--- a/scripts/linear-algebra/rref.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/rref.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} rref (@var{A})
-## @deftypefnx {} {} rref (@var{A}, @var{tol})
+## @deftypefn  {} {@var{r} =} rref (@var{A})
+## @deftypefnx {} {@var{r} =} rref (@var{A}, @var{tol})
 ## @deftypefnx {} {[@var{r}, @var{k}] =} rref (@dots{})
 ## Return the reduced row echelon form of @var{A}.
 ##
@@ -89,7 +89,9 @@
       endif
     endif
   endfor
-  k = find (used);
+  if (nargout > 1)
+    k = find (used);
+  endif
 
 endfunction
 
--- a/scripts/linear-algebra/trace.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/trace.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} trace (@var{A})
+## @deftypefn {} {@var{t} =} trace (@var{A})
 ## Compute the trace of @var{A}, the sum of the elements along the main
 ## diagonal.
 ##
@@ -32,7 +32,7 @@
 ## @seealso{eig}
 ## @end deftypefn
 
-function y = trace (A)
+function t = trace (A)
 
   if (nargin < 1)
     print_usage ();
@@ -41,11 +41,11 @@
   if (ndims (A) > 2)
     error ("trace: only valid on 2-D objects");
   elseif (isempty (A))
-    y = 0;
+    t = 0;
   elseif (isvector (A))
-    y = A(1);
+    t = A(1);
   else
-    y = sum (diag (A));
+    t = sum (diag (A));
   endif
 
 endfunction
--- a/scripts/linear-algebra/vech.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/linear-algebra/vech.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} vech (@var{x})
+## @deftypefn {} {@var{v} =} vech (@var{x})
 ## Return the vector obtained by eliminating all superdiagonal elements of
 ## the square matrix @var{x} and stacking the result one column above the
 ## other.
@@ -37,8 +37,6 @@
 ## See Magnus and Neudecker (1988), Matrix differential calculus with
 ## applications in statistics and econometrics.
 
-## Author KH <Kurt.Hornik@wu-wien.ac.at>
-
 function v = vech (x)
 
   if (nargin < 1)
@@ -58,4 +56,6 @@
 
 %!assert (vech ([1, 2, 3; 4, 5, 6; 7, 8, 9]), [1; 4; 7; 5; 8; 9])
 
+## Test input validation
 %!error <Invalid call> vech ()
+%!error <X must be square> vech ([1,2,3;4,5,6])
--- a/scripts/miscellaneous/cast.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/cast.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,16 +24,16 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} cast (@var{val}, "@var{type}")
-## @deftypefnx {} {} cast (@var{val}, "@var{like}", @var{var})
-## Convert @var{val} to data type @var{type}.
+## @deftypefn  {} {@var{y} =} cast (@var{x}, "@var{type}")
+## @deftypefnx {} {@var{y} =} cast (@var{x}, "@var{like}", @var{var})
+## Convert @var{x} to data type @var{type}.
 ##
-## The input @var{val} may be a scalar, vector, or matrix of a class that is
+## The input @var{x} may be a scalar, vector, or matrix of a class that is
 ## convertible to the target class (see below).
 ##
-## If a variable @var{var} is specified after @qcode{"like"}, @var{val} is
+## If a variable @var{var} is specified after @qcode{"like"}, @var{x} is
 ## converted to the same data type and sparsity attribute.  If @var{var} is
-## complex, @var{val} will be complex, too.
+## complex, @var{x} will be complex, too.
 ##
 ## @var{var} may be and @var{type} may name any of the following built-in
 ## numeric classes:
@@ -55,7 +55,7 @@
 ## @end group
 ## @end example
 ##
-## The value @var{val} may be modified to fit within the range of the new type.
+## The value @var{x} may be modified to fit within the range of the new type.
 ##
 ## Examples:
 ##
@@ -68,7 +68,7 @@
 ## @end group
 ## @end example
 ##
-## Programming Note: This function relies on the object @var{val} having a
+## Programming Note: This function relies on the object @var{x} having a
 ## conversion method named @var{type}.  User-defined classes may implement only
 ## a subset of the full list of types shown above.  In that case, it may be
 ## necessary to call cast twice in order to reach the desired type.
@@ -84,7 +84,7 @@
 ## double, single, logical, char, class, typeinfo}
 ## @end deftypefn
 
-function retval = cast (val, type, var)
+function y = cast (x, type, var)
 
   if (nargin < 2 || nargin > 3)
     print_usage ();
@@ -105,8 +105,8 @@
     print_usage ();
   endif
 
-  if (! isnumeric (val) && ! islogical (val) && ! ischar (val))
-    error ("cast: type conversion from '%s' is not supported", class (val));
+  if (! isnumeric (x) && ! islogical (x) && ! ischar (x))
+    error ("cast: type conversion from '%s' is not supported", class (x));
   endif
 
   if (! any (strcmp (type, {"int8"; "uint8"; "int16"; "uint16"; "int32";
@@ -115,17 +115,17 @@
     error ("cast: type conversion to '%s' is not supported", type);
   endif
 
-  retval = feval (type, val);
+  y = feval (type, x);
 
   if (is_like)
-    if (issparse (var) && ! issparse (retval))
-      ## retval is of the same type as var, so it must be convertible to sparse
-      retval = sparse (retval);
-    elseif (! issparse (var) && issparse (retval))
-      retval = full (retval);
+    if (issparse (var) && ! issparse (y))
+      ## y is of the same type as var, so it must be convertible to sparse
+      y = sparse (y);
+    elseif (! issparse (var) && issparse (y))
+      y = full (y);
     endif
-    if (iscomplex (var) || iscomplex (val))
-      retval = complex (retval);
+    if (iscomplex (var) || iscomplex (x))
+      y = complex (y);
     endif
   endif
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/miscellaneous/clearAllMemoizedCaches.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,45 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {} clearAllMemoizedCaches ()
+## Clear all memoized caches.
+##
+## Memoization maintains internal tables of which functions have been called
+## with which inputs.  This function clears those tables to free memory,
+## or for a fresh start.
+##
+## @seealso{memoize}
+## @end deftypefn
+
+function clearAllMemoizedCaches ()
+
+  __memoize__ ();
+
+endfunction
+
+
+## Mark file as being tested.  No real test needed for this function.
+%!assert (1)
--- a/scripts/miscellaneous/compare_versions.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/compare_versions.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} compare_versions (@var{v1}, @var{v2}, @var{operator})
+## @deftypefn {} {@var{tf} =} compare_versions (@var{v1}, @var{v2}, @var{operator})
 ## Compare two version strings using the given @var{operator}.
 ##
 ## This function assumes that versions @var{v1} and @var{v2} are arbitrarily
@@ -72,7 +72,7 @@
 ## @code{double ("1").}
 ## @end deftypefn
 
-function out = compare_versions (v1, v2, operator)
+function tf = compare_versions (v1, v2, operator)
 
   if (nargin != 3)
     print_usage ();
@@ -165,18 +165,18 @@
 
   if (isempty (firstdiff))
     ## They're equal.
-    out = equal_op;
+    tf = equal_op;
   elseif (lt_op || gt_op)
     ## They're correctly less than or greater than.
-    out = (vcmp(firstdiff) > 0);
+    tf = (vcmp(firstdiff) > 0);
   else
     ## They're not correctly less than or greater than, and they're not equal.
-    out = false;
+    tf = false;
   endif
 
   ## Reverse the output if not is given.
   if (not_op)
-    out = ! out;
+    tf = ! tf;
   endif
 
 endfunction
--- a/scripts/miscellaneous/delete.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/delete.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} delete (@var{file})
+## @deftypefn  {} {} delete @var{file}
+## @deftypefnx {} {} delete @var{file1} @var{file2} @dots{}
+## @deftypefnx {} {} delete (@var{file})
 ## @deftypefnx {} {} delete (@var{file1}, @var{file2}, @dots{})
 ## @deftypefnx {} {} delete (@var{handle})
 ## Delete the named file or graphics handle.
--- a/scripts/miscellaneous/dir.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/dir.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,7 +25,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {} dir
-## @deftypefnx {} {} dir (@var{directory})
+## @deftypefnx {} {} dir @var{directory}
 ## @deftypefnx {} {[@var{list}] =} dir (@var{directory})
 ## Display file listing for directory @var{directory}.
 ##
@@ -79,13 +79,13 @@
 ## FIXME: This is quite slow for large directories.
 ##        Perhaps it should be converted to C++?
 
-function retval = dir (directory = ".")
+function list = dir (directory = ".")
 
   if (! ischar (directory))
     error ("dir: DIRECTORY argument must be a string");
   endif
 
-  ## Prep the retval.
+  ## Prep the list.
   info = struct (zeros (0, 1),
            {"name", "folder" "date", "bytes", "isdir", "datenum", "statinfo"});
 
@@ -150,42 +150,41 @@
         endif
         fn = regexprep (fn, re, '$2$3');
         info(++cnt).name = fn;
-        if (no_dir && ! strcmp (fn, "."))
-          tmpdir = ".";
-        endif
-        if (! is_same_file (last_dir, tmpdir))
-          ## Caching mechanism to speed up function
-          last_dir = tmpdir;
-          if (ispc () && strncmp (last_dir, '\\', 2))
-            ## Windows UNC network file name is used as is
-            last_absdir = last_dir;
-          else
+        if (nargout > 0)
+          if (no_dir && ! strcmp (fn, "."))
+            tmpdir = ".";
+          endif
+          if (! is_same_file (last_dir, tmpdir))
+            ## Caching mechanism to speed up function
+            last_dir = tmpdir;
             last_absdir = canonicalize_file_name (last_dir);
           endif
+          info(cnt).folder = last_absdir;
+          lt = localtime (st.mtime);
+          info(cnt).date = strftime ("%d-%b-%Y %T", lt);
+          info(cnt).bytes = st.size;
+          info(cnt).isdir = S_ISDIR (st.mode);
+          info(cnt).datenum = [lt.year + 1900, lt.mon + 1, lt.mday, ...
+                               lt.hour, lt.min, lt.sec];
+          info(cnt).statinfo = st;
         endif
-        info(cnt).folder = last_absdir;
-        lt = localtime (st.mtime);
-        info(cnt).date = strftime ("%d-%b-%Y %T", lt);
-        info(cnt).bytes = st.size;
-        info(cnt).isdir = S_ISDIR (st.mode);
-        info(cnt).datenum = [lt.year + 1900, lt.mon + 1, lt.mday, ...
-                             lt.hour, lt.min, lt.sec];
-        info(cnt).statinfo = st;
       endif
     endfor
     info((cnt+1):end) = [];  # remove any unused entries
-    ## A lot of gymnastics in order to call datenum just once.  2x speed up.
-    dvec = [info.datenum]([[1:6:end]', [2:6:end]', [3:6:end]', ...
-                           [4:6:end]', [5:6:end]', [6:6:end]']);
-    dnum = datenum (dvec);
-    ctmp = mat2cell (dnum, ones (cnt,1), 1);
-    [info.datenum] = ctmp{:};
+    if (nargout > 0)
+      ## A lot of gymnastics in order to call datenum just once.  2x speed up.
+      dvec = [info.datenum]([[1:6:end]', [2:6:end]', [3:6:end]', ...
+                             [4:6:end]', [5:6:end]', [6:6:end]']);
+      dnum = datenum (dvec);
+      ctmp = mat2cell (dnum, ones (cnt,1), 1);
+      [info.datenum] = ctmp{:};
+    endif
   endif
 
   ## Return the output arguments.
   if (nargout > 0)
     ## Return the requested structure.
-    retval = info;
+    list = info;
   elseif (numel (info) > 0)
     ## Print the structure to the screen.
     printf ("%s", list_in_columns ({info.name}));
--- a/scripts/miscellaneous/fileattrib.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/fileattrib.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fileattrib ()
+## @deftypefn  {} {} fileattrib
+## @deftypefnx {} {} fileattrib @var{file}
 ## @deftypefnx {} {} fileattrib (@var{file})
 ## @deftypefnx {} {[@var{status}, @var{attrib}] =} fileattrib (@dots{})
 ## @deftypefnx {} {[@var{status}, @var{msg}, @var{msgid}] =} fileattrib (@dots{})
--- a/scripts/miscellaneous/grabcode.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/grabcode.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} grabcode (@var{url})
-## @deftypefnx {} {} grabcode (@var{filename})
+## @deftypefn  {} {} grabcode @var{filename}
+## @deftypefnx {} {} grabcode @var{url}
 ## @deftypefnx {} {@var{code_str} =} grabcode (@dots{})
 ##
 ## Grab the code from a report created by the @code{publish} function.
@@ -35,8 +35,8 @@
 ## The @code{publish} function creates this format automatically.
 ##
 ## If no return value is requested the code is saved to a temporary file and
-## opened in the default editor.  NOTE: The temporary file must be saved under
-## a new or the code will be lost.
+## opened in the default editor.  NOTE: The temporary file must be saved to a
+## new filename or the code will be lost.
 ##
 ## If an output is requested the grabbed code will be returned as string
 ## @var{code_str}.
--- a/scripts/miscellaneous/gunzip.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/gunzip.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,34 +25,34 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {} gunzip (@var{gzfile})
-## @deftypefnx {} {} gunzip (@var{gzfile}, @var{dir})
+## @deftypefnx {} {} gunzip (@var{gzfile}, @var{outdir})
 ## @deftypefnx {} {@var{filelist} =} gunzip (@dots{})
 ## Unpack the gzip archive @var{gzfile}.
 ##
 ## If @var{gzfile} is a directory, all gzfiles in the directory will be
 ## recursively unpacked.
 ##
-## If @var{dir} is specified the files are unpacked in this directory rather
+## If @var{outdir} is specified the files are unpacked in this directory rather
 ## than the one where @var{gzfile} is located.
 ##
 ## The optional output @var{filelist} is a list of the uncompressed files.
 ## @seealso{gzip, unpack, bunzip2, unzip, untar}
 ## @end deftypefn
 
-function filelist = gunzip (gzfile, dir = [])
+function filelist = gunzip (gzfile, outdir = [])
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  if (isempty (dir) && ischar (gzfile))
-    dir = fileparts (gzfile);
+  if (isempty (outdir) && ischar (gzfile))
+    outdir = fileparts (gzfile);
   endif
 
   if (nargout > 0)
-    filelist = unpack (gzfile, dir, "gz");
+    filelist = unpack (gzfile, outdir, "gz");
   else
-    unpack (gzfile, dir, "gz");
+    unpack (gzfile, outdir, "gz");
   endif
 
 endfunction
--- a/scripts/miscellaneous/inputname.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/inputname.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,8 +27,8 @@
 ## public domain.
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} inputname (@var{n})
-## @deftypefnx {} {} inputname (@var{n}, @var{ids_only})
+## @deftypefn  {} {@var{namestr} =} inputname (@var{n})
+## @deftypefnx {} {@var{namestr} =} inputname (@var{n}, @var{ids_only})
 ## Return the name of the @var{n}-th argument to the calling function.
 ##
 ## If the argument is not a simple variable name, return an empty string.
@@ -59,9 +59,9 @@
 ##
 ##   c = {'a', 'b'}
 ##   y = 1; z = 2;
-##   func (c, y, z)
+##   fcn (c, y, z)
 ##   % inputname() would return 'c', 'y', 'z' for the inputs.
-##   func (c{1}, y, z)
+##   fcn (c{1}, y, z)
 ##   % inputname() would return '', '', '' for the inputs.
 ##
 ## 3) If inputname is not called from a function, Matlab walks up the stack
@@ -73,7 +73,7 @@
 ##   arrayfun (fn, a, 'uniformoutput', false)
 ##   % output is {'fn', 'a', '', ''}
 
-function name = inputname (n, ids_only = true)
+function namestr = inputname (n, ids_only = true)
 
   if (nargin < 1)
     print_usage ();
@@ -84,16 +84,16 @@
   endif
 
   try
-    name = evalin ("caller", sprintf ("__varval__ ('.argn.'){%d}", n));
+    namestr = evalin ("caller", sprintf ("__varval__ ('.argn.'){%d}", n));
   catch
-    name = "";
+    namestr = "";
     return;
   end_try_catch
 
   ## For compatibility with Matlab, return empty string if argument name is
   ## not a valid identifier.
-  if (ids_only && ! isvarname (name))
-    name = "";
+  if (ids_only && ! isvarname (namestr))
+    namestr = "";
   elseif (ids_only)
     ## More complicated checking is required to verify name (bug #59103).
     ## NAME may be text, like "Inf", which is an acceptable variable name
@@ -101,9 +101,9 @@
     ## variable name, rather than a function or IEEE number.
     try
       v = evalin ("caller",
-                  sprintf ("evalin ('caller', '__varval__ (\"%s\")')", name));
+                  sprintf ("evalin ('caller', '__varval__ (\"%s\")')", namestr));
     catch
-      name = "";
+      namestr = "";
     end_try_catch
   endif
 
--- a/scripts/miscellaneous/isdeployed.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/isdeployed.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isdeployed ()
+## @deftypefn {} {@var{tf} =} isdeployed ()
 ## Return true if the current program has been compiled and is running
 ## separately from the Octave interpreter and false if it is running in
 ## the Octave interpreter.
@@ -32,8 +32,8 @@
 ## Currently, this function always returns false in Octave.
 ## @end deftypefn
 
-function retval = isdeployed ()
-  retval = false;
+function tf = isdeployed ()
+  tf = false;
 endfunction
 
 
--- a/scripts/miscellaneous/isfolder.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/isfolder.m	Tue Nov 15 13:15:28 2022 -0800
@@ -33,7 +33,7 @@
 ## is_rooted_relative_filename}
 ## @end deftypefn
 
-function retval = isfolder (f)
+function tf = isfolder (f)
 
   if (nargin < 1)
     print_usage ();
@@ -44,10 +44,10 @@
   endif
 
   f = cellstr (f);
-  retval = false (size (f));
+  tf = false (size (f));
   for i = 1:numel (f)
     [info, err] = stat (f{i});
-    retval(i) = (! err && S_ISDIR (info.mode));
+    tf(i) = (! err && S_ISDIR (info.mode));
   endfor
 
 endfunction
--- a/scripts/miscellaneous/ismac.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/ismac.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,14 +24,14 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} ismac ()
+## @deftypefn {} {@var{tf} =} ismac ()
 ## Return true if Octave is running on a Mac OS X system and false otherwise.
 ## @seealso{isunix, ispc}
 ## @end deftypefn
 
-function retval = ismac ()
+function tf = ismac ()
 
-  retval = __octave_config_info__ ("mac");
+  tf = __octave_config_info__ ("mac");
 
 endfunction
 
--- a/scripts/miscellaneous/ismethod.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/ismethod.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,14 +24,14 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} ismethod (@var{obj}, @var{method})
-## @deftypefnx {} {} ismethod (@var{class_name}, @var{method})
+## @deftypefn  {} {@var{tf} =} ismethod (@var{obj}, @var{method})
+## @deftypefnx {} {@var{tf} =} ismethod (@var{class_name}, @var{method})
 ## Return true if the string @var{method} is a valid method of the object
 ## @var{obj} or of the class @var{clsname}.
 ## @seealso{isprop, isobject, isjava, methods}
 ## @end deftypefn
 
-function retval = ismethod (obj, method)
+function tf = ismethod (obj, method)
 
   if (nargin != 2)
     print_usage ();
@@ -47,7 +47,7 @@
 
   method_list = methods (obj);
 
-  retval = ismember (method, method_list);
+  tf = ismember (method, method_list);
 
 endfunction
 
--- a/scripts/miscellaneous/ispc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/ispc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,14 +24,14 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} ispc ()
+## @deftypefn {} {@var{tf} =} ispc ()
 ## Return true if Octave is running on a Windows system and false otherwise.
 ## @seealso{isunix, ismac}
 ## @end deftypefn
 
-function retval = ispc ()
+function tf = ispc ()
 
-  retval = __octave_config_info__ ("windows");
+  tf = __octave_config_info__ ("windows");
 
 endfunction
 
--- a/scripts/miscellaneous/isunix.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/isunix.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,14 +24,14 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isunix ()
+## @deftypefn {} {@var{tf} =} isunix ()
 ## Return true if Octave is running on a Unix-like system and false otherwise.
 ## @seealso{ismac, ispc}
 ## @end deftypefn
 
-function retval = isunix ()
+function tf = isunix ()
 
-  retval = __octave_config_info__ ("unix");
+  tf = __octave_config_info__ ("unix");
 
 endfunction
 
--- a/scripts/miscellaneous/license.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/license.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,10 +28,11 @@
 ## @deftypefnx {} {} license inuse
 ## @deftypefnx {} {} license inuse @var{feature}
 ## @deftypefnx {} {} license ("inuse")
-## @deftypefnx {} {@var{retval} =} license ("inuse")
-## @deftypefnx {} {@var{retval} =} license ("test", @var{feature})
-## @deftypefnx {} {@var{retval} =} license ("checkout", @var{feature})
-## @deftypefnx {} {[@var{retval}, @var{errmsg}] =} license ("checkout", @var{feature})
+## @deftypefnx {} {@var{license_struct} =} license ("inuse")
+## @deftypefnx {} {@var{license_struct} =} license ("inuse", @var{feature})
+## @deftypefnx {} {@var{status} =} license ("test", @var{feature})
+## @deftypefnx {} {@var{status} =} license ("checkout", @var{feature})
+## @deftypefnx {} {[@var{status}, @var{errmsg}] =} license ("checkout", @var{feature})
 ## Get license information for Octave and Octave packages.
 ##
 ## GNU Octave is free software distributed under the GNU General Public
@@ -41,12 +42,12 @@
 ## When called with no extra input arguments, it returns the Octave license,
 ## otherwise the first input defines the operation mode and must be one of
 ## the following strings: @code{inuse}, @code{test}, and @code{checkout}.
-## The optional @var{feature} argument can either be @qcode{"octave"} (core),
-## or an Octave package.
+## The optional @var{feature} argument can either be @qcode{"octave"} (core)
+## or the name of an Octave package.
 ##
 ## @table @asis
 ## @item @qcode{"inuse"}
-## Returns a list of loaded features, i.e., octave and the list of loaded
+## Print a list of loaded features, i.e., "octave" and the list of loaded
 ## packages.  If an output is requested, it returns a struct array with
 ## the fields @qcode{"feature"}, and @qcode{"user"}.
 ##
@@ -66,11 +67,11 @@
 ## @seealso{pkg, ver, version}
 ## @end deftypefn
 
-function [retval, errmsg] = license (cmd, feature, toggle)
+function [status, errmsg] = license (cmd, feature, toggle)
 
   if (nargin == 0)
     ## then only give information about Octave core
-    retval = "GNU General Public License";
+    status = "GNU General Public License";
     return;
   endif
 
@@ -86,7 +87,7 @@
       if (nargout == 0)
         printf ("%s\n", features{:});
       else
-        retval = struct ("feature", features, "user", get_username ());
+        status = struct ("feature", features, "user", get_username ());
       endif
 
     case "test"
@@ -105,7 +106,7 @@
         endswitch
       endif
 
-      retval = any (strcmp (features, feature));
+      status = any (strcmp (features, feature));
 
     case "checkout"
       ## I guess we could have the checkout command load packages but it's not
@@ -116,10 +117,10 @@
         print_usage ();
       endif
 
-      retval = any (strcmp (features, feature));
+      status = any (strcmp (features, feature));
       errmsg = "";
 
-      if (! retval)
+      if (! status)
         errmsg = ['No package named "' feature '" installed'];
       endif
 
--- a/scripts/miscellaneous/list_primes.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/list_primes.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,15 +24,15 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} list_primes ()
-## @deftypefnx {} {} list_primes (@var{n})
+## @deftypefn  {} {@var{p} =} list_primes ()
+## @deftypefnx {} {@var{p} =} list_primes (@var{n})
 ## List the first @var{n} primes.
 ##
 ## If @var{n} is unspecified, the first 25 primes are listed.
 ## @seealso{primes, isprime}
 ## @end deftypefn
 
-function retval = list_primes (n = 25)
+function p = list_primes (n = 25)
 
   if (! isreal (n) || ! isscalar (n))
     error ("list_primes: N must be a real scalar");
@@ -41,10 +41,10 @@
   n = floor (n);
 
   if (n < 1)
-    retval = [];
+    p = [];
     return;
   elseif (n == 1)
-    retval = 2;
+    p = 2;
     return;
   endif
 
@@ -54,7 +54,7 @@
     error ("list_primes: Algorithm failed.  Try primes (n*log (6*n))(1:n)");
   endif
 
-  retval = list(1:n);
+  p = list(1:n);
 
 endfunction
 
--- a/scripts/miscellaneous/ls.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/ls.m	Tue Nov 15 13:15:28 2022 -0800
@@ -58,7 +58,7 @@
 ## @seealso{dir, readdir, glob, what, stat, filesep, ls_command}
 ## @end deftypefn
 
-function retval = ls (varargin)
+function list = ls (varargin)
 
   if (! iscellstr (varargin))
     error ("ls: all arguments must be character strings");
@@ -117,7 +117,7 @@
     elseif (nargout == 0)
       puts (output);
     else
-      retval = strvcat (regexp (output, "[\r\n]+", "split"){:});
+      list = strvcat (regexp (output, "[\r\n]+", "split"){:});
     endif
   else
     ## Just let the output flow if the pager is off.  That way the
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/miscellaneous/memoize.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,106 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {@var{mem_fcn_handle} =} memoize (@var{fcn_handle})
+##
+## Create a memoized version @var{mem_fcn_handle} of function @var{fcn_handle}.
+##
+## Each call to the memoized version @var{mem_fcn_handle} checks the inputs
+## against an internally maintained table, and if the inputs have occurred
+## previously, then the result of the function call is returned from the table
+## itself instead of evaluating the full function again.  This speeds up the
+## execution of functions that are called with the same inputs multiple times.
+##
+## For example, here we take a slow user-written function named @code{slow_fcn}
+## and memoize it to a new handle @code{cyc}.  The first executions of both
+## versions take the same time, but the subsequent executions of the memoized
+## version returns the previously computed value, thus reducing 2.4 seconds of
+## runtime to only 2.4 milliseconds.  The final check verifies that the same
+## result was returned from both versions.
+##
+## @example
+## @group
+## >> tic; @var{p} = slow_fcn (5040); toc
+## Elapsed time is 2.41244 seconds.
+## >> tic; @var{p} = slow_fcn (5040); toc
+## Elapsed time is 2.41542 seconds.
+##
+## >> cyc = memoize (@@slow_fcn);
+## >> tic; @var{r} = cyc (5040); toc
+## Elapsed time is 2.42609 seconds.
+## >> tic; @var{r} = cyc (5040); toc
+## Elapsed time is 0.00236511 seconds.
+##
+## >> all (@var{p} == @var{r})
+## ans = 1
+## @end group
+## @end example
+##
+## @seealso{clearAllMemoizedCaches}
+## @end deftypefn
+
+function mem_fcn_handle = memoize (fcn_handle)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  if (! is_function_handle (fcn_handle))
+    error ("memoize: FCN_HANDLE must be a function handle");
+  endif
+
+  mem_fcn_handle = __memoize__ (fcn_handle);
+
+endfunction
+
+
+%!test
+%! fcn1 = memoize (@sin);
+%! assert (isa (fcn1, "matlab.lang.MemoizedFunction"));
+%! fcn1 (pi);
+%! fcn2 = memoize (@sin);
+%! fcn2 (2*pi);
+%! assert (isequal (fcn1, fcn2));
+
+%!test
+%! fcn = memoize (@rand);
+%! a = fcn ();
+%! b = fcn ();
+%! assert (a, b);
+%! fcn2 = memoize (@rand);
+%! c = fcn2 ();
+%! assert (a, c);
+
+%!test
+%! fcn = memoize (@plus);
+%! fcn.stats;
+%! stats (fcn);
+%! clearCache (fcn);
+%! fcn.clearCache;
+
+## Test input validation
+%!error <Invalid call> memoize ();
+%!error <FCN_HANDLE must be a function handle> memoize (1);
--- a/scripts/miscellaneous/mexext.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/mexext.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,13 +24,17 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} mexext ()
+## @deftypefn {} {@var{ext} =} mexext ()
 ## Return the filename extension used for MEX files.
+##
+## Programming Note: Octave uses the extension @file{mex} for all MEX files
+## regardless of the operating system (Linux, Windows, Apple) or the bit-width
+## (32-bit or 64-bit) of the hardware.
 ## @seealso{mex}
 ## @end deftypefn
 
-function retval = mexext ()
-  retval = "mex";
+function ext = mexext ()
+  ext = "mex";
 endfunction
 
 
--- a/scripts/miscellaneous/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -3,6 +3,7 @@
   %reldir%/private
 
 %canon_reldir%_PRIVATE_FCN_FILES = \
+  %reldir%/private/__memoize__.m \
   %reldir%/private/__publish_html_output__.m \
   %reldir%/private/__publish_latex_output__.m \
   %reldir%/private/__w2mpth__.m \
@@ -15,6 +16,7 @@
   %reldir%/bunzip2.m \
   %reldir%/cast.m \
   %reldir%/citation.m \
+  %reldir%/clearAllMemoizedCaches.m \
   %reldir%/clearvars.m \
   %reldir%/compare_versions.m \
   %reldir%/computer.m \
@@ -46,6 +48,7 @@
   %reldir%/loadobj.m \
   %reldir%/ls.m \
   %reldir%/ls_command.m \
+  %reldir%/memoize.m \
   %reldir%/memory.m \
   %reldir%/menu.m \
   %reldir%/methods.m \
@@ -94,7 +97,6 @@
   %reldir%/swapbytes.m \
   %reldir%/symvar.m \
   %reldir%/tar.m \
-  %reldir%/tempdir.m \
   %reldir%/unix.m \
   %reldir%/unpack.m \
   %reldir%/untar.m \
--- a/scripts/miscellaneous/movefile.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/movefile.m	Tue Nov 15 13:15:28 2022 -0800
@@ -30,6 +30,8 @@
 ## @deftypefnx {} {} movefile (@var{f1})
 ## @deftypefnx {} {} movefile (@var{f1}, @var{f2})
 ## @deftypefnx {} {} movefile (@var{f1}, @var{f2}, 'f')
+## @deftypefnx {} {[@var{status}] =} movefile (@dots{})
+## @deftypefnx {} {[@var{status}, @var{msg}] =} movefile (@dots{})
 ## @deftypefnx {} {[@var{status}, @var{msg}, @var{msgid}] =} movefile (@dots{})
 ## Move the source file or directory @var{f1} to the destination @var{f2}.
 ##
--- a/scripts/miscellaneous/mustBeInteger.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/mustBeInteger.m	Tue Nov 15 13:15:28 2022 -0800
@@ -50,7 +50,9 @@
     but = sprintf ("it was non-numeric (found a %s)", class (x));
   elseif (! isreal (x))
     but = "it was complex";
-  elseif (any (! isfinite (x)))
+  elseif (issparse (x) && (any (isinf (x)) || any (isnan (x))))
+    but = "there were non-finite values";
+  elseif (! issparse (x) && any (! isfinite (x)))
     but = "there were non-finite values";
   elseif (any (x != fix (x)))
     but = "it had fractional values in some elements";
--- a/scripts/miscellaneous/mustBeNonzero.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/mustBeNonzero.m	Tue Nov 15 13:15:28 2022 -0800
@@ -47,7 +47,7 @@
       label = "input";
     endif
     bad_idx = find (tf);
-    errmsg = sprintf ("%s must be non-zero; found %d elements that were zero: indexes %s", ...
+    errmsg = sprintf ("%s must be nonzero; found %d elements that were zero: indexes %s", ...
                       label, numel (bad_idx), mat2str (bad_idx));
     error (errmsg);
   endif
--- a/scripts/miscellaneous/namelengthmax.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/namelengthmax.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} namelengthmax ()
+## @deftypefn {} {@var{n} =} namelengthmax ()
 ## Return the @sc{matlab} compatible maximum variable name length.
 ##
 ## Octave is capable of storing strings up to @math{2^{31} - 1} in length.
--- a/scripts/miscellaneous/nargoutchk.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/nargoutchk.m	Tue Nov 15 13:15:28 2022 -0800
@@ -49,12 +49,12 @@
 
 function msg = nargoutchk (minargs, maxargs, nargs, outtype)
 
-  ## before matlab's 2011b, nargoutchk would return an error message (just the
+  ## Before Matlab 2011b, nargoutchk would return an error message (just the
   ## message in a string).  With 2011b, it no longer returns anything, it
   ## simply gives an error if the args number is incorrect.
   ## To try to keep compatibility with both versions, check nargout and nargin
-  ## to guess if the caller is expecting a value (old syntax)
-  ## or none (new syntax).
+  ## to guess if the caller is expecting a value (old syntax) or none
+  ## (new syntax).
 
   if (nargout == 1 && (nargin == 3 || nargin == 4))
 
--- a/scripts/miscellaneous/nthargout.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/nthargout.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,20 +24,20 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} nthargout (@var{n}, @var{func}, @dots{})
-## @deftypefnx {} {} nthargout (@var{n}, @var{ntot}, @var{func}, @dots{})
+## @deftypefn  {} {@var{arg} =} nthargout (@var{n}, @var{fcn}, @dots{})
+## @deftypefnx {} {@var{arg} =} nthargout (@var{n}, @var{ntot}, @var{fcn}, @dots{})
 ## Return the @var{n}th output argument of the function specified by the
-## function handle or string @var{func}.
+## function handle or string @var{fcn}.
 ##
-## Any additional arguments are passed directly to @var{func}.  The total
-## number of arguments to call @var{func} with can be passed in @var{ntot}; by
+## Any additional arguments are passed directly to @var{fcn}.  The total
+## number of arguments to call @var{fcn} with can be passed in @var{ntot}; by
 ## default @var{ntot} is @var{n}.  The input @var{n} can also be a vector of
 ## indices of the output, in which case the output will be a cell array of the
 ## requested output arguments.
 ##
-## The intended use @code{nthargout} is to avoid intermediate variables.  For
-## example, when finding the indices of the maximum entry of a matrix, the
-## following two compositions of nthargout
+## The intended use of @code{nthargout} is to avoid intermediate variables.
+## For example, when finding the indices of the maximum entry of a matrix, the
+## following two compositions of @code{nthargout}
 ##
 ## @example
 ## @group
@@ -61,8 +61,8 @@
 ## @end group
 ## @end example
 ##
-## It can also be helpful to have all output arguments in a single cell in the
-## following manner:
+## It can also be helpful to have all output arguments collected in a single
+## cell array as the following code demonstrates:
 ##
 ## @example
 ## @var{USV} = nthargout ([1:3], @@svd, hilb (5));
@@ -71,7 +71,7 @@
 ## @seealso{nargin, nargout, varargin, varargout, isargout}
 ## @end deftypefn
 
-function out = nthargout (n, varargin)
+function arg = nthargout (n, varargin)
 
   if (nargin < 2)
     print_usage ();
@@ -79,12 +79,12 @@
 
   if (is_function_handle (varargin{1}) || ischar (varargin{1}))
     ntot = max (n(:));
-    func = varargin{1};
+    fcn = varargin{1};
     args = varargin(2:end);
   elseif (isnumeric (varargin{1})
           && (is_function_handle (varargin{2}) || ischar (varargin{2})))
     ntot = varargin{1};
-    func = varargin{2};
+    fcn = varargin{2};
     args = varargin(3:end);
   else
     print_usage ();
@@ -97,11 +97,11 @@
   outargs = cell (1, ntot);
 
   try
-    [outargs{:}] = feval (func, args{:});
+    [outargs{:}] = feval (fcn, args{:});
     if (numel (n) > 1)
-      out = outargs(n);
+      arg = outargs(n);
     else
-      out = outargs{n};
+      arg = outargs{n};
     endif
   catch
     err = lasterr ();
--- a/scripts/miscellaneous/perl.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/perl.m	Tue Nov 15 13:15:28 2022 -0800
@@ -36,27 +36,32 @@
 ## @seealso{system, python}
 ## @end deftypefn
 
-function [output, status] = perl (scriptfile = "-e ''", varargin)
+function [output, status] = perl (scriptfile, varargin)
 
-  ## VARARGIN is initialized to {}(1x0) if no additional arguments are
-  ## supplied, so there is no need to check for it, or provide an
-  ## initial value in the argument list of the function definition.
+  if (nargin < 1)
+    print_usage ();
+  endif
 
-  if (ischar (scriptfile)
-      && (   (nargin == 1 && ! isempty (scriptfile))
-          || (nargin != 1 && iscellstr (varargin))))
-    if (! strcmp (scriptfile(1:2), "-e"))
-      ## Attempt to find file in loadpath.  No effect for absolute filenames.
-      scriptfile = file_in_loadpath (scriptfile);
-    endif
+  if (! ischar (scriptfile) || isempty (scriptfile))
+    error ("perl: SCRIPTFILE must be a non-empty string");
+  endif
+  if (nargin > 1 && ! iscellstr (varargin))
+    error ("perl: ARGUMENTS must be strings");
+  endif
 
-    [status, output] = system (["perl " scriptfile ...
-                                sprintf(" %s", varargin{:})]);
-  else
-    error ("perl: invalid arguments");
+  if (numel (scriptfile) < 2 || ! strcmp (scriptfile(1:2), "-e"))
+    ## Attempt to find file in loadpath.  No effect for absolute filenames.
+    scriptfile = file_in_loadpath (scriptfile);
   endif
 
+  [status, output] = system (["perl " scriptfile ...
+                              sprintf(" %s", varargin{:})]);
+
 endfunction
 
 
-%!error <invalid arguments> perl (123)
+## Test input validation
+%!error <Invalid call> perl ()
+%!error <SCRIPTFILE must be a non-empty string> perl (123)
+%!error <SCRIPTFILE must be a non-empty string> perl ("")
+%!error <ARGUMENTS must be strings> perl ("perlfile", 123)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/miscellaneous/private/__memoize__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,57 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn  {} {@var{mem_fcn_handle} =} __memoize__ (@var{fcn_handle})
+## @deftypefn  {} {} __memoize__ ()
+## Internal function used by @code{memoize}.
+##
+## @seealso{clearAllMemoizedCaches, memoize}
+## @end deftypefn
+
+function mem_fcn_handle = __memoize__ (fcn_handle)
+  persistent cached_mem_fcn_handle
+
+  if (nargin)
+
+    for i = 1:numel (cached_mem_fcn_handle)
+      if (isequal (cached_mem_fcn_handle{i}.Function, fcn_handle))
+        mem_fcn_handle = cached_mem_fcn_handle{i};
+        return;
+      endif
+    endfor
+
+    mem_fcn_handle = matlab.lang.MemoizedFunction (fcn_handle);
+    cached_mem_fcn_handle{end+1} = mem_fcn_handle;
+
+  else
+
+    for i = 1:numel (cached_mem_fcn_handle)
+      clearCache (cached_mem_fcn_handle{i});
+    endfor
+
+  endif
+
+endfunction
--- a/scripts/miscellaneous/private/__w2mpth__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/private/__w2mpth__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -64,12 +64,12 @@
 
 ## Use single quote strings for winpaths to cope with backslashes.
 ## These tests are commented out until a better place is found (bug #44581)
-##%!test
-##%! if (ispc)
-##%!   assert (__w2mpth__ ('file.fil'), 'file.fil');
-##%!   assert (__w2mpth__ ('\file.fil'), '/file.fil');
-##%!   assert (__w2mpth__ ('G:\file.fil'), '/G/file.fil');
-##%!   assert (__w2mpth__ ('r:\subdir\file.fil'), '/r/subdir/file.fil');
-##%!   assert (__w2mpth__ ('relative\path\to\file.dat'),
-##%!                       'relative/path/to/file.dat')
-##%! endif
+%!#test
+%!# if (ispc)
+%!#   assert (__w2mpth__ ('file.fil'), 'file.fil');
+%!#   assert (__w2mpth__ ('\file.fil'), '/file.fil');
+%!#   assert (__w2mpth__ ('G:\file.fil'), '/G/file.fil');
+%!#   assert (__w2mpth__ ('r:\subdir\file.fil'), '/r/subdir/file.fil');
+%!#   assert (__w2mpth__ ('relative\path\to\file.dat'),
+%!#                       'relative/path/to/file.dat')
+%!# endif
--- a/scripts/miscellaneous/private/display_info_file.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/private/display_info_file.m	Tue Nov 15 13:15:28 2022 -0800
@@ -26,10 +26,10 @@
 ## news() and citation() are very much alike.  They both do the same thing,
 ## just for different files.  This function does all the work.
 
-function display_info_file (func, package, file)
+function display_info_file (fcn, package, file)
 
   if (! ischar (package))
-    error ("%s: PACKAGE must be a string", func);
+    error ("%s: PACKAGE must be a string", fcn);
   endif
 
   if (strcmpi (package, "octave"))
@@ -40,16 +40,16 @@
     names     = cellfun (@(x) x.name, installed, "UniformOutput", false);
     pos       = strcmpi (names, package);
     if (! any (pos))
-      error ("%s: package '%s' is not installed", func, package);
+      error ("%s: package '%s' is not installed", fcn, package);
     endif
     filepath = fullfile (installed{pos}.dir, "packinfo", file);
   endif
 
   if (! exist (filepath, "file"))
     if (strcmpi (package, "octave"))
-      error ("%s: broken installation -- unable to locate %s file", func, file);
+      error ("%s: broken installation -- unable to locate %s file", fcn, file);
     else
-      error ("%s: unable to locate %s file for package %s", func, file, package);
+      error ("%s: unable to locate %s file for package %s", fcn, file, package);
     endif
   endif
 
--- a/scripts/miscellaneous/python.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/python.m	Tue Nov 15 13:15:28 2022 -0800
@@ -33,26 +33,58 @@
 ## Return output in @var{output} and optional status in @var{status}.  If
 ## @var{scriptfile} is not an absolute filename it is searched for in the
 ## current directory and then in the Octave loadpath.
+##
+## Programming Note: On UNIX systems, the script will be executed by
+## @command{python3} and on Windows by @command{python}.  You can override
+## these defaults by setting the @env{PYTHON} environment variable, for example
+## from within Octave using @code{setenv PYTHON /usr/local/bin/python3}.
+##
 ## @seealso{system, perl}
 ## @end deftypefn
 
-function [output, status] = python (scriptfile = "-c ''", varargin)
+function [output, status] = python (scriptfile, varargin)
+
+  persistent pyexec = get_python_executable ();
+
+  if (nargin < 1)
+    print_usage ();
+  endif
 
-  if (ischar (scriptfile)
-      && (   (nargin == 1 && ! isempty (scriptfile))
-          || (nargin != 1 && iscellstr (varargin))))
-    if (! strcmp (scriptfile(1:2), "-c"))
+  if (! ischar (scriptfile) || isempty (scriptfile))
+    error ("python: SCRIPTFILE must be a non-empty string");
+  endif
+  if (nargin > 1 && ! iscellstr (varargin))
+    error ("python: ARGUMENTS must be strings");
+  endif
+
+  if (numel (scriptfile) < 2 || ! strcmp (scriptfile(1:2), "-c"))
       ## Attempt to find file in loadpath.  No effect for absolute filenames.
       scriptfile = file_in_loadpath (scriptfile);
     endif
 
-    [status, output] = system (["python ", scriptfile, ...
-                                sprintf(" %s", varargin{:})]);
-  else
-    error ("python: invalid arguments");
+  [status, output] = system ([pyexec " " scriptfile, ...
+                              sprintf(" %s", varargin{:})]);
+
+endfunction
+
+function pyexec = get_python_executable ()
+
+  pyexec = getenv ("PYTHON");
+  if (isempty (pyexec))
+    ## PEP394 says Python 3 installs should all provide this command
+    pyexec = "python3";
+
+    if (ispc () && (! isunix ()))
+      ## 2020-03: Python.org installer/Anaconda do not provide python3
+      pyexec = "python";
+    endif
   endif
 
 endfunction
 
 
-%!error <invalid arguments> python (123)
+## Test input validation
+%!error <Invalid call> python ()
+%!error <SCRIPTFILE must be a non-empty string> python (123)
+%!error <SCRIPTFILE must be a non-empty string> python ("")
+%!error <ARGUMENTS must be strings> python ("pythonfile", 123)
--- a/scripts/miscellaneous/substruct.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/substruct.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} substruct (@var{type}, @var{subs}, @dots{})
+## @deftypefn {} {@var{s} =} substruct (@var{type}, @var{subs}, @dots{})
 ## Create a subscript structure for use with @code{subsref} or @code{subsasgn}.
 ##
 ## For example:
@@ -50,7 +50,7 @@
 ## @seealso{subsref, subsasgn}
 ## @end deftypefn
 
-function retval = substruct (varargin)
+function s = substruct (varargin)
 
   if (nargin < 2 || mod (nargin, 2) != 0)
     print_usage ();
@@ -72,7 +72,7 @@
     error ('substruct: TYPE must be one of "()", "{}", or ""');
   endif
 
-  retval = struct ("type", typ, "subs", sub);
+  s = struct ("type", typ, "subs", sub);
 
 endfunction
 
--- a/scripts/miscellaneous/swapbytes.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/swapbytes.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} swapbytes (@var{x})
+## @deftypefn {} {@var{y} =} swapbytes (@var{x})
 ## Swap the byte order on values, converting from little endian to big endian
 ## and vice versa.
 ##
--- a/scripts/miscellaneous/tempdir.m	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-########################################################################
-##
-## Copyright (C) 2003-2022 The Octave Project Developers
-##
-## See the file COPYRIGHT.md in the top-level directory of this
-## distribution or <https://octave.org/copyright/>.
-##
-## This file is part of Octave.
-##
-## Octave is free software: you can redistribute it and/or modify it
-## under the terms of the GNU General Public License as published by
-## the Free Software Foundation, either version 3 of the License, or
-## (at your option) any later version.
-##
-## Octave is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with Octave; see the file COPYING.  If not, see
-## <https://www.gnu.org/licenses/>.
-##
-########################################################################
-
-## -*- texinfo -*-
-## @deftypefn {} {@var{dir} =} tempdir ()
-## Return the name of the host system's directory for temporary files.
-##
-## The directory name is taken first from the environment variable
-## @env{TMPDIR}.  If that does not exist the system default returned by
-## @code{P_tmpdir} is used.
-## @seealso{P_tmpdir, tempname, mkstemp, tmpfile}
-## @end deftypefn
-
-function dirname = tempdir ()
-
-  dirname = getenv ("TMPDIR");
-  if (isempty (dirname))
-    dirname = P_tmpdir ();
-  endif
-
-  if (! strcmp (dirname(end), filesep))
-    dirname = [dirname filesep];
-  endif
-
-  if (! isfolder (dirname))
-    warning ("tempdir: '%s' does not exist or is not a directory", dirname);
-  endif
-
-endfunction
-
-
-%!assert (ischar (tempdir ()))
-
-%!test
-%! old_wstate = warning ("query");
-%! warning ("off");
-%! old_tmpdir = getenv ("TMPDIR");
-%! unwind_protect
-%!   setenv ("TMPDIR", "__MY_TMP_DIR__");
-%!   assert (tempdir (), ["__MY_TMP_DIR__" filesep()]);
-%! unwind_protect_cleanup
-%!   if (! isempty (old_tmpdir))
-%!     setenv ("TMPDIR", old_tmpdir);
-%!   else
-%!     unsetenv ("TMPDIR");
-%!   endif
-%!   warning (old_wstate);
-%! end_unwind_protect
--- a/scripts/miscellaneous/ver.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/ver.m	Tue Nov 15 13:15:28 2022 -0800
@@ -56,7 +56,7 @@
 ## @seealso{version, usejava, pkg}
 ## @end deftypefn
 
-function retval = ver (package = "")
+function v = ver (package = "")
 
   if (nargout == 0)
     hg_id = __octave_config_info__ ("hg_id");
@@ -91,24 +91,24 @@
     if (isempty (package))
       ## Start with the version info for Octave
       [octver, octdate] = version ();
-      retval = struct ("Name", "Octave", "Version", octver,
-                       "Release", [], "Date", octdate);
+      v = struct ("Name", "Octave", "Version", octver,
+                  "Release", [], "Date", octdate);
       lst = pkg ("list");
       for i = 1:numel (lst)
-        retval(end+1) = struct ("Name", lst{i}.name, "Version", lst{i}.version,
-                                "Release", [], "Date", lst{i}.date);
+        v(end+1) = struct ("Name", lst{i}.name, "Version", lst{i}.version,
+                           "Release", [], "Date", lst{i}.date);
       endfor
     elseif (strcmpi (package, "Octave"))
       [octver, octdate] = version ();
-      retval = struct ("Name", "Octave", "Version", octver,
-                       "Release", [], "Date", octdate);
+      v = struct ("Name", "Octave", "Version", octver,
+                  "Release", [], "Date", octdate);
     else
       lst = pkg ("list", package);
       if (isempty (lst))
-        retval = struct ("Name", {}, "Version", {}, "Release", {}, "Date", {});
+        v = struct ("Name", {}, "Version", {}, "Release", {}, "Date", {});
       else
-        retval = struct ("Name", lst{1}.name, "Version", lst{1}.version,
-                         "Release", [], "Date", lst{1}.date);
+        v = struct ("Name", lst{1}.name, "Version", lst{1}.version,
+                    "Release", [], "Date", lst{1}.date);
       endif
     endif
   endif
--- a/scripts/miscellaneous/verLessThan.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/verLessThan.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} verLessThan (@var{package}, @var{version})
+## @deftypefn {} {@var{tf} =} verLessThan (@var{package}, @var{version})
 ## Return true if the installed version of the package is less than
 ## @var{version}.
 ##
@@ -56,7 +56,7 @@
 ## @seealso{compare_versions, version, ver, pkg}
 ## @end deftypefn
 
-function retval = verLessThan (package, version)
+function tf = verLessThan (package, version)
 
   if (nargin != 2)
     print_usage ();
@@ -72,7 +72,7 @@
     error ('verLessThan: package "%s" is not installed', package);
   endif
 
-  retval = compare_versions (v(idx).Version, version, "<");
+  tf = compare_versions (v(idx).Version, version, "<");
 
 endfunction
 
--- a/scripts/miscellaneous/what.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/miscellaneous/what.m	Tue Nov 15 13:15:28 2022 -0800
@@ -71,7 +71,7 @@
 ## @seealso{which, ls, exist}
 ## @end deftypefn
 
-function retval = what (dir)
+function w = what (dir)
 
   if (nargin == 0)
     dir = { pwd() };
@@ -98,26 +98,26 @@
 
    ## Lookup info for each directory
    for i = 1 : numel (dir)
-     w(i) = __what__ (dir{i});
+     ws(i) = __what__ (dir{i});
    endfor
 
    ## If none was found, return an empty struct
    if (numel (dir) == 0)
-     w = __what__ ("");
-     w = resize (w, [0, 1]);  # Matlab compatibility, return 0x1 empty array
+     ws = __what__ ("");
+     ws = resize (ws, [0, 1]);  # Matlab compatibility, return 0x1 empty array
    endif
 
   if (nargout == 0)
-    for i = 1 : numel (w)
-      __print_fnames__ ("M-files in directory", w(i).path, w(i).m);
-      __print_fnames__ ("\nMAT-files in directory", w(i).path, w(i).mat);
-      __print_fnames__ ("\nMEX-files in directory", w(i).path, w(i).mex);
-      __print_fnames__ ("\nOCT-files in directory", w(i).path, w(i).oct);
-      __print_fnames__ ("\nClasses in directory", w(i).path, w(i).classes);
-      __print_fnames__ ("\nPackages in directory", w(i).path, w(i).packages);
+    for i = 1 : numel (ws)
+      __print_fnames__ ("M-files in directory", ws(i).path, ws(i).m);
+      __print_fnames__ ("\nMAT-files in directory", ws(i).path, ws(i).mat);
+      __print_fnames__ ("\nMEX-files in directory", ws(i).path, ws(i).mex);
+      __print_fnames__ ("\nOCT-files in directory", ws(i).path, ws(i).oct);
+      __print_fnames__ ("\nClasses in directory", ws(i).path, ws(i).classes);
+      __print_fnames__ ("\nPackages in directory", ws(i).path, ws(i).packages);
     endfor
   else
-    retval = w;
+    w = ws;
   endif
 
 endfunction
--- a/scripts/ode/decic.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/decic.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{y0_new}, @var{yp0_new}] =} decic (@var{fun}, @var{t0}, @var{y0}, @var{fixed_y0}, @var{yp0}, @var{fixed_yp0})
-## @deftypefnx {} {[@var{y0_new}, @var{yp0_new}] =} decic (@var{fun}, @var{t0}, @var{y0}, @var{fixed_y0}, @var{yp0}, @var{fixed_yp0}, @var{options})
+## @deftypefn  {} {[@var{y0_new}, @var{yp0_new}] =} decic (@var{fcn}, @var{t0}, @var{y0}, @var{fixed_y0}, @var{yp0}, @var{fixed_yp0})
+## @deftypefnx {} {[@var{y0_new}, @var{yp0_new}] =} decic (@var{fcn}, @var{t0}, @var{y0}, @var{fixed_y0}, @var{yp0}, @var{fixed_yp0}, @var{options})
 ## @deftypefnx {} {[@var{y0_new}, @var{yp0_new}, @var{resnorm}] =} decic (@dots{})
 ##
 ## Compute consistent implicit ODE initial conditions @var{y0_new} and
@@ -34,12 +34,12 @@
 ## A maximum of @code{length (@var{y0})} components between @var{fixed_y0} and
 ## @var{fixed_yp0} may be chosen as fixed values.
 ##
-## @var{fun} is a function handle.  The function must accept three inputs where
+## @var{fcn} is a function handle.  The function must accept three inputs where
 ## the first is time @var{t}, the second is a column vector of unknowns
 ## @var{y}, and the third is a column vector of unknowns @var{yp}.
 ##
 ## @var{t0} is the initial time such that
-## @code{@var{fun}(@var{t0}, @var{y0_new}, @var{yp0_new}) = 0}, specified as a
+## @code{@var{fcn}(@var{t0}, @var{y0_new}, @var{yp0_new}) = 0}, specified as a
 ## scalar.
 ##
 ## @var{y0} is a vector used as the initial guess for @var{y}.
@@ -93,7 +93,7 @@
 ## @seealso{ode15i, odeset}
 ## @end deftypefn
 
-function [y0_new, yp0_new, resnorm] = decic (fun, t0,
+function [y0_new, yp0_new, resnorm] = decic (fcn, t0,
                                              y0, fixed_y0, yp0, fixed_yp0,
                                              options)
 
@@ -102,9 +102,9 @@
   endif
 
   ## Validate inputs
-  if (! is_function_handle (fun))
+  if (! is_function_handle (fcn))
     error ("Octave:invalid-input-arg",
-           "decic: FUN must be a valid function handle");
+           "decic: FCN must be a valid function handle");
   endif
 
   if (! (isnumeric (t0) && isscalar (t0)))
@@ -171,7 +171,7 @@
   x0 = [y0(! fixed_y0); yp0(! fixed_yp0)];
   opt = optimset ("tolfun", TolFun, "tolx", TolX, "FinDiffType", "central");
   x = ...
-    fminunc (@(x) objective (x, t0, y0, fixed_y0, yp0, fixed_yp0, nl, nu, fun),
+    fminunc (@(x) objective (x, t0, y0, fixed_y0, yp0, fixed_yp0, nl, nu, fcn),
              x0, opt);
 
   y0_new  = y0;
@@ -180,18 +180,18 @@
   y0_new(! fixed_y0)   = x(1:nl);
   yp0_new(! fixed_yp0) = x(nl+1:nl+nu);
   if (isargout (3))
-    resnorm = fun (t0, y0_new, yp0_new);
+    resnorm = fcn (t0, y0_new, yp0_new);
   endif
 
 endfunction
 
-function res = objective (x, t0, y0, fixed_y0, yp0, fixed_yp0, nl, nu, fun)
+function res = objective (x, t0, y0, fixed_y0, yp0, fixed_yp0, nl, nu, fcn)
 
   y = y0;
   y(! fixed_y0) = x(1:nl);
   yp = yp0;
   yp(! fixed_yp0) = x(nl+1:nl+nu);
-  res = sqrt (sum (fun (t0, y, yp) .^ 2));
+  res = sqrt (sum (fcn (t0, y, yp) .^ 2));
 
 endfunction
 
@@ -221,7 +221,7 @@
 %!error <Invalid call> decic (1,2,3)
 %!error <Invalid call> decic (1,2,3,4)
 %!error <Invalid call> decic (1,2,3,4,5)
-%!error <FUN must be a valid function handle>
+%!error <FCN must be a valid function handle>
 %! decic (1, 0, [1; 0; 0], [1; 1; 0], [-1e-4; 1; 0], [0; 0; 0]);
 %!error <T0 must be a numeric scalar>
 %! decic (@rob, [1, 1], [1; 0; 0], [1; 1; 0], [-1e-4; 1; 0], [0; 0; 0]);
--- a/scripts/ode/ode15i.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/ode15i.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{t}, @var{y}] =} ode15i (@var{fun}, @var{trange}, @var{y0}, @var{yp0})
-## @deftypefnx {} {[@var{t}, @var{y}] =} ode15i (@var{fun}, @var{trange}, @var{y0}, @var{yp0}, @var{ode_opt})
+## @deftypefn  {} {[@var{t}, @var{y}] =} ode15i (@var{fcn}, @var{trange}, @var{y0}, @var{yp0})
+## @deftypefnx {} {[@var{t}, @var{y}] =} ode15i (@var{fcn}, @var{trange}, @var{y0}, @var{yp0}, @var{ode_opt})
 ## @deftypefnx {} {[@var{t}, @var{y}, @var{te}, @var{ye}, @var{ie}] =} ode15i (@dots{})
 ## @deftypefnx {} {@var{solution} =} ode15i (@dots{})
 ## @deftypefnx {} {} ode15i (@dots{})
@@ -35,7 +35,7 @@
 ## @code{ode15i} uses a variable step, variable order BDF (Backward
 ## Differentiation Formula) method that ranges from order 1 to 5.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function that defines the ODE: @code{0 = f(t,y,yp)}.  The
 ## function must accept three inputs where the first is time @var{t}, the
 ## second is the function value @var{y} (a column vector), and the third
@@ -96,7 +96,7 @@
 ## @seealso{decic, odeset, odeget}
 ## @end deftypefn
 
-function varargout = ode15i (fun, trange, y0, yp0, varargin)
+function varargout = ode15i (fcn, trange, y0, yp0, varargin)
 
   if (nargin < 4)
     print_usage ();
@@ -112,8 +112,8 @@
    options = odeset ();
   endif
 
-  ## Check fun, trange, y0, yp0
-  fun = check_default_input (fun, trange, solver, y0, yp0);
+  ## Check fcn, trange, y0, yp0
+  fcn = check_default_input (fcn, trange, solver, y0, yp0);
 
   if (! isempty (options.Jacobian))
     if (ischar (options.Jacobian))
@@ -172,7 +172,7 @@
   ## Jacobian
   options.havejac       = false;
   options.havejacsparse = false;
-  options.havejacfun    = false;
+  options.havejacfcn    = false;
 
   if (! isempty (options.Jacobian))
     options.havejac = true;
@@ -196,7 +196,7 @@
       endif
 
     elseif (is_function_handle (options.Jacobian))
-      options.havejacfun = true;
+      options.havejacfcn = true;
       if (nargin (options.Jacobian) == 3)
         [J1, J2] = options.Jacobian (trange(1), y0, yp0);
 
@@ -208,7 +208,7 @@
                  'ode15i: "Jacobian" function must evaluate to a real square matrix');
         endif
         if (issparse (J1) && issparse (J2))
-          options.havejacsparse = true;  # Jac is sparse fun
+          options.havejacsparse = true;  # Jac is sparse fcn
         endif
       else
         error ("Octave:invalid-input-arg",
@@ -256,7 +256,7 @@
   options.haveeventfunction = ! isempty (options.Events);
 
   ## 3 arguments in the event callback of ode15i
-  [t, y, te, ye, ie] = __ode15__ (fun, trange, y0, yp0, options, 3);
+  [t, y, te, ye, ie] = __ode15__ (fcn, trange, y0, yp0, options, 3);
 
   if (nargout == 2)
     varargout{1} = t;
@@ -286,7 +286,7 @@
 
 %!demo
 %! ## Solve Robertson's equations with ode15i
-%! fun = @(t, y, yp) [-(yp(1) + 0.04*y(1) - 1e4*y(2)*y(3));
+%! fcn = @(t, y, yp) [-(yp(1) + 0.04*y(1) - 1e4*y(2)*y(3));
 %!                    -(yp(2) - 0.04*y(1) + 1e4*y(2)*y(3) + 3e7*y(2)^2);
 %!                    y(1) + y(2) + y(3) - 1];
 %!
@@ -295,7 +295,7 @@
 %! yp0 = [-1e-4; 1e-4; 0];
 %! tspan = [0 4*logspace(-6, 6)];
 %!
-%! [t, y] = ode15i (fun, tspan, y0, yp0, opt);
+%! [t, y] = ode15i (fcn, tspan, y0, yp0, opt);
 %!
 %! y(:,2) = 1e4 * y(:, 2);
 %! figure (2);
@@ -442,19 +442,19 @@
 %! [t, y] = ode15i (@rob, [0, 100], [1; 0; 0], [-1e-4; 1e-4; 0], opt);
 %! assert ([t(end), y(end,:)], fref, 1e-3);
 
-## Jacobian fun dense
+## Jacobian fcn dense
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("Jacobian", @jacfundense);
 %! [t, y] = ode15i (@rob, [0, 100], [1; 0; 0], [-1e-4; 1e-4; 0], opt);
 %! assert ([t(end), y(end,:)], fref, 1e-3);
 
-## Jacobian fun dense as string
+## Jacobian fcn dense as string
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("Jacobian", "jacfundense");
 %! [t, y] = ode15i (@rob, [0, 100], [1; 0; 0], [-1e-4; 1e-4; 0], opt);
 %! assert ([t(end), y(end,:)], fref, 1e-3);
 
-## Jacobian fun sparse
+## Jacobian fcn sparse
 %!testif HAVE_SUNDIALS_SUNLINSOL_KLU
 %! opt = odeset ("Jacobian", @jacfunsparse, "AbsTol", 1e-7, "RelTol", 1e-7);
 %! [t, y] = ode15i (@rob, [0, 100], [1; 0; 0], [-1e-4; 1e-4; 0], opt);
@@ -469,7 +469,7 @@
 %! assert ([t2(end), y2(end,:)], [0, 1, 0, 0], 2e-2);
 
 ## Solve in backward direction with MaxStep option
-#%!testif HAVE_SUNDIALS
+%!#testif HAVE_SUNDIALS
 %! YPref = [-0.001135972751027; -0.000000027483627; 0.001136000234654];
 %! Yref = [0.617234887614937, 0.000006153591397, 0.382758958793666];
 %! opt = odeset ("MaxStep", 1e-2);
@@ -479,7 +479,7 @@
 %! assert (t2(9)-t2(10), 1e-2, 1e-2);
 
 ## Solve in backward direction starting with intermediate step
-#%!testif HAVE_SUNDIALS
+%!#testif HAVE_SUNDIALS
 %! YPref = [-0.001135972751027; -0.000000027483627; 0.001136000234654];
 %! Yref = [0.617234887614937, 0.000006153591397, 0.382758958793666];
 %! [t, y] = ode15i (@rob, [0, 100], [1; 0; 0], [-1e-4; 1e-4; 0]);
@@ -532,7 +532,7 @@
 %! [0, 1], [1, 1], [1; 1]);
 %! assert (size (yout), [20, 2]);
 
-## Jacobian fun wrong dimension
+## Jacobian fcn wrong dimension
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("Jacobian", @jacwrong);
 %! fail ("[t, y] = ode15i (@rob, [0, 4e6], [1; 0; 0], [-1e-4; 1e-4; 0], opt)",
@@ -585,7 +585,7 @@
 %! fail ("[t, y] = ode15i (@rob, [0, 4e6], [1; 0; 0], [-1e-4; 1e-4; 0], opt)",
 %!       '"Jacobian" function "_5yVNhWVJWJn47RKnzxPsyb_" not found');
 
-%!function ydot = fun (t, y, yp)
+%!function ydot = fcn (t, y, yp)
 %!  ydot = [y - yp];
 %!endfunction
 
@@ -602,54 +602,54 @@
 %! fail ("ode15i (1, 1, 1)", "Invalid call to ode15i");
 
 %!testif HAVE_SUNDIALS
-%! fail ("ode15i (1, 1, 1, 1)", "ode15i: fun must be of class:");
+%! fail ("ode15i (1, 1, 1, 1)", "ode15i: fcn must be of class:");
 
 %!testif HAVE_SUNDIALS
-%! fail ("ode15i (1, 1, 1, 1, 1)", "ode15i: fun must be of class:");
+%! fail ("ode15i (1, 1, 1, 1, 1)", "ode15i: fcn must be of class:");
 
 %!testif HAVE_SUNDIALS
-%! fail ("ode15i (1, 1, 1, 1, 1, 1)", "ode15i: fun must be of class:");
+%! fail ("ode15i (1, 1, 1, 1, 1, 1)", "ode15i: fcn must be of class:");
 
 %!testif HAVE_SUNDIALS
-%! fail ("ode15i (@fun, 1, 1, 1)",
+%! fail ("ode15i (@fcn, 1, 1, 1)",
 %!       "ode15i: invalid value assigned to field 'trange'");
 
 %!testif HAVE_SUNDIALS
-%! fail ("ode15i (@fun, [1, 1], 1, 1)",
+%! fail ("ode15i (@fcn, [1, 1], 1, 1)",
 %!       "ode15i: invalid value assigned to field 'trange'");
 
 %!testif HAVE_SUNDIALS
-%! fail ("ode15i (@fun, [1, 2], 1, [1, 2])",
+%! fail ("ode15i (@fcn, [1, 2], 1, [1, 2])",
 %!       "ode15i: y0 must have 2 elements");
 
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("RelTol", "_5yVNhWVJWJn47RKnzxPsyb_");
-%! fail ("[t, y] = ode15i (@fun, [0, 2], 2, 2, opt)",
+%! fail ("[t, y] = ode15i (@fcn, [0, 2], 2, 2, opt)",
 %!       "ode15i: RelTol must be of class:");
 
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("RelTol", [1, 2]);
-%! fail ("[t, y] = ode15i (@fun, [0, 2], 2, 2, opt)",
+%! fail ("[t, y] = ode15i (@fcn, [0, 2], 2, 2, opt)",
 %!       "ode15i: RelTol must be scalar");
 
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("RelTol", -2);
-%! fail ("[t, y] = ode15i (@fun, [0, 2], 2, 2, opt)",
+%! fail ("[t, y] = ode15i (@fcn, [0, 2], 2, 2, opt)",
 %!       "ode15i: RelTol must be positive");
 
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("AbsTol", "_5yVNhWVJWJn47RKnzxPsyb_");
-%! fail ("[t, y] = ode15i (@fun, [0, 2], 2, 2, opt)",
+%! fail ("[t, y] = ode15i (@fcn, [0, 2], 2, 2, opt)",
 %!       "ode15i: AbsTol must be of class:");
 
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("AbsTol", -1);
-%! fail ("[t, y] = ode15i (@fun, [0, 2], 2, 2, opt)",
+%! fail ("[t, y] = ode15i (@fcn, [0, 2], 2, 2, opt)",
 %!       "ode15i: AbsTol must be positive");
 
 %!testif HAVE_SUNDIALS
 %! opt = odeset ("AbsTol", [1, 1, 1]);
-%! fail ("[t, y] = ode15i (@fun, [0, 2], 2, 2, opt)",
+%! fail ("[t, y] = ode15i (@fcn, [0, 2], 2, 2, opt)",
 %!       'ode15i: invalid value assigned to field "AbsTol"');
 
 %!testif HAVE_SUNDIALS
--- a/scripts/ode/ode15s.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/ode15s.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{t}, @var{y}] =} ode15s (@var{fun}, @var{trange}, @var{y0})
-## @deftypefnx {} {[@var{t}, @var{y}] =} ode15s (@var{fun}, @var{trange}, @var{y0}, @var{ode_opt})
+## @deftypefn  {} {[@var{t}, @var{y}] =} ode15s (@var{fcn}, @var{trange}, @var{y0})
+## @deftypefnx {} {[@var{t}, @var{y}] =} ode15s (@var{fcn}, @var{trange}, @var{y0}, @var{ode_opt})
 ## @deftypefnx {} {[@var{t}, @var{y}, @var{te}, @var{ye}, @var{ie}] =} ode15s (@dots{})
 ## @deftypefnx {} {@var{solution} =} ode15s (@dots{})
 ## @deftypefnx {} {} ode15s (@dots{})
@@ -35,7 +35,7 @@
 ## @code{ode15s} uses a variable step, variable order BDF (Backward
 ## Differentiation Formula) method that ranges from order 1 to 5.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function that defines the ODE: @code{y' = f(t,y)}.  The function
 ## must accept two inputs where the first is time @var{t} and the second is a
 ## column vector of unknowns @var{y}.
@@ -91,15 +91,15 @@
 ## @seealso{decic, odeset, odeget, ode23, ode45}
 ## @end deftypefn
 
-function varargout = ode15s (fun, trange, y0, varargin)
+function varargout = ode15s (fcn, trange, y0, varargin)
 
   if (nargin < 3)
     print_usage ();
   endif
 
   solver = "ode15s";
-  ## Check fun, trange, y0, yp0
-  fun = check_default_input (fun, trange, solver, y0);
+  ## Check fcn, trange, y0, yp0
+  fcn = check_default_input (fcn, trange, solver, y0);
 
   n = numel (y0);
 
@@ -175,14 +175,14 @@
                           classes, attributes, solver);
 
   ## Mass
-  options.havemassfun    = false;
+  options.havemassfcn    = false;
   options.havestatedep   = false;
   options.havetimedep    = false;
   options.havemasssparse = false;
 
   if (! isempty (options.Mass))
     if (is_function_handle (options.Mass))
-      options.havemassfun = true;
+      options.havemassfcn = true;
       if (nargin (options.Mass) == 2)
         options.havestatedep = true;
         M = options.Mass (trange(1), y0);
@@ -216,19 +216,19 @@
   ## Jacobian
   options.havejac       = false;
   options.havejacsparse = false;
-  options.havejacfun    = false;
+  options.havejacfcn    = false;
 
   if (! isempty (options.Jacobian))
     options.havejac = true;
     if (is_function_handle (options.Jacobian))
-      options.havejacfun = true;
+      options.havejacfcn = true;
       if (nargin (options.Jacobian) == 2)
         A = options.Jacobian (trange(1), y0);
         if (! issquare (A) || rows (A) != n || ! isnumeric (A) || ! isreal (A))
           error ("Octave:invalid-input-arg",
                  'ode15s: "Jacobian" function must evaluate to a real square matrix');
         endif
-        options.havejacsparse = issparse (A);  # Jac is sparse fun
+        options.havejacsparse = issparse (A);  # Jac is sparse fcn
       else
         error ("Octave:invalid-input-arg",
                'ode15s: invalid value assigned to field "Jacobian"');
@@ -261,15 +261,15 @@
     options.havejacsparse = false;
   endif
 
-  ## If Mass or Jacobian is fun, then new Jacobian is fun
+  ## If Mass or Jacobian is fcn, then new Jacobian is fcn
   if (options.havejac)
-    if (options.havejacfun || options.havetimedep)
-      options.Jacobian = @ (t, y, yp) wrapjacfun (t, y, yp,
+    if (options.havejacfcn || options.havetimedep)
+      options.Jacobian = @ (t, y, yp) wrapjacfcn (t, y, yp,
                                                   options.Jacobian,
                                                   options.Mass,
                                                   options.havetimedep,
-                                                  options.havejacfun);
-      options.havejacfun = true;
+                                                  options.havejacfcn);
+      options.havejacfcn = true;
     else   # All matrices are constant
       if (! isempty (options.Mass))
         options.Jacobian = {[- options.Jacobian], [options.Mass]};
@@ -324,7 +324,7 @@
   [t, y, te, ye, ie] = __ode15__ (@ (t, y, yp) wrap (t, y, yp, options.Mass,
                                                      options.havetimedep,
                                                      options.havestatedep,
-                                                     fun),
+                                                     fcn),
                                   trange, y0, yp0, options, 2);
 
   if (nargout == 2)
@@ -352,24 +352,24 @@
 
 endfunction
 
-function res = wrap (t, y, yp, Mass, havetimedep, havestatedep, fun)
+function res = wrap (t, y, yp, Mass, havetimedep, havestatedep, fcn)
 
   if (! isempty (Mass) && havestatedep)
-    res = Mass (t, y) * yp - fun (t, y);
+    res = Mass (t, y) * yp - fcn (t, y);
   elseif (! isempty (Mass) && havetimedep)
-    res = Mass (t) * yp - fun (t, y);
+    res = Mass (t) * yp - fcn (t, y);
   elseif (! isempty (Mass))
-    res = Mass * yp - fun (t, y);
+    res = Mass * yp - fcn (t, y);
   else
-    res = yp - fun (t, y);
+    res = yp - fcn (t, y);
   endif
 
 endfunction
 
-function [jac, jact] = wrapjacfun (t, y, yp, Jac, Mass,
-                                   havetimedep, havejacfun)
+function [jac, jact] = wrapjacfcn (t, y, yp, Jac, Mass,
+                                   havetimedep, havejacfcn)
 
-  if (havejacfun)
+  if (havejacfcn)
     jac = - Jac (t, y);
   else
     jac = - Jac;
@@ -388,7 +388,7 @@
 
 %!demo
 %! ## Solve Robertson's equations with ode15s
-%! fun = @ (t, y) [-0.04*y(1) + 1e4*y(2).*y(3);
+%! fcn = @ (t, y) [-0.04*y(1) + 1e4*y(2).*y(3);
 %!                  0.04*y(1) - 1e4*y(2).*y(3) - 3e7*y(2).^2;
 %!                  y(1) + y(2) + y(3) - 1];
 %!
@@ -399,7 +399,7 @@
 %! options = odeset ("RelTol", 1e-4, "AbsTol", [1e-6, 1e-10, 1e-6],
 %!                   "MStateDependence", "none", "Mass", M);
 %!
-%! [t, y] = ode15s (fun, tspan, y0, options);
+%! [t, y] = ode15s (fcn, tspan, y0, options);
 %!
 %! y(:,2) = 1e4 * y(:,2);
 %! figure (2);
--- a/scripts/ode/ode23.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/ode23.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{t}, @var{y}] =} ode23 (@var{fun}, @var{trange}, @var{init})
-## @deftypefnx {} {[@var{t}, @var{y}] =} ode23 (@var{fun}, @var{trange}, @var{init}, @var{ode_opt})
+## @deftypefn  {} {[@var{t}, @var{y}] =} ode23 (@var{fcn}, @var{trange}, @var{init})
+## @deftypefnx {} {[@var{t}, @var{y}] =} ode23 (@var{fcn}, @var{trange}, @var{init}, @var{ode_opt})
 ## @deftypefnx {} {[@var{t}, @var{y}, @var{te}, @var{ye}, @var{ie}] =} ode23 (@dots{})
 ## @deftypefnx {} {@var{solution} =} ode23 (@dots{})
 ## @deftypefnx {} {} ode23 (@dots{})
@@ -33,7 +33,7 @@
 ## Solve a set of non-stiff Ordinary Differential Equations (non-stiff ODEs)
 ## with the well known explicit @nospell{Bogacki-Shampine} method of order 3.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function that defines the ODE: @code{y' = f(t,y)}.  The function
 ## must accept two inputs where the first is time @var{t} and the second is a
 ## column vector of unknowns @var{y}.
@@ -92,7 +92,7 @@
 ## @seealso{odeset, odeget, ode45, ode15s}
 ## @end deftypefn
 
-function varargout = ode23 (fun, trange, init, varargin)
+function varargout = ode23 (fcn, trange, init, varargin)
 
   if (nargin < 3)
     print_usage ();
@@ -103,7 +103,7 @@
 
   if (nargin >= 4)
     if (! isstruct (varargin{1}))
-      ## varargin{1:len} are parameters for fun
+      ## varargin{1:len} are parameters for fcn
       odeopts = odeset ();
       funarguments = varargin;
     elseif (numel (varargin) > 1)
@@ -142,18 +142,22 @@
   endif
   init = init(:);
 
-  if (ischar (fun))
-    if (! exist (fun))
+  if (ischar (fcn))
+    if (! exist (fcn))
       error ("Octave:invalid-input-arg",
-             ['ode23: function "' fun '" not found']);
+             ['ode23: function "' fcn '" not found']);
     endif
-    fun = str2func (fun);
+    fcn = str2func (fcn);
   endif
-  if (! is_function_handle (fun))
+  if (! is_function_handle (fcn))
     error ("Octave:invalid-input-arg",
-           "ode23: FUN must be a valid function handle");
+           "ode23: FCN must be a valid function handle");
   endif
 
+  ## FIXME: Warn user if ! isempty (funarguments)
+  ## Not a documented behavior and may be deprecated
+
+
   ## Start preprocessing, have a look which options are set in odeopts,
   ## check if an invalid or unused option is set.
   [defaults, classes, attributes] = odedefaults (numel (init),
@@ -194,10 +198,10 @@
 
   if (isempty (odeopts.InitialStep))
     odeopts.InitialStep = odeopts.direction * ...
-                          starting_stepsize (order, fun, trange(1), init,
+                          starting_stepsize (order, fcn, trange(1), init,
                                              odeopts.AbsTol, odeopts.RelTol,
-                                             strcmpi (odeopts.NormControl, "on"),
-                                             odeopts.funarguments);
+                                             strcmpi (odeopts.NormControl,
+                                             "on"), odeopts.funarguments);
   endif
 
   if (! isempty (odeopts.Mass))
@@ -220,34 +224,28 @@
     if (! strcmp (odeopts.MStateDependence, "none"))
       ## constant mass matrices have already been handled
       mass = @(t,x) odeopts.Mass (t, x, odeopts.funarguments{:});
-      fun = @(t,x) mass (t, x, odeopts.funarguments{:}) ...
-                   \ fun (t, x, odeopts.funarguments{:});
+      fcn = @(t,x) mass (t, x, odeopts.funarguments{:}) ...
+                   \ fcn (t, x, odeopts.funarguments{:});
     else
       mass = @(t) odeopts.Mass (t, odeopts.funarguments{:});
-      fun = @(t,x) mass (t, odeopts.funarguments{:}) ...
-                   \ fun (t, x, odeopts.funarguments{:});
+      fcn = @(t,x) mass (t, odeopts.funarguments{:}) ...
+                   \ fcn (t, x, odeopts.funarguments{:});
     endif
   endif
 
-  if (nargout == 1)
-    ## Single output requires auto-selected intermediate times,
-    ## which is obtained by NOT specifying specific solution times.
-    trange = [trange(1); trange(end)];
-    odeopts.Refine = [];  # disable Refine when single output requested
-  elseif (numel (trange) > 2)
+  if (numel (trange) > 2)
     odeopts.Refine = [];  # disable Refine when specific times requested
   endif
 
   solution = integrate_adaptive (@runge_kutta_23,
-                                 order, fun, trange, init, odeopts);
+                                 order, fcn, trange, init, odeopts);
 
   ## Postprocessing, do whatever when terminating integration algorithm
   if (odeopts.haveoutputfunction)  # Cleanup plotter
     feval (odeopts.OutputFcn, [], [], "done", odeopts.funarguments{:});
   endif
   if (! isempty (odeopts.Events))   # Cleanup event function handling
-    ode_event_handler (odeopts.Events, solution.t(end),
-                       solution.x(end,:).', "done", odeopts.funarguments{:});
+    ode_event_handler ([], [], [], [], [], "done");
   endif
 
   ## Print additional information if option Stats is set
@@ -265,16 +263,16 @@
   endif
 
   if (nargout == 2)
-    varargout{1} = solution.t;      # Time stamps are first output argument
-    varargout{2} = solution.x;      # Results are second output argument
+    varargout{1} = solution.output_t; # Time stamps are first output argument
+    varargout{2} = solution.output_x; # Results are second output argument
   elseif (nargout == 1)
-    varargout{1}.x = solution.t.';  # Time stamps saved in field x (row vector)
-    varargout{1}.y = solution.x.';  # Results are saved in field y (row vector)
-    varargout{1}.solver = solver;   # Solver name is saved in field solver
+    varargout{1}.x = solution.ode_t.'; #Time stamps saved in field x (row vect.)
+    varargout{1}.y = solution.ode_x.'; #Results are saved in field y (row vect.)
+    varargout{1}.solver = solver; # Solver name is saved in field solver
     if (! isempty (odeopts.Events))
-      varargout{1}.xe = solution.event{3};  # Time info when an event occurred
-      varargout{1}.ye = solution.event{4};  # Results when an event occurred
-      varargout{1}.ie = solution.event{2};  # Index info which event occurred
+      varargout{1}.xe = solution.event{3}.'; # Time info when an event occurred
+      varargout{1}.ye = solution.event{4}.'; # Results when an event occurred
+      varargout{1}.ie = solution.event{2}.'; # Index info which event occurred
     endif
     if (strcmpi (odeopts.Stats, "on"))
       varargout{1}.stats = struct ();
@@ -287,8 +285,8 @@
     endif
   elseif (nargout > 2)
     varargout = cell (1,5);
-    varargout{1} = solution.t;
-    varargout{2} = solution.x;
+    varargout{1} = solution.output_t;
+    varargout{2} = solution.output_x;
     if (! isempty (odeopts.Events))
       varargout{3} = solution.event{3};  # Time info when an event occurred
       varargout{4} = solution.event{4};  # Results when an event occurred
@@ -355,7 +353,8 @@
 %!      error ('fout: step "init"');
 %!    endif
 %!  elseif (isempty (flag))
-%!    if (! isequal (size (t), [1, 1]))
+%!  # Multiple steps can be sent in one function call
+%!    if (! isequal ( size (t), size (y)))
 %!      error ('fout: step "calc"');
 %!    endif
 %!  elseif (strcmp (flag, "done"))
@@ -370,6 +369,14 @@
 %!test  # two output arguments
 %! [t, y] = ode23 (@fpol, [0 2], [2 0]);
 %! assert ([t(end), y(end,:)], [2, fref], 1e-3);
+%!test  # correct number of steps with Refine
+%! [t1, y1] = ode23 (@fpol, [0 2], [2 0], odeset ("Refine", 1));
+%! [t2, y2] = ode23 (@fpol, [0 2], [2 0], odeset ("Refine", 4));
+%! [t3, y3] = ode23 (@fpol, [0 2], [2 0]); #default Refine=1
+%! s = ode23 (@fpol, [0 2], [2 0], odeset ("Refine", 4));
+%! assert (length (t1) == length (t3));
+%! assert (length (t2) == 4*length (t1) - 3);
+%! assert (length (s.x) == length (t1));
 %!test  # anonymous function instead of real function
 %! fvdp = @(t,y) [y(2); (1 - y(1)^2) * y(2) - y(1)];
 %! [t, y] = ode23 (fvdp, [0 2], [2 0]);
@@ -435,8 +442,8 @@
 %! opt = odeset ("NonNegative", 2);
 %! sol = ode23 (@fpol, [0 2], [2 0], opt);
 %! assert ([sol.x(end); sol.y(:,end)], [2; 2; 0], 1e-1);
-%!test  # Details of OutputSel and Refine can't be tested
-%! opt = odeset ("OutputFcn", @fout, "OutputSel", 1, "Refine", 5);
+%!test  # Details of OutputSel can't be tested
+%! opt = odeset ("OutputFcn", @fout, "OutputSel", 1);
 %! sol = ode23 (@fpol, [0 2], [2 0], opt);
 %!test  # Stats must add further elements in sol
 %! opt = odeset ("Stats", "on");
@@ -452,16 +459,14 @@
 %! assert (isfield (sol, "xe"));
 %! assert (isfield (sol, "ye"));
 %!test  # Events option, now stop integration
-%! warning ("off", "integrate_adaptive:unexpected_termination", "local");
 %! opt = odeset ("Events", @fevn, "NormControl", "on");
 %! sol = ode23 (@fpol, [0 10], [2 0], opt);
-%! assert ([sol.ie, sol.xe, sol.ye],
-%!         [2.0, 2.496110, -0.830550, -2.677589], .5e-1);
+%! assert ([sol.ie, sol.xe, sol.ye.'],
+%!         [2.0, 2.496110, -0.830550, -2.677589], 1e-3);
 %!test  # Events option, five output arguments
-%! warning ("off", "integrate_adaptive:unexpected_termination", "local");
 %! opt = odeset ("Events", @fevn, "NormControl", "on");
 %! [t, y, vxe, ye, vie] = ode23 (@fpol, [0 10], [2 0], opt);
-%! assert ([vie, vxe, ye], [2.0, 2.496110, -0.830550, -2.677589], 1e-1);
+%! assert ([vie, vxe, ye], [2.0, 2.496110, -0.830550, -2.677589], 1e-3);
 %!test  # Mass option as function
 %! opt = odeset ("Mass", @fmas);
 %! sol = ode23 (@fpol, [0 2], [2 0], opt);
@@ -511,4 +516,4 @@
 %!error <invalid time span>  ode23 (@fpol, [1 1], [3 15 1])
 %!error <INIT must be a numeric> ode23 (@fpol, [0 25], {[3 15 1]})
 %!error <INIT must be a .* vector> ode23 (@fpol, [0 25], [3 15 1; 3 15 1])
-%!error <FUN must be a valid function handle> ode23 (1, [0 25], [3 15 1])
+%!error <FCN must be a valid function handle> ode23 (1, [0 25], [3 15 1])
--- a/scripts/ode/ode23s.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/ode23s.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{t}, @var{y}] =} ode23s (@var{fun}, @var{trange}, @var{init})
-## @deftypefnx {} {[@var{t}, @var{y}] =} ode23s (@var{fun}, @var{trange}, @var{init}, @var{ode_opt})
+## @deftypefn  {} {[@var{t}, @var{y}] =} ode23s (@var{fcn}, @var{trange}, @var{init})
+## @deftypefnx {} {[@var{t}, @var{y}] =} ode23s (@var{fcn}, @var{trange}, @var{init}, @var{ode_opt})
 ## @deftypefnx {} {[@var{t}, @var{y}] =} ode23s (@dots{}, @var{par1}, @var{par2}, @dots{})
 ## @deftypefnx {} {[@var{t}, @var{y}, @var{te}, @var{ye}, @var{ie}] =} ode23s (@dots{})
 ## @deftypefnx {} {@var{solution} =} ode23s (@dots{})
@@ -33,7 +33,7 @@
 ## Solve a set of stiff Ordinary Differential Equations (stiff ODEs) with a
 ## @nospell{Rosenbrock} method of order (2,3).
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function that defines the ODE: @code{M y' = f(t,y)}.  The
 ## function must accept two inputs where the first is time @var{t} and the
 ## second is a column vector of unknowns @var{y}.  @var{M} is a constant mass
@@ -93,7 +93,7 @@
 ## @seealso{odeset, daspk, dassl}
 ## @end deftypefn
 
-function varargout = ode23s (fun, trange, init, varargin)
+function varargout = ode23s (fcn, trange, init, varargin)
 
   if (nargin < 3)
     print_usage ();
@@ -104,7 +104,7 @@
 
   if (nargin >= 4)
     if (! isstruct (varargin{1}))
-      ## varargin{1:len} are parameters for fun
+      ## varargin{1:len} are parameters for fcn
       odeopts = odeset ();
       funarguments = varargin;
     elseif (numel (varargin) > 1)
@@ -143,18 +143,22 @@
   endif
   init = init(:);
 
-  if (ischar (fun))
-    if (! exist (fun))
+  if (ischar (fcn))
+    if (! exist (fcn))
       error ("Octave:invalid-input-arg",
-             ['ode23s: function "' fun '" not found']);
+             ['ode23s: function "' fcn '" not found']);
     endif
-    fun = str2func (fun);
+    fcn = str2func (fcn);
   endif
-  if (! is_function_handle (fun))
+  if (! is_function_handle (fcn))
     error ("Octave:invalid-input-arg",
-           "ode23s: FUN must be a valid function handle");
+           "ode23s: FCN must be a valid function handle");
   endif
 
+  ## FIXME: Warn user if ! isempty (funarguments)
+  ## Not a documented behavior and may be deprecated
+
+
   ## Start preprocessing, have a look which options are set in odeopts,
   ## check if an invalid or unused option is set.
   [defaults, classes, attributes] = odedefaults (numel (init),
@@ -184,7 +188,7 @@
 
   if (isempty (odeopts.InitialStep))
     odeopts.InitialStep = odeopts.direction * ...
-                          starting_stepsize (order, fun, trange(1), init,
+                          starting_stepsize (order, fcn, trange(1), init,
                                              odeopts.AbsTol, odeopts.RelTol,
                                              strcmpi (odeopts.NormControl,
                                                       "on"),
@@ -194,7 +198,7 @@
   if (! isempty (odeopts.Mass) && isnumeric (odeopts.Mass))
     havemasshandle = false;
     mass = odeopts.Mass;     # constant mass
-  elseif (isa (odeopts.Mass, "function_handle"))
+  elseif (is_function_handle (odeopts.Mass))
     havemasshandle = true;   # mass defined by a function handle
     odeopts.Mass = feval (odeopts.Mass, trange(1), init,
                           odeopts.funarguments{:});
@@ -205,25 +209,19 @@
 
   ## Starting the initialization of the core solver ode23s
 
-  if (nargout == 1)
-    ## Single output requires auto-selected intermediate times,
-    ## which is obtained by NOT specifying specific solution times.
-    trange = [trange(1); trange(end)];
-    odeopts.Refine = [];  # disable Refine when single output requested
-  elseif (numel (trange) > 2)
+  if (numel (trange) > 2)
     odeopts.Refine = [];  # disable Refine when specific times requested
   endif
 
   solution = integrate_adaptive (@runge_kutta_23s, ...
-                                 order, fun, trange, init, odeopts);
+                                 order, fcn, trange, init, odeopts);
 
   ## Postprocessing, do whatever when terminating integration algorithm
   if (odeopts.haveoutputfunction)  # Cleanup plotter
     feval (odeopts.OutputFcn, [], [], "done", odeopts.funarguments{:});
   endif
   if (! isempty (odeopts.Events))   # Cleanup event function handling
-    ode_event_handler (odeopts.Events, solution.t(end), ...
-                       solution.x(end,:).', "done", odeopts.funarguments{:});
+    ode_event_handler ([], [], [], [], [], "done");
   endif
 
   ## Print additional information if option Stats is set
@@ -241,16 +239,16 @@
   endif
 
   if (nargout == 2)
-    varargout{1} = solution.t;      # Time stamps are first output argument
-    varargout{2} = solution.x;      # Results are second output argument
+    varargout{1} = solution.output_t; # Time stamps are first output argument
+    varargout{2} = solution.output_x; # Results are second output argument
   elseif (nargout == 1)
-    varargout{1}.x = solution.t.';  # Time stamps saved in field x (row vector)
-    varargout{1}.y = solution.x.';  # Results are saved in field y (row vector)
+    varargout{1}.x = solution.ode_t.'; #Time stamps saved in field x (row vect.)
+    varargout{1}.y = solution.ode_x.'; #Results are saved in field y (row vect.)
     varargout{1}.solver = solver;   # Solver name is saved in field solver
     if (! isempty (odeopts.Events))
-      varargout{1}.xe = solution.event{3};  # Time info when an event occurred
-      varargout{1}.ye = solution.event{4};  # Results when an event occurred
-      varargout{1}.ie = solution.event{2};  # Index info which event occurred
+      varargout{1}.xe = solution.event{3}.'; # Time info when an event occurred
+      varargout{1}.ye = solution.event{4}.'; # Results when an event occurred
+      varargout{1}.ie = solution.event{2}.'; # Index info which event occurred
     endif
     if (strcmpi (odeopts.Stats, "on"))
       varargout{1}.stats = struct ();
@@ -263,8 +261,8 @@
     endif
   elseif (nargout == 5)
     varargout = cell (1,5);
-    varargout{1} = solution.t;
-    varargout{2} = solution.x;
+    varargout{1} = solution.output_t;
+    varargout{2} = solution.output_x;
     if (! isempty (odeopts.Events))
       varargout{3} = solution.event{3};  # Time info when an event occurred
       varargout{4} = solution.event{4};  # Results when an event occurred
@@ -277,45 +275,45 @@
 
 %!demo
 %! ## Demo function: stiff Van Der Pol equation
-%! fun = @(t,y) [y(2); 10*(1-y(1)^2)*y(2)-y(1)];
+%! fcn = @(t,y) [y(2); 10*(1-y(1)^2)*y(2)-y(1)];
 %! ## Calling ode23s method
 %! tic ()
-%! [vt, vy] = ode23s (fun, [0 20], [2 0]);
+%! [vt, vy] = ode23s (fcn, [0 20], [2 0]);
 %! toc ()
 %! ## Plotting the result
 %! plot (vt,vy(:,1),'-o');
 
 %!demo
 %! ## Demo function: stiff Van Der Pol equation
-%! fun = @(t,y) [y(2); 10*(1-y(1)^2)*y(2)-y(1)];
+%! fcn = @(t,y) [y(2); 10*(1-y(1)^2)*y(2)-y(1)];
 %! ## Calling ode23s method
 %! odeopts = odeset ("Jacobian", @(t,y) [0 1; -20*y(1)*y(2)-1, 10*(1-y(1)^2)],
 %!                   "InitialStep", 1e-3)
 %! tic ()
-%! [vt, vy] = ode23s (fun, [0 20], [2 0], odeopts);
+%! [vt, vy] = ode23s (fcn, [0 20], [2 0], odeopts);
 %! toc ()
 %! ## Plotting the result
 %! plot (vt,vy(:,1),'-o');
 
 %!demo
 %! ## Demo function: stiff Van Der Pol equation
-%! fun = @(t,y) [y(2); 100*(1-y(1)^2)*y(2)-y(1)];
+%! fcn = @(t,y) [y(2); 100*(1-y(1)^2)*y(2)-y(1)];
 %! ## Calling ode23s method
 %! odeopts = odeset ("InitialStep", 1e-4);
 %! tic ()
-%! [vt, vy] = ode23s (fun, [0 200], [2 0]);
+%! [vt, vy] = ode23s (fcn, [0 200], [2 0]);
 %! toc ()
 %! ## Plotting the result
 %! plot (vt,vy(:,1),'-o');
 
 %!demo
 %! ## Demo function: stiff Van Der Pol equation
-%! fun = @(t,y) [y(2); 100*(1-y(1)^2)*y(2)-y(1)];
+%! fcn = @(t,y) [y(2); 100*(1-y(1)^2)*y(2)-y(1)];
 %! ## Calling ode23s method
 %! odeopts = odeset ("Jacobian", @(t,y) [0 1; -200*y(1)*y(2)-1, 100*(1-y(1)^2)],
 %!                   "InitialStep", 1e-4);
 %! tic ()
-%! [vt, vy] = ode23s (fun, [0 200], [2 0], odeopts);
+%! [vt, vy] = ode23s (fcn, [0 200], [2 0], odeopts);
 %! toc ()
 %! ## Plotting the result
 %! plot (vt,vy(:,1),'-o');
@@ -389,7 +387,8 @@
 %!      error ('fout: step "init"');
 %!    endif
 %!  elseif (isempty (flag))
-%!    if (! isequal (size (t), [1, 1]))
+%!  # Multiple steps can be sent in one function call
+%!    if (! isequal ( size (t), size (y)))
 %!      error ('fout: step "calc"');
 %!    endif
 %!  elseif (strcmp (flag, "done"))
@@ -404,6 +403,14 @@
 %!test  # two output arguments
 %! [t, y] = ode23s (@fpol, [0 2], [2 0]);
 %! assert ([t(end), y(end,:)], [2, fref], 1e-3);
+%!test  # correct number of steps with Refine
+%! [t1, y1] = ode23s (@fpol, [0 2], [2 0], odeset ("Refine", 1));
+%! [t2, y2] = ode23s (@fpol, [0 2], [2 0], odeset ("Refine", 4));
+%! [t3, y3] = ode23s (@fpol, [0 2], [2 0]); #default Refine=1
+%! s = ode23s (@fpol, [0 2], [2 0], odeset ("Refine", 4));
+%! assert (length (t1) == length (t3));
+%! assert (length (t2) == 4*length (t1) - 3);
+%! assert (length (s.x) == length (t1));
 %!test  # anonymous function instead of real function
 %! fvdp = @(t,y) [y(2); 10 * (1 - y(1)^2) * y(2) - y(1)];
 %! [t, y] = ode23s (fvdp, [0 2], [2 0]);
@@ -435,8 +442,8 @@
 %! opt = odeset ("RelTol", 1e-8, "NormControl", "on");
 %! sol = ode23s (@fpol, [0 2], [2 0], opt);
 %! assert ([sol.x(end); sol.y(:,end)], [2; fref'], 1e-4);
-%!test  # Details of OutputSel and Refine can't be tested
-%! opt = odeset ("OutputFcn", @fout, "OutputSel", 1, "Refine", 5);
+%!test  # Details of OutputSel can't be tested
+%! opt = odeset ("OutputFcn", @fout, "OutputSel", 1);
 %! sol = ode23s (@fpol, [0 2], [2 0], opt);
 %!test  # Stats must add further elements in sol
 %! opt = odeset ("Stats", "on");
@@ -451,6 +458,15 @@
 %! assert (sol.ie(1), 2);
 %! assert (isfield (sol, "xe"));
 %! assert (isfield (sol, "ye"));
+%!test  # Events option, now stop integration
+%! opt = odeset ("Events", @fevn, "NormControl", "on");
+%! sol = ode23s (@fpol, [0 10], [2 0], opt);
+%! assert ([sol.ie, sol.xe, sol.ye.'],
+%!         [2.0, 9.094439, -0.996480, -14.180147], 2e-2);
+%!test  # Events option, five output arguments
+%! opt = odeset ("Events", @fevn, "NormControl", "on");
+%! [t, y, vxe, ye, vie] = ode23s (@fpol, [0 10], [2 0], opt);
+%! assert ([vie, vxe, ye], [2.0, 9.094439, -0.996480, -14.180147], 2e-2);
 %!test  # Mass option as function
 %! opt = odeset ("Mass", @fmas);
 %! sol = ode23s (@fpol, [0 2], [2 0], opt);
@@ -509,4 +525,4 @@
 %!error <invalid time span>  ode23s (@fpol, [1 1], [3 15 1])
 %!error <INIT must be a numeric> ode23s (@fpol, [0 25], {[3 15 1]})
 %!error <INIT must be a .* vector> ode23s (@fpol, [0 25], [3 15 1; 3 15 1])
-%!error <FUN must be a valid function handle> ode23s (1, [0 25], [3 15 1])
+%!error <FCN must be a valid function handle> ode23s (1, [0 25], [3 15 1])
--- a/scripts/ode/ode45.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/ode45.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{t}, @var{y}] =} ode45 (@var{fun}, @var{trange}, @var{init})
-## @deftypefnx {} {[@var{t}, @var{y}] =} ode45 (@var{fun}, @var{trange}, @var{init}, @var{ode_opt})
+## @deftypefn  {} {[@var{t}, @var{y}] =} ode45 (@var{fcn}, @var{trange}, @var{init})
+## @deftypefnx {} {[@var{t}, @var{y}] =} ode45 (@var{fcn}, @var{trange}, @var{init}, @var{ode_opt})
 ## @deftypefnx {} {[@var{t}, @var{y}, @var{te}, @var{ye}, @var{ie}] =} ode45 (@dots{})
 ## @deftypefnx {} {@var{solution} =} ode45 (@dots{})
 ## @deftypefnx {} {} ode45 (@dots{})
@@ -33,7 +33,7 @@
 ## Solve a set of non-stiff Ordinary Differential Equations (non-stiff ODEs)
 ## with the well known explicit @nospell{Dormand-Prince} method of order 4.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function that defines the ODE: @code{y' = f(t,y)}.  The function
 ## must accept two inputs where the first is time @var{t} and the second is a
 ## column vector of unknowns @var{y}.
@@ -89,7 +89,7 @@
 ## @seealso{odeset, odeget, ode23, ode15s}
 ## @end deftypefn
 
-function varargout = ode45 (fun, trange, init, varargin)
+function varargout = ode45 (fcn, trange, init, varargin)
 
   if (nargin < 3)
     print_usage ();
@@ -100,7 +100,7 @@
 
   if (nargin >= 4)
     if (! isstruct (varargin{1}))
-      ## varargin{1:len} are parameters for fun
+      ## varargin{1:len} are parameters for fcn
       odeopts = odeset ();
       funarguments = varargin;
     elseif (numel (varargin) > 1)
@@ -139,24 +139,27 @@
   endif
   init = init(:);
 
-  if (ischar (fun))
-    if (! exist (fun))
+  if (ischar (fcn))
+    if (! exist (fcn))
       error ("Octave:invalid-input-arg",
-             ['ode45: function "' fun '" not found']);
+             ['ode45: function "' fcn '" not found']);
     endif
-    fun = str2func (fun);
+    fcn = str2func (fcn);
   endif
-  if (! is_function_handle (fun))
+  if (! is_function_handle (fcn))
     error ("Octave:invalid-input-arg",
-           "ode45: FUN must be a valid function handle");
+           "ode45: FCN must be a valid function handle");
   endif
 
+  ## FIXME: Warn user if ! isempty (funarguments)
+  ## Not a documented behavior and may be deprecated
+
+
   ## Start preprocessing, have a look which options are set in odeopts,
   ## check if an invalid or unused option is set
   [defaults, classes, attributes] = odedefaults (numel (init),
                                                  trange(1), trange(end));
 
-  ## FIXME: Refine is not correctly implemented yet
   defaults = odeset (defaults, "Refine", 4);
 
   persistent ode45_ignore_options = ...
@@ -194,10 +197,10 @@
 
   if (isempty (odeopts.InitialStep))
     odeopts.InitialStep = odeopts.direction * ...
-                          starting_stepsize (order, fun, trange(1), init,
+                          starting_stepsize (order, fcn, trange(1), init,
                                              odeopts.AbsTol, odeopts.RelTol,
-                                             strcmpi (odeopts.NormControl, "on"),
-                                             odeopts.funarguments);
+                                             strcmpi (odeopts.NormControl,
+                                             "on"), odeopts.funarguments);
   endif
 
   if (! isempty (odeopts.Mass))
@@ -220,34 +223,28 @@
     if (! strcmp (odeopts.MStateDependence, "none"))
       ### constant mass matrices have already
       mass = @(t,x) odeopts.Mass (t, x, odeopts.funarguments{:});
-      fun = @(t,x) mass (t, x, odeopts.funarguments{:}) ...
-                   \ fun (t, x, odeopts.funarguments{:});
+      fcn = @(t,x) mass (t, x, odeopts.funarguments{:}) ...
+                   \ fcn (t, x, odeopts.funarguments{:});
     else
       mass = @(t) odeopts.Mass (t, odeopts.funarguments{:});
-      fun = @(t,x) mass (t, odeopts.funarguments{:}) ...
-                   \ fun (t, x, odeopts.funarguments{:});
+      fcn = @(t,x) mass (t, odeopts.funarguments{:}) ...
+                   \ fcn (t, x, odeopts.funarguments{:});
     endif
   endif
 
-  if (nargout == 1)
-    ## Single output requires auto-selected intermediate times,
-    ## which is obtained by NOT specifying specific solution times.
-    trange = [trange(1); trange(end)];
-    odeopts.Refine = [];  # disable Refine when single output requested
-  elseif (numel (trange) > 2)
+  if (numel (trange) > 2)
     odeopts.Refine = [];  # disable Refine when specific times requested
   endif
 
   solution = integrate_adaptive (@runge_kutta_45_dorpri,
-                                 order, fun, trange, init, odeopts);
+                                 order, fcn, trange, init, odeopts);
 
   ## Postprocessing, do whatever when terminating integration algorithm
   if (odeopts.haveoutputfunction)  # Cleanup plotter
     feval (odeopts.OutputFcn, [], [], "done", odeopts.funarguments{:});
   endif
   if (! isempty (odeopts.Events))   # Cleanup event function handling
-    ode_event_handler (odeopts.Events, solution.t(end),
-                       solution.x(end,:).', "done", odeopts.funarguments{:});
+    ode_event_handler ([], [], [], [], [], "done");
   endif
 
   ## Print additional information if option Stats is set
@@ -265,16 +262,16 @@
   endif
 
   if (nargout == 2)
-    varargout{1} = solution.t;      # Time stamps are first output argument
-    varargout{2} = solution.x;      # Results are second output argument
+    varargout{1} = solution.output_t; # Time stamps are first output argument
+    varargout{2} = solution.output_x; # Results are second output argument
   elseif (nargout == 1)
-    varargout{1}.x = solution.t.';  # Time stamps saved in field x (row vector)
-    varargout{1}.y = solution.x.';  # Results are saved in field y (row vector)
-    varargout{1}.solver = solver;   # Solver name is saved in field solver
+    varargout{1}.x = solution.ode_t.'; #Time stamps saved in field x (row vect.)
+    varargout{1}.y = solution.ode_x.'; #Results are saved in field y (row vect.)
+    varargout{1}.solver = solver; # Solver name is saved in field solver
     if (! isempty (odeopts.Events))
-      varargout{1}.xe = solution.event{3};  # Time info when an event occurred
-      varargout{1}.ye = solution.event{4};  # Results when an event occurred
-      varargout{1}.ie = solution.event{2};  # Index info which event occurred
+      varargout{1}.xe = solution.event{3}.'; # Time info when an event occurred
+      varargout{1}.ye = solution.event{4}.'; # Results when an event occurred
+      varargout{1}.ie = solution.event{2}.'; # Index info which event occurred
     endif
     if (strcmpi (odeopts.Stats, "on"))
       varargout{1}.stats = struct ();
@@ -287,8 +284,8 @@
     endif
   elseif (nargout > 2)
     varargout = cell (1,5);
-    varargout{1} = solution.t;
-    varargout{2} = solution.x;
+    varargout{1} = solution.output_t;
+    varargout{2} = solution.output_x;
     if (! isempty (odeopts.Events))
       varargout{3} = solution.event{3};  # Time info when an event occurred
       varargout{4} = solution.event{4};  # Results when an event occurred
@@ -355,7 +352,8 @@
 %!      error ('fout: step "init"');
 %!    endif
 %!  elseif (isempty (flag))
-%!    if (! isequal (size (t), [1, 1]))
+%!  # Multiple steps can be sent in one function call
+%!    if (! isequal ( size (t), size (y)))
 %!      error ('fout: step "calc"');
 %!    endif
 %!  elseif (strcmp (flag, "done"))
@@ -371,8 +369,16 @@
 %! [t, y] = ode45 (@fpol, [0 2], [2 0]);
 %! assert ([t(end), y(end,:)], [2, fref], 1e-2);
 %!test  # not too many steps
-%! [t, y] = ode45 (@fpol, [0 2], [2 0]);
+%! [t, y] = ode45 (@fpol, [0 2], [2 0], odeset("Refine",1));
 %! assert (size (t) < 20);
+%!test  # correct number of steps with Refine
+%! [t1, y1] = ode45 (@fpol, [0 2], [2 0], odeset ("Refine", 1));
+%! [t2, y2] = ode45 (@fpol, [0 2], [2 0], odeset ("Refine", 4));
+%! [t3, y3] = ode45 (@fpol, [0 2], [2 0]); #default Refine=4
+%! s = ode45 (@fpol, [0 2], [2 0], odeset ("Refine", 4));
+%! assert (length (t2) == length (t3));
+%! assert (length (t2) == 4*length (t1) - 3);
+%! assert (length (s.x) == length (t1));
 %!test  # anonymous function instead of real function
 %! fvdp = @(t,y) [y(2); (1 - y(1)^2) * y(2) - y(1)];
 %! [t, y] = ode45 (fvdp, [0 2], [2 0]);
@@ -392,7 +398,7 @@
 %! [t, y] = ode45 (@(t,y) y, [-2 0], 2);
 %! assert ([t(end), y(end,:)], vref, 1e-1);
 %!test  # InitialStep option
-%! opt = odeset ("InitialStep", 1e-8);
+%! opt = odeset ("InitialStep", 1e-8, "Refine", 1);
 %! [t, y] = ode45 (@fpol, [0 0.2], [2 0], opt);
 %! assert ([t(2)-t(1)], [1e-8], 1e-9);
 %!test  # MaxStep option
@@ -447,8 +453,8 @@
 %! opt = odeset ("NonNegative", 2);
 %! sol = ode45 (@fpol, [0 2], [2 0], opt);
 %! assert ([sol.x(end); sol.y(:,end)], [2; 2; 0], 0.5);
-%!test  # Details of OutputSel and Refine can't be tested
-%! opt = odeset ("OutputFcn", @fout, "OutputSel", 1, "Refine", 5);
+%!test  # Details of OutputSel can't be tested
+%! opt = odeset ("OutputFcn", @fout, "OutputSel", 1);
 %! sol = ode45 (@fpol, [0 2], [2 0], opt);
 %!test  # Stats must add further elements in sol
 %! opt = odeset ("Stats", "on");
@@ -464,17 +470,15 @@
 %! assert (isfield (sol, "xe"));
 %! assert (isfield (sol, "ye"));
 %!test  # Events option, now stop integration
-%! warning ("off", "integrate_adaptive:unexpected_termination", "local");
 %! opt = odeset ("Events", @fevn, "NormControl", "on");
 %! sol = ode45 (@fpol, [0 10], [2 0], opt);
-%! assert ([sol.ie, sol.xe, sol.ye],
-%!         [2.0, 2.496110, -0.830550, -2.677589], 6e-1);
+%! assert ([sol.ie, sol.xe, sol.ye.'],
+%!         [2.0, 2.496110, -0.830550, -2.677589], 2e-3);
 %!test  # Events option, five output arguments
-%! warning ("off", "integrate_adaptive:unexpected_termination", "local");
 %! opt = odeset ("Events", @fevn, "NormControl", "on");
 %! [t, y, vxe, ye, vie] = ode45 (@fpol, [0 10], [2 0], opt);
 %! assert ([vie, vxe, ye],
-%!         [2.0, 2.496110, -0.830550, -2.677589], 6e-1);
+%!         [2.0, 2.496110, -0.830550, -2.677589], 2e-3);
 %!test  # Mass option as function
 %! opt = odeset ("Mass", @fmas);
 %! sol = ode45 (@fpol, [0 2], [2 0], opt);
@@ -511,7 +515,7 @@
 %!test # Check that imaginary part of solution does not get inverted
 %! sol = ode45 (@(x,y) 1, [0 1], 1i);
 %! assert (imag (sol.y), ones (size (sol.y)));
-%! [x, y] = ode45 (@(x,y) 1, [0 1], 1i);
+%! [x, y] = ode45 (@(x,y) 1, [0 1], 1i, odeset ("Refine", 1));
 %! assert (imag (y), ones (size (y)));
 
 %!error <Invalid call> ode45 ()
@@ -523,4 +527,4 @@
 %!error <invalid time span> ode45 (@fpol, [1 1], [3 15 1])
 %!error <INIT must be a numeric> ode45 (@fpol, [0 25], {[3 15 1]})
 %!error <INIT must be a .* vector> ode45 (@fpol, [0 25], [3 15 1; 3 15 1])
-%!error <FUN must be a valid function handle> ode45 (1, [0 25], [3 15 1])
+%!error <FCN must be a valid function handle> ode45 (1, [0 25], [3 15 1])
--- a/scripts/ode/odeplot.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/odeplot.m	Tue Nov 15 13:15:28 2022 -0800
@@ -40,8 +40,8 @@
 ## contains the initial conditions for the ode problem (@var{y0}).
 ##
 ## @item @qcode{""}
-## The input @var{t} must be a scalar double specifying the time for which
-## the solution in input @var{y} was calculated.
+## The input @var{t} must be a scalar double or vector specifying the time(s)
+## for which the solution in input @var{y} was calculated.
 ##
 ## @item @qcode{"done"}
 ## The inputs should be empty, but are ignored if they are present.
@@ -118,5 +118,31 @@
 %! ## Solve an anonymous implementation of the Van der Pol equation
 %! ## and display the results while solving
 %! fvdp = @(t,y) [y(2); (1 - y(1)^2) * y(2) - y(1)];
-%! opt = odeset ("OutputFcn", @odeplot, "RelTol", 1e-6);
-%! sol = ode45 (fvdp, [0 20], [2 0], opt);
+%! opt = odeset ("RelTol", 1e-6);
+%! ode45 (fvdp, [0 20], [2 0], opt);
+
+%!demo
+%! ## Demonstrate simple multi-curve plot from t = 0 to 2 using initial,
+%! ## intermediate, and terminating odeplot calling syntaxes.
+%! t = linspace(0,2,10);
+%! y = [0.2*t; -0.1*t.^2-1; sin(t)];
+%!
+%! disp("Plot initial points\n");
+%! odeplot ([0 2], y(:,1), "init");
+%! title("Plot first time step");
+%! pause(1.5);
+%!
+%! disp("Append single time step\n");
+%! odeplot (t(2), y(:,2), []);
+%! title("Append second time step");
+%! pause(1.5);
+%!
+%! disp("Append remaining time steps\n");
+%! odeplot (t(3:end), y(:, 3:end), []);
+%! title("Plot all time steps");
+%! pause(1.5);
+%!
+%! disp("Terminate odeplot\n");
+%! odeplot ([], [], "done");
+%! title("Plot complete");
+
--- a/scripts/ode/odeset.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/odeset.m	Tue Nov 15 13:15:28 2022 -0800
@@ -130,7 +130,6 @@
 ## time step or also at intermediate time instances.  The value should be
 ## a scalar indicating the number of equally spaced time points to use
 ## within each timestep at which to return output.
-## @emph{Note}: This option is not yet implemented.
 ##
 ## @item @code{RelTol}: positive scalar
 ## Relative error tolerance.
@@ -139,7 +138,7 @@
 ## Print solver statistics after simulation.
 ##
 ## @item @code{Vectorized}: @{@qcode{"off"}@} | @qcode{"on"}
-## Specify whether @code{odefun} can be passed multiple values of the
+## Specify whether @code{odefcn} can be passed multiple values of the
 ## state at once.
 ##
 ## @end table
--- a/scripts/ode/private/check_default_input.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/private/check_default_input.m	Tue Nov 15 13:15:28 2022 -0800
@@ -23,30 +23,30 @@
 ##
 ########################################################################
 
-function fun = check_default_input (fun, trange, solver, y0, yp0);
+function fcn = check_default_input (fcn, trange, solver, y0, yp0);
 
   if (nargin < 4)
     print_usage ();
   endif
 
-  ## Check fun
-  validateattributes (fun, {"function_handle", "char"}, {}, solver, "fun");
+  ## Check fcn
+  validateattributes (fcn, {"function_handle", "char"}, {}, solver, "fcn");
 
-  if (! (nargin (fun) == nargin - 2))
+  if (! (nargin (fcn) == nargin - 2))
     error ("Octave:invalid-input-arg",
-           [solver ": invalid value assigned to field 'fun'"]);
+           [solver ": invalid value assigned to field 'fcn'"]);
   endif
 
-  if (ischar (fun))
-    if (! exist (fun))
+  if (ischar (fcn))
+    if (! exist (fcn))
       error ("Octave:invalid-input-arg",
-             [solver ": function '" fun "' not found"]);
+             [solver ": function '" fcn "' not found"]);
     endif
-    fun = str2func (fun);
+    fcn = str2func (fcn);
   endif
-  if (! is_function_handle (fun))
+  if (! is_function_handle (fcn))
     error ("Octave:invalid-input-arg",
-           [solver ": invalid value assigned to field '" fun "'"]);
+           [solver ": invalid value assigned to field '" fcn "'"]);
   endif
 
   ## Check trange
@@ -74,10 +74,10 @@
     endif
     yp0 = yp0(:);
 
-    n = numel (feval (fun, trange(1), y0, yp0));
+    n = numel (feval (fcn, trange(1), y0, yp0));
     validateattributes (yp0, {"float"}, {"numel", n}, solver, "yp0");
   else
-    n = numel (feval (fun, trange (1), y0));
+    n = numel (feval (fcn, trange(1), y0));
   endif
 
   validateattributes (y0, {"float"}, {"numel", n}, solver, "y0");
--- a/scripts/ode/private/integrate_adaptive.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/private/integrate_adaptive.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{solution} =} integrate_adaptive (@var{@@stepper}, @var{order}, @var{@@func}, @var{tspan}, @var{x0}, @var{options})
+## @deftypefn {} {@var{solution} =} integrate_adaptive (@var{@@stepper}, @var{order}, @var{@@fcn}, @var{tspan}, @var{x0}, @var{options})
 ##
 ## This function file can be called by an ODE solver function in order to
 ## integrate the set of ODEs on the interval @var{[t0, t1]} with an adaptive
@@ -68,18 +68,18 @@
 ##
 ## @end deftypefn
 
-function solution = integrate_adaptive (stepper, order, func, tspan, x0,
+function solution = integrate_adaptive (stepper, order, fcn, tspan, x0,
                                         options)
 
   fixed_times = numel (tspan) > 2;
 
-  t_new = t_old = t = tspan(1);
-  x_new = x_old = x = x0(:);
+  t_new = t_old = ode_t = output_t = tspan(1);
+  x_new = x_old = ode_x = output_x = x0(:);
 
   ## Get first initial timestep
   dt = options.InitialStep;
   if (isempty (dt))
-    dt = starting_stepsize (order, func, t, x,
+    dt = starting_stepsize (order, fcn, ode_t, ode_x,
                             options.AbsTol, options.RelTol,
                             strcmp (options.NormControl, "on"),
                             options.funarguments);
@@ -95,12 +95,23 @@
   facmax = 1.5;
   fac = 0.38^(1/(order+1));  # formula taken from Hairer
 
+  ## Initialize Refine value
+  refine = options.Refine;
+  if isempty (refine)
+    refine = 1;
+  elseif ((refine != round (refine)) || (refine < 1))
+    refine = 1;
+    warning ("integrate_adaptive:invalid_refine",
+               ["Invalid value of Refine. Refine must be a positive " ...
+                "integer. Setting Refine = 1."] );
+  endif
+
   ## Initialize the OutputFcn
   if (options.haveoutputfunction)
     if (! isempty (options.OutputSel))
-      solution.retout = x(options.OutputSel,end);
+      solution.retout = output_x(options.OutputSel, end);
     else
-      solution.retout = x;
+      solution.retout = output_x;
     endif
     feval (options.OutputFcn, tspan, solution.retout, "init",
            options.funarguments{:});
@@ -110,8 +121,9 @@
   have_EventFcn = false;
   if (! isempty (options.Events))
     have_EventFcn  = true;
-    ode_event_handler (options.Events, tspan(1), x,
-                       "init", options.funarguments{:});
+    options.Events = @(t,y) options.Events (t, y, options.funarguments{:});
+    ode_event_handler (options.Events, tspan(1), ode_x, ...
+                       [], order, "init");
   endif
 
   if (options.havenonnegative)
@@ -133,7 +145,7 @@
     ## Compute integration step from t_old to t_new = t_old + dt
     [t_new, options.comp] = kahan (t_old, options.comp, dt);
     [t_new, x_new, x_est, new_k_vals] = ...
-      stepper (func, t_old, x_old, dt, options, k_vals, t_new);
+      stepper (fcn, t_old, x_old, dt, options, k_vals, t_new);
 
     solution.cntcycles += 1;
 
@@ -150,130 +162,82 @@
 
       solution.cntloop += 1;
       ireject = 0;              # Clear reject counter
-
-      ## if output time steps are fixed
-      if (fixed_times)
-
-        t_caught = find ((dir * tspan(iout:end) > dir * t_old)
-                         & (dir * tspan(iout:end) <= dir * t_new));
-        t_caught = t_caught + iout - 1;
+      terminal_event = false;
+      terminal_output = false;
 
-        if (! isempty (t_caught))
-          t(t_caught) = tspan(t_caught);
-          iout = max (t_caught);
-          x(:, t_caught) = ...
-            runge_kutta_interpolate (order, [t_old t_new], [x_old x_new],
-                                     t(t_caught), new_k_vals, dt, func,
-                                     options.funarguments);
-
-          istep += 1;
+      istep++;
+      ode_t(istep) = t_new;
+      ode_x(:, istep) = x_new;
+      iadd = 0;                 # Number of output points added this iteration
 
-          ## Call Events function only if a valid result has been found.
-          ## Stop integration if eventbreak is true.
-          if (have_EventFcn)
-            break_loop = false;
-            for idenseout = 1:numel (t_caught)
-              id = t_caught(idenseout);
-              td = t(id);
-              solution.event = ...
-                ode_event_handler (options.Events, t(id), x(:, id), [],
-                                   options.funarguments{:});
-              if (! isempty (solution.event{1}) && solution.event{1} == 1)
-                t(id) = solution.event{3}(end);
-                t = t(1:id);
-                x(:, id) = solution.event{4}(end, :).';
-                x = x(:,1:id);
-                solution.unhandledtermination = false;
-                break_loop = true;
-                break;
-              endif
-            endfor
-            if (break_loop)
-              break;
-            endif
-          endif
+      ## Check for Events
+      if (have_EventFcn)
+        solution.event = ode_event_handler ([], t_new, x_new, ...
+                                            new_k_vals, [], []);
+        ## Check for terminal Event
+        if (! isempty (solution.event{1}) && solution.event{1} == 1)
+          ode_t(istep) = solution.event{3}(end);
+          ode_x(:, istep) = solution.event{4}(end, :).';
+          solution.unhandledtermination = false;
+          terminal_event = true;
+        endif
+      endif
 
-          ## Call OutputFcn only if a valid result has been found.
-          ## Stop integration if function returns true.
-          if (options.haveoutputfunction)
-            cnt = options.Refine + 1;
-            approxtime = linspace (t_old, t_new, cnt);
-            approxvals = interp1 ([t_old, t(t_caught), t_new],
-                                  [x_old, x(:, t_caught), x_new] .',
-                                  approxtime, "linear") .';
-            if (isvector (approxvals) && ! isscalar (approxtime))
-              approxvals = approxvals.';
-            endif
-            if (! isempty (options.OutputSel))
-              approxvals = approxvals(options.OutputSel, :);
-            endif
-            stop_solve = false;
-            for ii = 1:numel (approxtime)
-              stop_solve = feval (options.OutputFcn,
-                                  approxtime(ii), approxvals(:, ii), [],
-                                  options.funarguments{:});
-              if (stop_solve)
-                break;  # break from inner loop
-              endif
-            endfor
-            if (stop_solve)  # Leave main loop
-              solution.unhandledtermination = false;
-              break;
-            endif
-          endif
-
+      ## Interpolate to specified or Refined points
+      if (fixed_times)
+        t_caught = find ((dir * tspan(iout:end) > dir * t_old) ...
+                         & (dir * tspan(iout:end) <= dir * ode_t(istep)));
+        t_caught = t_caught + iout - 1;
+        iadd = length (t_caught);
+        if (! isempty (t_caught))
+          output_t(t_caught) = tspan(t_caught);
+          iout = max (t_caught);
+          output_x(:, t_caught) = ...
+            runge_kutta_interpolate (order, [t_old t_new], [x_old x_new], ...
+                                     output_t(t_caught), new_k_vals);
         endif
-
-      else   # not fixed times
-
-        t(++istep)  = t_new;
-        x(:, istep) = x_new;
-        iout = istep;
+        ## Add a possible additional output value if we found a terminal Event
+        if ((terminal_event == true) && ...
+            (dir * ode_t(istep) > dir * output_t(iout)))
+          iadd += 1;
+          iout += 1;
+          output_x(:, iout) = ode_x(:, istep);
+          output_t(iout) = ode_t(istep);
+        endif
+      elseif (refine > 1)
+        iadd = refine;
+        tadd = linspace (t_old, ode_t(istep), refine + 1);
+        tadd = tadd(2:end);
+        output_x(:, iout + (1:iadd)) = ...
+          runge_kutta_interpolate (order, [t_old t_new], [x_old x_new], ...
+                                   tadd, new_k_vals);
+        output_t(iout + (1:iadd)) = tadd;
+        iout = length (output_t);
+      else                         # refine = 1
+        iadd = 1;
+        iout += iadd;
+        output_x(:, iout) = ode_x(:, istep);
+        output_t(iout) = ode_t(istep);
+      end
 
-        ## Call Events function only if a valid result has been found.
-        ## Stop integration if eventbreak is true.
-        if (have_EventFcn)
-          solution.event = ...
-            ode_event_handler (options.Events, t(istep), x(:, istep), [],
-                               options.funarguments{:});
-          if (! isempty (solution.event{1}) && solution.event{1} == 1)
-            t(istep) = solution.event{3}(end);
-            x(:, istep) = solution.event{4}(end, :).';
-            solution.unhandledtermination = false;
-            break;
-          endif
+      ## Call OutputFcn
+      if ((options.haveoutputfunction) && (iadd > 0))
+        xadd = output_x(:, (iout-iadd+1):end);
+        tadd = output_t((iout-iadd+1):end);
+        if (! isempty (options.OutputSel))
+          xadd = xadd(options.OutputSel, :);
         endif
+        stop_solve = feval (options.OutputFcn, tadd, xadd, ...
+                            [], options.funarguments{:});
+        if (stop_solve)
+          solution.unhandledtermination = false;
+          terminal_output = true;
+        endif
+      endif
+      if (terminal_event || terminal_output)
+        break;                     # break from main loop
+      endif
 
-        ## Call OutputFcn only if a valid result has been found.
-        ## Stop integration if function returns true.
-        if (options.haveoutputfunction)
-          cnt = options.Refine + 1;
-          approxtime = linspace (t_old, t_new, cnt);
-          approxvals = interp1 ([t_old, t_new],
-                                [x_old, x_new] .',
-                                approxtime, "linear") .';
-          if (isvector (approxvals) && ! isscalar (approxtime))
-            approxvals = approxvals.';
-          endif
-          if (! isempty (options.OutputSel))
-            approxvals = approxvals(options.OutputSel, :);
-          endif
-          stop_solve = false;
-          for ii = 1:numel (approxtime)
-            stop_solve = feval (options.OutputFcn,
-                                approxtime(ii), approxvals(:, ii), [],
-                                options.funarguments{:});
-            if (stop_solve)
-              break;  # break from inner loop
-            endif
-          endfor
-          if (stop_solve)  # Leave main loop
-            solution.unhandledtermination = false;
-            break;
-          endif
-        endif
-
-      endif
 
       ## move to next time-step
       t_old = t_new;
@@ -303,7 +267,7 @@
     err += eps;  # avoid divisions by zero
     dt *= min (facmax, max (facmin, fac * (1 / err)^(1 / (order + 1))));
     dt = dir * min (abs (dt), options.MaxStep);
-    if (! (abs (dt) > eps (t(end))))
+    if (! (abs (dt) > eps (ode_t(end))))
       break;
     endif
 
@@ -313,7 +277,7 @@
   endwhile
 
   ## Check if integration of the ode has been successful
-  if (dir * t(end) < dir * tspan(end))
+  if (dir * ode_t(end) < dir * tspan(end))
     if (solution.unhandledtermination == true)
       warning ("integrate_adaptive:unexpected_termination",
                [" Solving was not successful. ", ...
@@ -322,20 +286,14 @@
                 " This may happen if the stepsize becomes too small. ", ...
                 " Try to reduce the value of 'InitialStep'", ...
                 " and/or 'MaxStep' with the command 'odeset'."],
-               t(end), tspan(end));
-    else
-      warning ("integrate_adaptive:unexpected_termination",
-               ["Solver was stopped by a call of 'break'", ...
-                " in the main iteration loop at time", ...
-                " t = %f before the endpoint at tend = %f was reached. ", ...
-                " This may happen because the @odeplot function", ...
-                " returned 'true' or the @event function returned 'true'."],
-               t(end), tspan(end));
+               ode_t(end), tspan(end));
     endif
   endif
 
   ## Set up return structure
-  solution.t = t(:);
-  solution.x = x.';
+  solution.ode_t = ode_t(:);
+  solution.ode_x = ode_x.';
+  solution.output_t = output_t(:);
+  solution.output_x = output_x.';
 
 endfunction
--- a/scripts/ode/private/ode_event_handler.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/private/ode_event_handler.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,43 +24,45 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{retval} =} ode_event_handler (@var{@@evtfun}, @var{t}, @var{y}, @var{flag}, @var{par1}, @var{par2}, @dots{})
+## @deftypefn {} {@var{retval} =} ode_event_handler (@var{@@evt_fcn}, @var{t}, @var{y}, @var{k_vals}, @var{ord}, @var{flag})
 ##
-## Return the solution of the event function (@var{@@evtfun}) which is
+## Return the solution of the event function (@var{@@evt_fcn}) which is
 ## specified in the form of a function handle.
 ##
 ## The second input argument @var{t} is a scalar double and specifies the time
 ## of the event evaluation.
 ##
-## The third input argument @var{y} may be a column vector of type double
-## (for ODEs and DAEs) which specifies the solutions.  Alternatives, @var{y}
-## may be a cell array (for IDEs and DDEs) which specifies the solutions and
-## derivatives.
+## The third input argument @var{y} is a scalar or a column vector of type
+## double which specifies the solution(s) at time @var{t}.
 ##
-## The fourth input argument @var{flag} is of type string.  Valid values are:
+## The fourth input argument @var{k_vals} is a vector or matrix with the
+## k values obtained from the most recent integration step.
+##
+## The fifth input argument @var{ord} the order of the integration technique.
+##
+## The sixth input argument @var{flag} is of type string.  Valid values are:
 ##
 ## @table @option
 ## @item  @qcode{"init"}
 ## Initialize internal persistent variables of the function
 ## @code{ode_event_handler} and return an empty cell array of size 4.
 ##
-## @item  @qcode{"calc"}
-## Evaluate the event function and return the solution @var{retval} as a cell
-## array of size 4.
+## @item  @qcode{""}
+## (default) Evaluate the event function and return the solution @var{retval}
+## as a cell array of size 4. Inputs @var{ord} and @var{@@evt_fcn} are ignored,
+## since they are set in the @qcode{"init"} step.
 ##
 ## @item  @qcode{"done"}
 ## Clean up internal variables of the function @code{ode_event_handler} and
-## return an empty cell array of size 4.
+## return an empty cell array of size 4. All other inputs are ignored with
+## this flag.
 ## @end table
 ##
-## If additional input arguments @var{par1}, @var{par2}, @dots{} are given
-## these parameters are passed directly to the event function.
-##
 ## This function is an ODE internal helper function and it should never be
 ## necessary to call it directly.
 ## @end deftypefn
 
-function retval = ode_event_handler (evtfun, t, y, flag = "", varargin)
+function retval = ode_event_handler (evt_fcn, t, y, k_vals, ord, flag = "")
 
   ## No error handling has been implemented in this function to achieve
   ## the highest performance possible.
@@ -77,23 +79,14 @@
   ## yold    the ODE result
   ## retcell the return values cell array
   ## evtcnt  the counter for how often this function has been called
-  persistent evtold told yold retcell;
+  persistent evtold told yold retcell order evtfcn;
   persistent evtcnt = 1;   # Don't remove.  Required for Octave parser.
   persistent firstrun = true;
 
   if (isempty (flag))
     ## Process the event, i.e.,
     ## find the zero crossings for either a rising or falling edge
-    if (! iscell (y))
-      inpargs = {evtfun, t, y};
-    else
-      inpargs = {evtfun, t, y{1}, y{2}};
-      y = y{1};  # Delete cell element 2
-    endif
-    if (nargin > 4)
-      inpargs = {inpargs{:}, varargin{:}};
-    endif
-    [evt, term, dir] = feval (inpargs{:});
+    [evt, term, dir] = evtfcn (t, y);
 
     ## We require that all return values be row vectors
     evt = evt(:).'; term = term(:).'; dir = dir(:).';
@@ -115,16 +108,58 @@
         else
           retcell{1} = any (term(idx));     # Stop integration or not
         endif
-        idx = idx(1);  # Use first event found if there are multiple.
-        retcell{2}(evtcnt,1) = idx;
-        ## Calculate the time stamp when the event function returned 0 and
-        ## calculate new values for the integration results, we do both by
-        ## a linear interpolation.
-        tnew = t - evt(idx) * (t - told) / (evt(idx) - evtold(idx));
-        ynew = (y - (t - tnew) * (y - yold) / (t - told)).';
-        retcell{3}(evtcnt,1) = tnew;
-        retcell{4}(evtcnt,:) = ynew;
-        evtcnt += 1;
+        evtcntnew = 1;
+        ## Add all events this step to the output.
+        for idx2 = idx                      # Loop through all values of idx
+          ## Calculate the time stamp when the event function returned 0 and
+          ## calculate new values for the integration results. We do both by
+          ## root solving, calling the Event function with y values from
+          ## the RK interpolation polynomial. Set tolerance to zero (actually
+          ## uses machine tolerance based criterion in this case) since we
+          ## don't have a way for the user to specify an acceptable tolerance.
+          ## For simple Event functions, this means we're basically root
+          ## finding on a small interval for a polynomial, so we expect
+          ## pretty quick convergence.
+          tvals = [told t];
+          yvals = [yold y];
+          tnew = fzero(@(t2) evtfcn_val (evtfcn, t2, ...
+                       runge_kutta_interpolate (order, tvals, yvals, ...
+                       t2, k_vals), idx2), tvals, optimset ("TolX", 0));
+          ynew = runge_kutta_interpolate (order, tvals, yvals, tnew, k_vals);
+
+          tnews(evtcntnew, 1) = tnew;
+          ynews(evtcntnew, :) = ynew;
+          terms(evtcntnew, 1) = term(idx2);
+          evtcntnew += 1;
+        endfor
+        ## Sort by time of event
+        if length (idx) > 1
+          [tnews, idx_sort] = sort (tnews, "ascend");
+          idxs = idx(idx_sort);
+          ynews = ynews(idx_sort,:);
+          terms = terms(idx_sort);
+        else
+          idxs = idx;
+        endif
+        ## Check for terminal events and remove any events after terminal.
+        ## Any events at same time as first terminal event will be retained.
+        idx3 = find (terms, 1);          # Find first terminal event by time
+        if ! isempty (idx3)
+          t_cutoff = tnews(idx3);
+          ## Last index to return
+          evtcntnew = find (tnews == t_cutoff, 1, "last");
+        else
+          evtcntnew = length (terms);         # Return all indices if no terminal
+        endif
+        idxs = idxs(1:evtcntnew);
+        tnews = tnews(1:evtcntnew);
+
+        ## Populate return values with sorted, clipped values
+        evtcntrange = evtcnt - 1 + (1:evtcntnew);
+        evtcnt += evtcntnew;
+        retcell{2}(evtcntrange, 1) = idxs(:);
+        retcell{3}(evtcntrange, 1) = tnews(:);
+        retcell{4}(evtcntrange, :) = ynews(1:evtcntnew,:);
       endif
 
     endif
@@ -139,17 +174,10 @@
     ## a value for evtold.
 
     firstrun = true;
+    order = ord;
+    evtfcn = evt_fcn;
 
-    if (! iscell (y))
-      inpargs = {evtfun, t, y};
-    else
-      inpargs = {evtfun, t, y{1}, y{2}};
-      y = y{1};  # Delete cell element 2
-    endif
-    if (nargin > 4)
-      inpargs = {inpargs{:}, varargin{:}};
-    endif
-    [evtold, ~, ~] = feval (inpargs{:});
+    [evtold, ~, ~] = evtfcn (t, y);
 
     ## We require that all return values be row vectors
     evtold = evtold(:).'; told = t; yold = y;
@@ -159,9 +187,14 @@
   elseif (strcmp (flag, "done"))
     ## Clear this event handling function
     firstrun = true;
-    evtold = told = yold = evtcnt = [];
+    evtold = told = yold = evtcnt = order = evtfcn = [];
     retval = retcell = cell (1,4);
 
   endif
 
 endfunction
+
+function val = evtfcn_val (evtfcn, t, y, ind)
+  [evt, ~, ~] = evtfcn (t, y);
+  val = evt(ind);
+endfunction
--- a/scripts/ode/private/runge_kutta_23.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/private/runge_kutta_23.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23 (@var{fun}, @var{t}, @var{x}, @var{dt})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23 (@var{fun}, @var{t}, @var{x}, @var{dt}, @var{options})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23 (@var{fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23 (@var{fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals}, @var{t_next})
+## @deftypefn  {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23 (@var{fcn}, @var{t}, @var{x}, @var{dt})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23 (@var{fcn}, @var{t}, @var{x}, @var{dt}, @var{options})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23 (@var{fcn}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23 (@var{fcn}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals}, @var{t_next})
 ## @deftypefnx {} {[@var{t_next}, @var{x_next}, @var{x_est}] =} runge_kutta_23 (@dots{})
 ## @deftypefnx {} {[@var{t_next}, @var{x_next}, @var{x_est}, @var{k_vals_out}] =} runge_kutta_23 (@dots{})
 ##
@@ -36,7 +36,7 @@
 ## method of third order.  For the definition of this method see
 ## @url{http://en.wikipedia.org/wiki/List_of_Runge%E2%80%93Kutta_methods}.
 ##
-## @var{fun} is a function handle that defines the ODE: @code{y' = f(tau,y)}.
+## @var{fcn} is a function handle that defines the ODE: @code{y' = f(tau,y)}.
 ## The function must accept two inputs where the first is time @var{tau} and
 ## the second is a column vector of unknowns @var{y}.
 ##
@@ -49,7 +49,7 @@
 ## The optional fourth argument @var{options} specifies options for the ODE
 ## solver.  It is a structure generated by @code{odeset}.  In particular it
 ## contains the field @var{funarguments} with the optional arguments to be used
-## in the evaluation of @var{fun}.
+## in the evaluation of @var{fcn}.
 ##
 ## The optional fifth argument @var{k_vals_in} contains the Runge-Kutta
 ## evaluations of the previous step to use in a FSAL scheme.
@@ -66,7 +66,7 @@
 ## @seealso{runge_kutta_45_dorpri}
 ## @end deftypefn
 
-function [t_next, x_next, x_est, k] = runge_kutta_23 (fun, t, x, dt,
+function [t_next, x_next, x_est, k] = runge_kutta_23 (fcn, t, x, dt,
                                                       options = [],
                                                       k_vals = [],
                                                       t_next = t + dt)
@@ -92,11 +92,11 @@
   if (! isempty (k_vals))    # k values from previous step are passed
     k(:,1) = k_vals(:,end);  # FSAL property
   else
-    k(:,1) = feval (fun, t, x, args{:});
+    k(:,1) = feval (fcn, t, x, args{:});
   endif
 
-  k(:,2) = feval (fun, s(2), x + k(:,1) * aa(2, 1).', args{:});
-  k(:,3) = feval (fun, s(3), x + k(:,2) * aa(3, 2).', args{:});
+  k(:,2) = feval (fcn, s(2), x + k(:,1) * aa(2, 1).', args{:});
+  k(:,3) = feval (fcn, s(3), x + k(:,2) * aa(3, 2).', args{:});
 
   ## compute new time and new values for the unknowns
   ## t_next = t + dt;
@@ -105,7 +105,7 @@
   ## if the estimation of the error is required
   if (nargout >= 3)
     ## new solution to be compared with the previous one
-    k(:,4) = feval (fun, t_next, x_next, args{:});
+    k(:,4) = feval (fcn, t_next, x_next, args{:});
     cc_prime = dt * c_prime;
     x_est = x + k * cc_prime(:);
   endif
--- a/scripts/ode/private/runge_kutta_23s.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/private/runge_kutta_23s.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23s (@var{fun}, @var{t}, @var{x}, @var{dt})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23s (@var{fun}, @var{t}, @var{x}, @var{dt}, @var{options})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23s (@var{fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23s (@var{fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals}, @var{t_next})
+## @deftypefn  {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23s (@var{fcn}, @var{t}, @var{x}, @var{dt})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23s (@var{fcn}, @var{t}, @var{x}, @var{dt}, @var{options})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23s (@var{fcn}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_23s (@var{fcn}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals}, @var{t_next})
 ## @deftypefnx {} {[@var{t_next}, @var{x_next}, @var{x_est}] =} runge_kutta_23s (@dots{})
 ## @deftypefnx {} {[@var{t_next}, @var{x_next}, @var{x_est}, @var{k_vals_out}] =} runge_kutta_23s (@dots{})
 ##
@@ -50,7 +50,7 @@
 ## The optional fourth argument @var{options} specifies options for the ODE
 ## solver.  It is a structure generated by @code{odeset}.  In particular it
 ## contains the field @var{funarguments} with the optional arguments to be used
-## in the evaluation of @var{fun}.
+## in the evaluation of @var{fcn}.
 ##
 ## The optional fifth argument @var{k_vals_in} contains the Runge-Kutta
 ## evaluations of the previous step to use in a FSAL scheme.
@@ -67,7 +67,7 @@
 ## @seealso{runge_kutta_23}
 ## @end deftypefn
 
-function [t_next, x_next, x_est, k] = runge_kutta_23s (fun, t, x, dt,
+function [t_next, x_next, x_est, k] = runge_kutta_23s (fcn, t, x, dt,
                                                        options = [],
                                                        k_vals = [],
                                                        t_next = t + dt)
@@ -83,14 +83,14 @@
     args = {};
   endif
 
-  jacfun = false;
+  jacfcn = false;
   jacmat = false;
   if (! isempty (options.Jacobian))
     if (ischar (options.Jacobian))
-      jacfun = true;
+      jacfcn = true;
       jac = str2fun (options.Jacobian);
     elseif (is_function_handle (options.Jacobian))
-      jacfun = true;
+      jacfcn = true;
       jac = options.Jacobian;
     elseif (ismatrix (options.Jacobian))
       jacmat = true;
@@ -110,15 +110,15 @@
   ## Jacobian matrix, dfxpdp
   if (jacmat)
     J = jac;
-  elseif (jacfun)
+  elseif (jacfcn)
     J = jac (t, x);
   elseif (! jacpat)
-    J = __dfxpdp__ (x, @(a) feval (fun, t, a, args{:}), options.RelTol);
+    J = __dfxpdp__ (x, @(a) feval (fcn, t, a, args{:}), options.RelTol);
   elseif (jacpat)
-    J = __dfxpdp__ (x, @(a) feval (fun, t, a, args{:}), options.RelTol, pattern);
+    J = __dfxpdp__ (x, @(a) feval (fcn, t, a, args{:}), options.RelTol, pattern);
   endif
 
-  T = (feval (fun, t + .1 * dt, x) - feval (fun, t, x, args{:})) / (.1 * dt);
+  T = (feval (fcn, t + .1 * dt, x) - feval (fcn, t, x, args{:})) / (.1 * dt);
 
   ## Wolfbrandt coefficient
   if (isempty (options.Mass))
@@ -135,13 +135,13 @@
   endif
 
   ## compute the slopes
-  F(:,1) = feval (fun, t, x, args{:});
+  F(:,1) = feval (fcn, t, x, args{:});
   if (issparse (W))
     k(:,1) = Qw * (Uw \ (Lw \ (Pw * (Rw \ (F(:,1) + dt*d*T)))));
   else
     k(:,1) = Uw \ (Lw \ (Pw * (F(:,1) + dt*d*T)));
   endif
-  F(:,2) = feval (fun, t+a*dt, x+a*dt*k(:,1), args{:});
+  F(:,2) = feval (fcn, t+a*dt, x+a*dt*k(:,1), args{:});
   if (issparse (W))
     k(:,2) = Uw * (Uw \ (Lw \ (Pw * (Rw \ (F(:,2) - M*k(:,1)))))) + k(:,1);
   else
@@ -153,7 +153,7 @@
 
   if (nargout >= 3)
     ## 3rd order, needed in error formula
-    F(:,3) = feval (fun, t+dt, x_next, args{:});
+    F(:,3) = feval (fcn, t+dt, x_next, args{:});
     if (issparse (W))
       k(:,3) = Qw * (Uw \ (Lw \ (Pw * (Rw \ (F(:,3) - e32 * (M*k(:,2) - F(:,2)) - 2 * (M*k(:,1) - F(:,1)) + dt*d*T)))));
     else
@@ -170,12 +170,12 @@
 endfunction
 
 
-function prt = __dfxpdp__ (p, func, rtol, pattern)
+function prt = __dfxpdp__ (p, fcn, rtol, pattern)
 
   ## This subfunction was copied 2011 from the OF "optim" package
   ## "inst/private/__dfdp__.m".
 
-  f = func (p)(:);
+  f = fcn (p)(:);
   m = numel (f);
   n = numel (p);
 
@@ -193,9 +193,9 @@
     prt = pattern;  # initialize Jacobian
     for j = find (any (pattern, 1))
       ps(j) = p1(j);
-      tp1 = func (ps);
+      tp1 = fcn (ps);
       ps(j) = p2(j);
-      tp2 = func (ps);
+      tp2 = fcn (ps);
       pattern_nnz = find (pattern(:, j));
       prt(pattern_nnz, j) = (tp1(pattern_nnz) - tp2(pattern_nnz)) / absdel(j);
       ps(j) = p(j);
@@ -204,9 +204,9 @@
     prt = zeros (m, n); # initialize Jacobian
     for j = 1:n
       ps(j) = p1(j);
-      tp1 = func (ps);
+      tp1 = fcn (ps);
       ps(j) = p2(j);
-      tp2 = func (ps);
+      tp2 = fcn (ps);
       prt(:, j) = (tp1(:) - tp2(:)) / absdel(j);
       ps(j) = p(j);
     endfor
--- a/scripts/ode/private/runge_kutta_45_dorpri.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/private/runge_kutta_45_dorpri.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fun}, @var{t}, @var{x}, @var{dt})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fun}, @var{t}, @var{x}, @var{dt}, @var{options})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals})
-## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals}, @var{t_next})
+## @deftypefn  {} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fcn}, @var{t}, @var{x}, @var{dt})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fcn}, @var{t}, @var{x}, @var{dt}, @var{options})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fcn}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals})
+## @deftypefnx {} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fcn}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals}, @var{t_next})
 ## @deftypefnx {} {[@var{t_next}, @var{x_next}, @var{x_est}] =} runge_kutta_45_dorpri (@dots{})
 ## @deftypefnx {} {[@var{t_next}, @var{x_next}, @var{x_est}, @var{k_vals_out}] =} runge_kutta_45_dorpri (@dots{})
 ##
@@ -67,7 +67,7 @@
 ## to use in an FSAL scheme or for dense output.
 ## @end deftypefn
 
-function [t_next, x_next, x_est, k] = runge_kutta_45_dorpri (fun, t, x, dt,
+function [t_next, x_next, x_est, k] = runge_kutta_45_dorpri (fcn, t, x, dt,
                                                              options = [],
                                                              k_vals = [],
                                                              t_next = t + dt)
@@ -100,14 +100,14 @@
   if (! isempty (k_vals))    # k values from previous step are passed
     k(:,1) = k_vals(:,end);  # FSAL property
   else
-    k(:,1) = feval (fun, t, x, args{:});
+    k(:,1) = feval (fcn, t, x, args{:});
   endif
 
-  k(:,2) = feval (fun, s(2), x + k(:,1)   * aa(2, 1).'  , args{:});
-  k(:,3) = feval (fun, s(3), x + k(:,1:2) * aa(3, 1:2).', args{:});
-  k(:,4) = feval (fun, s(4), x + k(:,1:3) * aa(4, 1:3).', args{:});
-  k(:,5) = feval (fun, s(5), x + k(:,1:4) * aa(5, 1:4).', args{:});
-  k(:,6) = feval (fun, s(6), x + k(:,1:5) * aa(6, 1:5).', args{:});
+  k(:,2) = feval (fcn, s(2), x + k(:,1)   * aa(2, 1).'  , args{:});
+  k(:,3) = feval (fcn, s(3), x + k(:,1:2) * aa(3, 1:2).', args{:});
+  k(:,4) = feval (fcn, s(4), x + k(:,1:3) * aa(4, 1:3).', args{:});
+  k(:,5) = feval (fcn, s(5), x + k(:,1:4) * aa(5, 1:4).', args{:});
+  k(:,6) = feval (fcn, s(6), x + k(:,1:5) * aa(6, 1:5).', args{:});
 
   ## compute new time and new values for the unknowns
   ## t_next = t + dt;
@@ -116,7 +116,7 @@
   ## if the estimation of the error is required
   if (nargout >= 3)
     ## new solution to be compared with the previous one
-    k(:,7) = feval (fun, t_next, x_next, args{:});
+    k(:,7) = feval (fcn, t_next, x_next, args{:});
     cc_prime = dt * c_prime;
     x_est = x + k * cc_prime(:);
   endif
--- a/scripts/ode/private/runge_kutta_interpolate.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/private/runge_kutta_interpolate.m	Tue Nov 15 13:15:28 2022 -0800
@@ -23,22 +23,21 @@
 ##
 ########################################################################
 
-function u_interp = runge_kutta_interpolate (order, z, u, t, k_vals, dt, func, args)
+function u_interp = runge_kutta_interpolate (order, z, u, t, k_vals)
 
   switch (order)
 
     case 1
+      ## Unused
       u_interp = interp1 (z, u.', t, "linear");
 
     case 2
-      if (! isempty (k_vals))
-        der = k_vals(:,1);
-      else
-        der = feval (func, z(1) , u(:,1), args);
-      endif
+      ## ode23s with Rosenbrock scheme:
+      der = k_vals(:,1);
       u_interp = quadratic_interpolation (z, u, der, t);
 
     case 3
+      ## ode23 with Bogacki-Shampine scheme:
       u_interp = hermite_cubic_interpolation (z, u, k_vals, t);
 
     case 5
@@ -46,11 +45,10 @@
       u_interp = hermite_quartic_interpolation (z, u, k_vals, t);
 
     otherwise
-      warning (["High order interpolation not yet implemented: ", ...
-                "using cubic interpolation instead"]);
-      der(:,1) = feval (func, z(1), u(:,1), args);
-      der(:,2) = feval (func, z(2), u(:,2), args);
-      u_interp = hermite_cubic_interpolation (z, u, der, t);
+      ## This should never happen
+      warning (["Invalid/unimplemented interpolation order: ", ...
+                "using linear interpolation instead"]);
+      u_interp = interp1 (z, u.', t, "linear");
 
   endswitch
 
--- a/scripts/ode/private/starting_stepsize.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/ode/private/starting_stepsize.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,12 +24,12 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {@var{h} =} starting_stepsize (@var{order}, @var{func}, @var{t0}, @var{x0}, @var{AbsTol}, @var{RelTol}, @var{normcontrol}, @var{args})
+## @deftypefn {} {@var{h} =} starting_stepsize (@var{order}, @var{fcn}, @var{t0}, @var{x0}, @var{AbsTol}, @var{RelTol}, @var{normcontrol}, @var{args})
 ##
 ## Determine a good initial timestep for an ODE solver of order @var{order}
 ## using the algorithm described in reference [1].
 ##
-## The input argument @var{func}, is the function describing the differential
+## The input argument @var{fcn}, is the function describing the differential
 ## equations, @var{t0} is the initial time, and @var{x0} is the initial
 ## condition.  @var{AbsTol} and @var{RelTol} are the absolute and relative
 ## tolerance on the ODE integration taken from an ode options structure.
@@ -42,7 +42,7 @@
 ##
 ## @seealso{odepkg}
 
-function h = starting_stepsize (order, func, t0, x0,
+function h = starting_stepsize (order, fcn, t0, x0,
                                 AbsTol, RelTol, normcontrol,
                                 args = {})
 
@@ -50,7 +50,7 @@
   d0 = AbsRel_norm (x0, x0, AbsTol, RelTol, normcontrol);
 
   ## compute norm of the function evaluated at initial conditions
-  y = func (t0, x0, args{:});
+  y = fcn (t0, x0, args{:});
   if (iscell (y))
     y = y{1};
   endif
@@ -66,7 +66,7 @@
   x1 = x0 + h0 * y;
 
   ## approximate the derivative norm
-  yh = func (t0+h0, x1, args{:});
+  yh = fcn (t0+h0, x1, args{:});
   if (iscell (yh))
     yh = yh{1};
   endif
--- a/scripts/optimization/__all_opts__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/__all_opts__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -55,8 +55,8 @@
     for i = 1:nargin
       try
         opts = optimset (varargin{i});
-        fn = fieldnames (opts).';
-        names = [names, fn];
+        fcn = fieldnames (opts).';
+        names = [names, fcn];
       catch
         ## throw the error as a warning.
         warning (lasterr ());
--- a/scripts/optimization/fminbnd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/fminbnd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,12 +24,12 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{x} =} fminbnd (@var{fun}, @var{a}, @var{b})
-## @deftypefnx {} {@var{x} =} fminbnd (@var{fun}, @var{a}, @var{b}, @var{options})
+## @deftypefn  {} {@var{x} =} fminbnd (@var{fcn}, @var{a}, @var{b})
+## @deftypefnx {} {@var{x} =} fminbnd (@var{fcn}, @var{a}, @var{b}, @var{options})
 ## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fminbnd (@dots{})
 ## Find a minimum point of a univariate function.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function to evaluate.
 ##
 ## The starting interval is specified by @var{a} (left boundary) and @var{b}
@@ -88,10 +88,10 @@
 ## PKG_ADD: ## Discard result to avoid polluting workspace with ans at startup.
 ## PKG_ADD: [~] = __all_opts__ ("fminbnd");
 
-function [x, fval, info, output] = fminbnd (fun, a, b, options = struct ())
+function [x, fval, info, output] = fminbnd (fcn, a, b, options = struct ())
 
   ## Get default options if requested.
-  if (nargin == 1 && ischar (fun) && strcmp (fun, "defaults"))
+  if (nargin == 1 && ischar (fcn) && strcmp (fcn, "defaults"))
     x = struct ("Display", "notify", "FunValCheck", "off",
                 "MaxFunEvals", 500, "MaxIter", 500,
                 "OutputFcn", [], "TolX", 1e-4);
@@ -107,8 +107,8 @@
            "fminbnd: the lower bound cannot be greater than the upper one");
   endif
 
-  if (ischar (fun))
-    fun = str2func (fun);
+  if (ischar (fcn))
+    fcn = str2func (fcn);
   endif
 
   displ = optimget (options, "Display", "notify");
@@ -119,8 +119,8 @@
   maxfev = optimget (options, "MaxFunEvals", 500);
 
   if (funvalchk)
-    ## Replace fun with a guarded version.
-    fun = @(x) guarded_eval (fun, x);
+    ## Replace fcn with a guarded version.
+    fcn = @(x) guarded_eval (fcn, x);
   endif
 
   ## The default exit flag if exceeded number of iterations.
@@ -132,7 +132,7 @@
   v = a + c*(b-a);
   w = x = v;
   e = 0;
-  fv = fw = fval = fun (x);
+  fv = fw = fval = fcn (x);
   nfev += 1;
 
   if (isa (a, "single") || isa (b, "single") || isa (fval, "single"))
@@ -199,7 +199,7 @@
 
     ## f must not be evaluated too close to x.
     u = x + max (abs (d), tol) * (sign (d) + (d == 0));
-    fu = fun (u);
+    fu = fcn (u);
 
     niter += 1;
 
@@ -275,9 +275,9 @@
 endfunction
 
 ## A helper function that evaluates a function and checks for bad results.
-function fx = guarded_eval (fun, x)
+function fx = guarded_eval (fcn, x)
 
-  fx = fun (x);
+  fx = fcn (x);
   fx = fx(1);
   if (! isreal (fx))
     error ("Octave:fmindbnd:notreal", "fminbnd: non-real value encountered");
@@ -289,7 +289,7 @@
 
 ## A hack for printing a formatted table
 function print_formatted_table (table)
-  printf ("\n Func-count     x          f(x)         Procedure\n");
+  printf ("\n Fcn-count     x          f(x)         Procedure\n");
   for row=table
     printf ("%5.5s        %7.7s    %8.8s\t%s\n",
             int2str (row.funccount), num2str (row.x,"%.5f"),
--- a/scripts/optimization/fminsearch.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/fminsearch.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,15 +24,15 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{x} =} fminsearch (@var{fun}, @var{x0})
-## @deftypefnx {} {@var{x} =} fminsearch (@var{fun}, @var{x0}, @var{options})
+## @deftypefn  {} {@var{x} =} fminsearch (@var{fcn}, @var{x0})
+## @deftypefnx {} {@var{x} =} fminsearch (@var{fcn}, @var{x0}, @var{options})
 ## @deftypefnx {} {@var{x} =} fminsearch (@var{problem})
 ## @deftypefnx {} {[@var{x}, @var{fval}, @var{exitflag}, @var{output}] =} fminsearch (@dots{})
 ##
 ## Find a value of @var{x} which minimizes the multi-variable function
-## @var{fun}.
+## @var{fcn}.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function to evaluate.
 ##
 ## The search begins at the point @var{x0} and iterates using the
@@ -103,7 +103,7 @@
 ##
 ## The fourth output is a structure @var{output} containing runtime
 ## about the algorithm.  Fields in the structure are @code{funcCount}
-## containing the number of function calls to @var{fun}, @code{iterations}
+## containing the number of function calls to @var{fcn}, @code{iterations}
 ## containing the number of iteration steps, @code{algorithm} with the name of
 ## the search algorithm (always:
 ## @nospell{@qcode{"Nelder-Mead simplex direct search"}}), and @code{message}
@@ -146,7 +146,7 @@
     if (! isstruct (problem))
       error ("fminsearch: PROBLEM must be a structure");
     endif
-    fun = problem.objective;
+    fcn = problem.objective;
     x0 = problem.x0;
     if (! strcmp (problem.solver, "fminsearch"))
       error ('fminsearch: problem.solver must be set to "fminsearch"');
@@ -157,7 +157,7 @@
       options = [];
     endif
   elseif (nargin > 1)
-    fun = varargin{1};
+    fcn = varargin{1};
     x0 = varargin{2};
     if (nargin > 2)
       options = varargin{3};
@@ -168,25 +168,25 @@
     endif
   endif
 
-  if (ischar (fun))
-    fun = str2func (fun);
+  if (ischar (fcn))
+    fcn = str2func (fcn);
   endif
 
   if (isempty (options))
     options = struct ();
   endif
 
-  [x, exitflag, output] = nmsmax (fun, x0, options, varargin{:});
+  [x, exitflag, output] = nmsmax (fcn, x0, options, varargin{:});
 
   if (isargout (2))
-    fval = feval (fun, x);
+    fval = feval (fcn, x);
   endif
 
 endfunction
 
 ## NMSMAX  Nelder-Mead simplex method for direct search optimization.
-##        [x, fmax, nf] = NMSMAX(FUN, x0, STOPIT, SAVIT) attempts to
-##        maximize the function FUN, using the starting vector x0.
+##        [x, fmax, nf] = NMSMAX(FCN, x0, STOPIT, SAVIT) attempts to
+##        maximize the function FCN, using the starting vector x0.
 ##        The Nelder-Mead direct search method is used.
 ##        Output arguments:
 ##               x    = vector yielding largest function value found,
@@ -210,8 +210,8 @@
 ##        'SAVE SAVIT x fmax nf' is executed after each inner iteration.
 ##        NB: x0 can be a matrix.  In the output argument, in SAVIT saves,
 ##            and in function calls, x has the same shape as x0.
-##        NMSMAX(fun, x0, STOPIT, SAVIT, P1, P2,...) allows additional
-##        arguments to be passed to fun, via feval(fun,x,P1,P2,...).
+##        NMSMAX(FCN, x0, STOPIT, SAVIT, P1, P2,...) allows additional
+##        arguments to be passed to FCN, via feval(FCN,x,P1,P2,...).
 ## References:
 ## N. J. Higham, Optimization by direct search in matrix computations,
 ##    SIAM J. Matrix Anal. Appl, 14(2): 317-333, 1993.
@@ -270,16 +270,16 @@
 
 endfunction
 
-function [x, exitflag, output] = nmsmax (fun, x, options, varargin)
+function [x, exitflag, output] = nmsmax (fcn, x, options, varargin)
 
   [stopit, savit, dirn, trace, tol, maxiter, tol_f, outfcn] = ...
                                                     parse_options (options, x);
 
   if (strcmpi (optimget (options, "FunValCheck", "off"), "on"))
     ## Replace fcn with a guarded version.
-    fun = @(x) guarded_eval (fun, x, varargin{:});
+    fcn = @(x) guarded_eval (fcn, x, varargin{:});
   else
-    fun = @(x) real (fun (x, varargin{:}));
+    fcn = @(x) real (fcn (x, varargin{:}));
   endif
 
   x0 = x(:);  # Work with column vector internally.
@@ -288,7 +288,7 @@
   V = [zeros(n,1) eye(n)];
   f = zeros (n+1,1);
   V(:,1) = x0;
-  f(1) = dirn * fun (x);
+  f(1) = dirn * fcn (x);
   fmax_old = f(1);
   nf = 1;
 
@@ -308,7 +308,7 @@
     for j = 2:n+1
       V(j-1,j) = x0(j-1) + alpha(1);
       x(:) = V(:,j);
-      f(j) = dirn * fun (x);
+      f(j) = dirn * fcn (x);
     endfor
   else
     ## Right-angled simplex based on co-ordinate axes.
@@ -316,7 +316,7 @@
     for j = 2:n+1
       V(:,j) = x0 + alpha(j)*V(:,j);
       x(:) = V(:,j);
-      f(j) = dirn * fun (x);
+      f(j) = dirn * fcn (x);
     endfor
   endif
   nf += n;
@@ -419,14 +419,14 @@
     vbar = (sum (V(:,1:n)')/n)';  # Mean value
     vr = (1 + alpha)*vbar - alpha*V(:,n+1);
     x(:) = vr;
-    fr = dirn * fun (x);
+    fr = dirn * fcn (x);
     nf += 1;
     vk = vr;  fk = fr; how = "reflect";
     if (fr > f(n))
       if (fr > f(1))
         ve = gamma*vr + (1-gamma)*vbar;
         x(:) = ve;
-        fe = dirn * fun (x);
+        fe = dirn * fcn (x);
         nf += 1;
         if (fe > f(1))
           vk = ve;
@@ -443,7 +443,7 @@
       endif
       vc = beta*vt + (1-beta)*vbar;
       x(:) = vc;
-      fc = dirn * fun (x);
+      fc = dirn * fcn (x);
       nf += 1;
       if (fc > f(n))
         vk = vc; fk = fc;
@@ -452,12 +452,12 @@
         for j = 2:n
           V(:,j) = (V(:,1) + V(:,j))/2;
           x(:) = V(:,j);
-          f(j) = dirn * fun (x);
+          f(j) = dirn * fcn (x);
         endfor
         nf += n-1;
         vk = (V(:,1) + V(:,n+1))/2;
         x(:) = vk;
-        fk = dirn * fun (x);
+        fk = dirn * fcn (x);
         nf += 1;
         how = "shrink";
       endif
@@ -497,9 +497,9 @@
 endfunction
 
 ## A helper function that evaluates a function and checks for bad results.
-function y = guarded_eval (fun, x, varargin)
+function y = guarded_eval (fcn, x, varargin)
 
-  y = fun (x, varargin{:});
+  y = fcn (x, varargin{:});
 
   if (! (isreal (y)))
     error ("fminsearch:notreal", "fminsearch: non-real value encountered");
--- a/scripts/optimization/fminunc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/fminunc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,12 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fminunc (@var{fcn}, @var{x0})
-## @deftypefnx {} {} fminunc (@var{fcn}, @var{x0}, @var{options})
+## @deftypefn  {} {@var{x} =} fminunc (@var{fcn}, @var{x0})
+## @deftypefnx {} {@var{x} =} fminunc (@var{fcn}, @var{x0}, @var{options})
+## @deftypefnx {} {[@var{x}, @var{fval}] =} fminunc (@var{fcn}, @dots{})
+## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}] =} fminunc (@var{fcn}, @dots{})
+## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fminunc (@var{fcn}, @dots{})
+## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}, @var{output}, @var{grad}] =} fminunc (@var{fcn}, @dots{})
 ## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}, @var{output}, @var{grad}, @var{hess}] =} fminunc (@var{fcn}, @dots{})
 ## Solve an unconstrained optimization problem defined by the function
 ## @var{fcn}.
@@ -33,7 +37,7 @@
 ## @code{fminunc} attempts to determine a vector @var{x} such that
 ## @code{@var{fcn} (@var{x})} is a local minimum.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function to evaluate.  @var{fcn} should accept a vector (array)
 ## defining the unknown variables, and return the objective function value,
 ## optionally with gradient.
@@ -409,12 +413,12 @@
 endfunction
 
 ## A helper function that evaluates a function and checks for bad results.
-function [fx, gx] = guarded_eval (fun, x)
+function [fx, gx] = guarded_eval (fcn, x)
 
   if (nargout > 1)
-    [fx, gx] = fun (x);
+    [fx, gx] = fcn (x);
   else
-    fx = fun (x);
+    fx = fcn (x);
     gx = [];
   endif
 
--- a/scripts/optimization/fsolve.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/fsolve.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,12 +24,15 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fsolve (@var{fcn}, @var{x0})
-## @deftypefnx {} {} fsolve (@var{fcn}, @var{x0}, @var{options})
+## @deftypefn  {} {@var{x} =} fsolve (@var{fcn}, @var{x0})
+## @deftypefnx {} {@var{x} =} fsolve (@var{fcn}, @var{x0}, @var{options})
+## @deftypefnx {} {[@var{x}, @var{fval}] =} fsolve (@dots{})
+## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}] =} fsolve (@dots{})
+## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fsolve (@dots{})
 ## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}, @var{output}, @var{fjac}] =} fsolve (@dots{})
 ## Solve a system of nonlinear equations defined by the function @var{fcn}.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function to evaluate.  @var{fcn} should accept a vector (array)
 ## defining the unknown variables, and return a vector of left-hand sides of
 ## the equations.  Right-hand sides are defined to be zeros.  In other words,
@@ -149,7 +152,7 @@
 ## recent vector.  A short example how this can be achieved follows:
 ##
 ## @example
-## function [fval, fjac] = user_func (x, optimvalues, state)
+## function [fval, fjac] = user_fcn (x, optimvalues, state)
 ## persistent sav = [], sav0 = [];
 ## if (nargin == 1)
 ##   ## evaluation call
@@ -170,7 +173,7 @@
 ##
 ## ## @dots{}
 ##
-## fsolve (@@user_func, x0, optimset ("OutputFcn", @@user_func, @dots{}))
+## fsolve (@@user_fcn, x0, optimset ("OutputFcn", @@user_fcn, @dots{}))
 ## @end example
 ## @seealso{fzero, optimset}
 ## @end deftypefn
@@ -506,12 +509,12 @@
 endfunction
 
 ## A helper function that evaluates a function and checks for bad results.
-function [fx, jx] = guarded_eval (fun, x, complexeqn)
+function [fx, jx] = guarded_eval (fcn, x, complexeqn)
 
   if (nargout > 1)
-    [fx, jx] = fun (x);
+    [fx, jx] = fcn (x);
   else
-    fx = fun (x);
+    fx = fcn (x);
     jx = [];
   endif
 
@@ -672,7 +675,7 @@
 %! assert (norm (c - c_opt, Inf) < tol);
 %! assert (norm (fval) < norm (noise));
 
-%!function y = cfun (x)
+%!function y = cfcn (x)
 %!  y(1) = (1+i)*x(1)^2 - (1-i)*x(2) - 2;
 %!  y(2) = sqrt (x(1)*x(2)) - (1-2i)*x(3) + (3-4i);
 %!  y(3) = x(1) * x(2) - x(3)^2 + (3+2i);
@@ -682,7 +685,7 @@
 %! x_opt = [-1+i, 1-i, 2+i];
 %! x = [i, 1, 1+i];
 %!
-%! [x, f, info] = fsolve (@cfun, x, optimset ("ComplexEqn", "on"));
+%! [x, f, info] = fsolve (@cfcn, x, optimset ("ComplexEqn", "on"));
 %! tol = 1e-5;
 %! assert (norm (f) < tol);
 %! assert (norm (x - x_opt, Inf) < tol);
--- a/scripts/optimization/fzero.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/fzero.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,12 +24,14 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fzero (@var{fun}, @var{x0})
-## @deftypefnx {} {} fzero (@var{fun}, @var{x0}, @var{options})
+## @deftypefn  {} {@var{x} =} fzero (@var{fcn}, @var{x0})
+## @deftypefnx {} {@var{x} =} fzero (@var{fcn}, @var{x0}, @var{options})
+## @deftypefnx {} {[@var{x}, @var{fval}] =} fzero (@dots{})
+## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}] =} fzero (@dots{})
 ## @deftypefnx {} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fzero (@dots{})
 ## Find a zero of a univariate function.
 ##
-## @var{fun} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function to evaluate.
 ##
 ## @var{x0} should be a two-element vector specifying two points which
@@ -38,7 +40,7 @@
 ## following must hold
 ##
 ## @example
-## sign (@var{fun}(@var{x0}(1))) * sign (@var{fun}(@var{x0}(2))) <= 0
+## sign (@var{fcn}(@var{x0}(1))) * sign (@var{fcn}(@var{x0}(2))) <= 0
 ## @end example
 ##
 ## If @var{x0} is a single scalar then several nearby and distant values are
@@ -125,10 +127,10 @@
 ## PKG_ADD: ## Discard result to avoid polluting workspace with ans at startup.
 ## PKG_ADD: [~] = __all_opts__ ("fzero");
 
-function [x, fval, info, output] = fzero (fun, x0, options = struct ())
+function [x, fval, info, output] = fzero (fcn, x0, options = struct ())
 
   ## Get default options if requested.
-  if (nargin == 1 && ischar (fun) && strcmp (fun, "defaults"))
+  if (nargin == 1 && ischar (fcn) && strcmp (fcn, "defaults"))
     x = struct ("Display", "notify", "FunValCheck", "off",
                 "MaxFunEvals", Inf, "MaxIter", Inf,
                 "OutputFcn", [], "TolX", eps);
@@ -139,8 +141,8 @@
     print_usage ();
   endif
 
-  if (ischar (fun))
-    fun = str2func (fun);
+  if (ischar (fcn))
+    fcn = str2func (fcn);
   endif
 
   displev = optimget (options, "Display", "notify");
@@ -164,8 +166,8 @@
   mu = 0.5;
 
   if (funvalchk)
-    ## Replace fun with a guarded version.
-    fun = @(x) guarded_eval (fun, x);
+    ## Replace fcn with a guarded version.
+    fcn = @(x) guarded_eval (fcn, x);
   endif
 
   info = 0;  # The default exit flag if number of iterations exceeded.
@@ -176,20 +178,20 @@
 
   ## Prepare...
   a = x0(1);
-  fa = fun (a);
+  fa = fcn (a);
   nfev = 1;
   if (length (x0) > 1)
     b = x0(2);
-    fb = fun (b);
+    fb = fcn (b);
     nfev += 1;
   else
     ## Try to find a value for b which brackets a zero-crossing
     if (displev == 1)
       printf ( ...
         "\nSearch for an interval around %g containing a sign change:\n", a);
-      printf (" Func-count    a          f(a)             b          ");
+      printf (" Fcn-count    a          f(a)             b          ");
       printf ("f(b)        Procedure\n");
-      fmt_str = " %4d   %13.6g %13.6g %13.6g %13.6g   %s\n";
+      fmt_str = " %4d  %13.6g %13.6g %13.6g %13.6g   %s\n";
     endif
 
     ## For very small values, switch to absolute rather than relative search
@@ -204,7 +206,7 @@
     ## Search in an ever-widening range around the initial point.
     for srch = [-.01 +.025 -.05 +.10 -.25 +.50 -1 +2.5 -5 +10 -50 +100 -500 +1000]
       b = aa + aa*srch;
-      fb = fun (b);
+      fb = fcn (b);
       nfev += 1;
       if (displev == 1)
         printf (fmt_str, nfev, a, fa, b, fb, "search");
@@ -231,8 +233,8 @@
 
   if (displev == 1)
     printf ("\nSearch for a zero in the interval [%g, %g]:\n", a, b);
-    disp (" Func-count    x          f(x)             Procedure");
-    fmt_str = " %4d   %13.6g %13.6g        %s\n";
+    disp (" Fcn-count    x          f(x)             Procedure");
+    fmt_str = " %4d  %13.6g %13.6g        %s\n";
   endif
 
   slope0 = (fb - fa) / (b - a);
@@ -343,7 +345,7 @@
 
     ## Calculate new point.
     x = c;
-    fval = fc = fun (c);
+    fval = fc = fcn (c);
     niter += 1; nfev += 1;
     if (displev == 1)
       printf (fmt_str, nfev, x, fc, "interpolation");
@@ -438,9 +440,9 @@
 endfunction
 
 ## A helper function that evaluates a function and checks for bad results.
-function fx = guarded_eval (fun, x)
+function fx = guarded_eval (fcn, x)
 
-  fx = fun (x);
+  fx = fcn (x);
   fx = fx(1);
   if (! isreal (fx))
     error ("Octave:fzero:notreal", "fzero: non-real value encountered");
--- a/scripts/optimization/lsqnonneg.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/lsqnonneg.m	Tue Nov 15 13:15:28 2022 -0800
@@ -69,7 +69,7 @@
 ## @end itemize
 ##
 ## @item lambda
-## Lagrange multipliers.  If these are non-zero, the corresponding @var{x}
+## Lagrange multipliers.  If these are nonzero, the corresponding @var{x}
 ## values should be zero, indicating the solution is pressed up against a
 ## coordinate plane.  The magnitude indicates how much the residual would
 ## improve if the @code{@var{x} >= 0} constraints were relaxed in that
--- a/scripts/optimization/optimget.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/optimget.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,43 +24,43 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} optimget (@var{options}, @var{parname})
-## @deftypefnx {} {} optimget (@var{options}, @var{parname}, @var{default})
-## Return the specific option @var{parname} from the optimization options
+## @deftypefn  {} {@var{optval} =} optimget (@var{options}, @var{optname})
+## @deftypefnx {} {@var{optval} =} optimget (@var{options}, @var{optname}, @var{default})
+## Return the specific option @var{optname} from the optimization options
 ## structure @var{options} created by @code{optimset}.
 ##
-## If @var{parname} is not defined then return @var{default} if supplied,
+## If @var{optname} is not defined then return @var{default} if supplied,
 ## otherwise return an empty matrix.
 ## @seealso{optimset}
 ## @end deftypefn
 
-function retval = optimget (options, parname, default)
+function optval = optimget (options, optname, default)
 
-  if (nargin < 2 || ! isstruct (options) || ! ischar (parname))
+  if (nargin < 2 || ! isstruct (options) || ! ischar (optname))
     print_usage ();
   endif
 
   ## Expand partial-length names into full names
   opts = __all_opts__ ();
-  idx = strncmpi (opts, parname, length (parname));
+  idx = strncmpi (opts, optname, length (optname));
   nmatch = sum (idx);
 
   if (nmatch == 1)
-    parname = opts{idx};
+    optname = opts{idx};
   elseif (nmatch == 0)
-    warning ("optimget: unrecognized option: %s", parname);
+    warning ("optimget: unrecognized option: %s", optname);
   else
     fmt = sprintf ("optimget: ambiguous option: %%s (%s%%s)",
                    repmat ("%s, ", 1, nmatch-1));
-    warning (fmt, parname, opts{idx});
+    warning (fmt, optname, opts{idx});
   endif
 
-  if (isfield (options, parname) && ! isempty (options.(parname)))
-    retval = options.(parname);
+  if (isfield (options, optname) && ! isempty (options.(optname)))
+    optval = options.(optname);
   elseif (nargin > 2)
-    retval = default;
+    optval = default;
   else
-    retval = [];
+    optval = [];
   endif
 
 endfunction
--- a/scripts/optimization/pqpnonneg.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/pqpnonneg.m	Tue Nov 15 13:15:28 2022 -0800
@@ -71,7 +71,7 @@
 ## @end itemize
 ##
 ## @item lambda
-## Lagrange multipliers.  If these are non-zero, the corresponding @var{x}
+## Lagrange multipliers.  If these are nonzero, the corresponding @var{x}
 ## values should be zero, indicating the solution is pressed up against a
 ## coordinate plane.  The magnitude indicates how much the residual would
 ## improve if the @code{@var{x} >= 0} constraints were relaxed in that
--- a/scripts/optimization/private/__fdjac__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/private/__fdjac__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __fdjac__ (@var{fcn}, @var{x}, @var{fvec}, @var{typicalx}, @var{cdif}, @var{err})
+## @deftypefn {} {@var{fjac} =} __fdjac__ (@var{fcn}, @var{x}, @var{fvec}, @var{typicalx}, @var{cdif}, @var{err})
 ## Undocumented internal function.
 ## @end deftypefn
 
--- a/scripts/optimization/qp.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/qp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -347,7 +347,12 @@
   in_infeasible = (n_in > 0 && any (Ain*x0-bin < -rtol*(1+abs (bin))));
 
   info = 0;
-  if (eq_infeasible || in_infeasible)
+
+  if (isdefinite (H) != 1)
+    info = 2;
+  endif
+
+  if (info == 0 && (eq_infeasible || in_infeasible))
     ## The initial guess is not feasible.
     ## First, define an xbar that is feasible with respect to the
     ## equality constraints.
@@ -454,3 +459,9 @@
 %!
 %! assert (isstruct (INFO) && isfield (INFO, "info") && (INFO.info == 0));
 %! assert ([x obj_qp], [1.0 0.5], eps);
+
+%!test <*61762>
+%! [x, obj, info] = qp ([], [21, 30, 39; 30, 45, 60; 39, 60, 81], [-40; -65; -90]);
+%! assert (x, zeros (3, 1));
+%! assert (obj, 0);
+%! assert (info.info, 2);
--- a/scripts/optimization/sqp.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/optimization/sqp.m	Tue Nov 15 13:15:28 2022 -0800
@@ -213,14 +213,14 @@
   if (iscell (objf))
     switch (numel (objf))
       case 1
-        obj_fun = objf{1};
-        obj_grd = @(x, obj) fd_obj_grd (x, obj, obj_fun);
+        obj_fcn = objf{1};
+        obj_grd = @(x, obj) fd_obj_grd (x, obj, obj_fcn);
       case 2
-        obj_fun = objf{1};
+        obj_fcn = objf{1};
         obj_grd = objf{2};
         have_grd = 1;
       case 3
-        obj_fun = objf{1};
+        obj_fcn = objf{1};
         obj_grd = objf{2};
         obj_hess = objf{3};
         have_grd = 1;
@@ -229,31 +229,31 @@
         error ("sqp: invalid objective function specification");
     endswitch
   else
-    obj_fun = objf;   # No cell array, only obj_fun set
-    obj_grd = @(x, obj) fd_obj_grd (x, obj, obj_fun);
+    obj_fcn = objf;   # No cell array, only obj_fcn set
+    obj_grd = @(x, obj) fd_obj_grd (x, obj, obj_fcn);
   endif
 
-  ce_fun = @empty_cf;
+  ce_fcn = @empty_cf;
   ce_grd = @empty_jac;
   if (nargin > 2)
     if (iscell (cef))
       switch (numel (cef))
         case 1
-          ce_fun = cef{1};
-          ce_grd = @(x) fd_ce_jac (x, ce_fun);
+          ce_fcn = cef{1};
+          ce_grd = @(x) fd_ce_jac (x, ce_fcn);
         case 2
-          ce_fun = cef{1};
+          ce_fcn = cef{1};
           ce_grd = cef{2};
         otherwise
           error ("sqp: invalid equality constraint function specification");
       endswitch
     elseif (! isempty (cef))
-      ce_fun = cef;   # No cell array, only constraint equality function set
-      ce_grd = @(x) fd_ce_jac (x, ce_fun);
+      ce_fcn = cef;   # No cell array, only constraint equality function set
+      ce_grd = @(x) fd_ce_jac (x, ce_fcn);
     endif
   endif
 
-  ci_fun = @empty_cf;
+  ci_fcn = @empty_cf;
   ci_grd = @empty_jac;
   if (nargin > 3)
     ## constraint function given by user with possible gradient
@@ -274,15 +274,15 @@
       if (iscell (cif))
         switch (length (cif))
           case 1
-            ci_fun = cif{1};
+            ci_fcn = cif{1};
           case 2
-            ci_fun = cif{1};
+            ci_fcn = cif{1};
             ci_grd = cif{2};
           otherwise
            error ("sqp: invalid inequality constraint function specification");
         endswitch
       elseif (! isempty (cif))
-        ci_fun = cif;   # No cell array, only constraint inequality function set
+        ci_fcn = cif;   # No cell array, only constraint inequality function set
       endif
     else
       ## constraint inequality function with bounds present
@@ -322,7 +322,7 @@
         error ("sqp: upper bound smaller than lower bound");
       endif
       bounds_grad = [lb_grad; ub_grad];
-      ci_fun = @(x) cf_ub_lb (x, lb_idx, ub_idx, globals);
+      ci_fcn = @(x) cf_ub_lb (x, lb_idx, ub_idx, globals);
       ci_grd = @(x) cigrad_ub_lb (x, bounds_grad, globals);
     endif
 
@@ -350,15 +350,15 @@
   ## Seed x with initial guess and evaluate objective function, constraints,
   ## and gradients at initial value x0.
   ##
-  ## obj_fun   -- objective function
+  ## obj_fcn   -- objective function
   ## obj_grad  -- objective gradient
-  ## ce_fun    -- equality constraint functions
-  ## ci_fun    -- inequality constraint functions
+  ## ce_fcn    -- equality constraint functions
+  ## ci_fcn    -- inequality constraint functions
   ## A == [grad_{x_1} cx_fun, grad_{x_2} cx_fun, ..., grad_{x_n} cx_fun]^T
   x = x0;
 
-  obj = feval (obj_fun, x0);
-  globals.nfun = 1;
+  obj = feval (obj_fcn, x0);
+  globals.nfev = 1;
 
   if (have_grd)
     c = feval (obj_grd, x0);
@@ -374,10 +374,10 @@
     B = eye (n, n);
   endif
 
-  ce = feval (ce_fun, x0);
+  ce = feval (ce_fcn, x0);
   F = feval (ce_grd, x0);
 
-  ci = feval (ci_fun, x0);
+  ci = feval (ci_fcn, x0);
   C = feval (ci_grd, x0);
 
   A = [F; C];
@@ -391,7 +391,7 @@
   info = 0;
   iter = 0;
   ## report ();  # Called with no arguments to initialize reporting
-  ## report (iter, qp_iter, alpha, __sqp_nfun__, obj);
+  ## report (iter, qp_iter, alpha, __sqp_nfev__, obj);
 
   while (++iter < iter_max)
 
@@ -445,7 +445,7 @@
     ## Choose mu such that p is a descent direction for the chosen
     ## merit function phi.
     [x_new, alpha, obj_new, globals] = ...
-        linesearch_L1 (x, p, obj_fun, obj_grd, ce_fun, ci_fun, lambda, ...
+        linesearch_L1 (x, p, obj_fcn, obj_grd, ce_fcn, ci_fcn, lambda, ...
                        obj, c, globals);
 
     delx = x_new - x;
@@ -463,10 +463,10 @@
       c_new = feval (obj_grd, x_new, obj_new);
     endif
 
-    ce_new = feval (ce_fun, x_new);
+    ce_new = feval (ce_fcn, x_new);
     F_new = feval (ce_grd, x_new);
 
-    ci_new = feval (ci_fun, x_new);
+    ci_new = feval (ci_fcn, x_new);
     C_new = feval (ci_grd, x_new);
 
     A_new = [F_new; C_new];
@@ -533,7 +533,7 @@
 
     A = A_new;
 
-    ## report (iter, qp_iter, alpha, __sqp_nfun__, obj);
+    ## report (iter, qp_iter, alpha, __sqp_nfev__, obj);
 
   endwhile
 
@@ -542,24 +542,24 @@
     info = 103;
   endif
 
-  nf = globals.nfun;
+  nf = globals.nfev;
 
 endfunction
 
 
-function [merit, obj, globals] = phi_L1 (obj, obj_fun, ce_fun, ci_fun, ...
+function [merit, obj, globals] = phi_L1 (obj, obj_fcn, ce_fcn, ci_fcn, ...
                                          x, mu, globals)
 
-  ce = feval (ce_fun, x);
-  ci = feval (ci_fun, x);
+  ce = feval (ce_fcn, x);
+  ci = feval (ci_fcn, x);
 
   idx = ci < 0;
 
   con = [ce; ci(idx)];
 
   if (isempty (obj))
-    obj = feval (obj_fun, x);
-    globals.nfun += 1;
+    obj = feval (obj_fcn, x);
+    globals.nfev += 1;
   endif
 
   merit = obj;
@@ -573,7 +573,7 @@
 
 
 function [x_new, alpha, obj, globals] = ...
-  linesearch_L1 (x, p, obj_fun, obj_grd, ce_fun, ci_fun, lambda, obj, c, globals)
+  linesearch_L1 (x, p, obj_fcn, obj_grd, ce_fcn, ci_fcn, lambda, obj, c, globals)
 
   ## Choose parameters
   ##
@@ -593,13 +593,13 @@
 
   alpha = 1;
 
-  ce = feval (ce_fun, x);
+  ce = feval (ce_fcn, x);
 
-  [phi_x_mu, obj, globals] = phi_L1 (obj, obj_fun, ce_fun, ci_fun, x, ...
+  [phi_x_mu, obj, globals] = phi_L1 (obj, obj_fcn, ce_fcn, ci_fcn, x, ...
                                      mu, globals);
 
   D_phi_x_mu = c' * p;
-  d = feval (ci_fun, x);
+  d = feval (ci_fcn, x);
   ## only those elements of d corresponding
   ## to violated constraints should be included.
   idx = d < 0;
@@ -609,7 +609,7 @@
   endif
 
   while (1)
-    [p1, obj, globals] = phi_L1 ([], obj_fun, ce_fun, ci_fun, ...
+    [p1, obj, globals] = phi_L1 ([], obj_fcn, ce_fcn, ci_fcn, ...
                                  x+alpha*p, mu, globals);
     p2 = phi_x_mu+eta*alpha*D_phi_x_mu;
     if (p1 > p2)
@@ -668,9 +668,9 @@
 endfunction
 
 
-function grd = fd_obj_grd (x, obj, obj_fun)
+function grd = fd_obj_grd (x, obj, obj_fcn)
 
-  grd = fdgrd (obj_fun, x, obj);
+  grd = fdgrd (obj_fcn, x, obj);
 
 endfunction
 
@@ -689,9 +689,9 @@
 endfunction
 
 
-function jac = fd_ce_jac (x, ce_fun)
+function jac = fd_ce_jac (x, ce_fcn)
 
-  jac = fdjac (ce_fun, x);
+  jac = fdjac (ce_fcn, x);
 
 endfunction
 
@@ -734,12 +734,12 @@
 endfunction
 
 ## Utility function used to debug sqp
-function report (iter, qp_iter, alpha, nfun, obj)
+function report (iter, qp_iter, alpha, nfev, obj)
 
   if (nargin == 0)
-    printf ("  Itn ItQP     Step  Nfun     Objective\n");
+    printf ("  Itn ItQP     Step  Nfev     Objective\n");
   else
-    printf ("%5d %4d %8.1g %5d %13.6e\n", iter, qp_iter, alpha, nfun, obj);
+    printf ("%5d %4d %8.1g %5d %13.6e\n", iter, qp_iter, alpha, nfev, obj);
   endif
 
 endfunction
--- a/scripts/path/matlabroot.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/path/matlabroot.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} matlabroot ()
+## @deftypefn {} {@var{dir} =} matlabroot ()
 ## Return the name of the top-level Octave installation directory.
 ##
 ## This is an alias for the function @w{@code{OCTAVE_HOME}} provided for
@@ -32,9 +32,9 @@
 ## @seealso{OCTAVE_HOME}
 ## @end deftypefn
 
-function retval = matlabroot ()
+function dir = matlabroot ()
 
-  retval = OCTAVE_HOME ();
+  dir = OCTAVE_HOME ();
 
 endfunction
 
--- a/scripts/path/savepath.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/path/savepath.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} savepath ()
-## @deftypefnx {} {} savepath (@var{file})
+## @deftypefn  {} {} savepath
+## @deftypefnx {} {} savepath @var{file}
 ## @deftypefnx {} {@var{status} =} savepath (@dots{})
 ## Save the unique portion of the current function search path that is
 ## not set during Octave's initialization process to @var{file}.
@@ -46,7 +46,7 @@
 ## @seealso{path, addpath, rmpath, genpath, pathdef}
 ## @end deftypefn
 
-function retval = savepath (file)
+function status = savepath (file)
 
   beginstring = "## Begin savepath auto-created section, do not edit";
   endstring   = "## End savepath auto-created section";
@@ -170,8 +170,8 @@
 
     fprintf (fid, "%s\n", post{:});
   unwind_protect_cleanup
-    status = fclose (fid);
-    if (status < 0)
+    sts = fclose (fid);
+    if (sts < 0)
       error ("savepath: could not close savefile after writing, %s", file);
     elseif (nargin == 0)
       warning ("off", "backtrace", "local");
@@ -181,7 +181,7 @@
   end_unwind_protect
 
   if (nargout > 0)
-    retval = 0;
+    status = 0;
   endif
 
 endfunction
--- a/scripts/pkg/pkg.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/pkg/pkg.m	Tue Nov 15 13:15:28 2022 -0800
@@ -168,21 +168,24 @@
 ##
 ## Options for the install command and the names of individual packages to be
 ## checked for updates may be specified as a list following the update
-## command. If the @option{-local} or @option{-global} option is specified,
+## command.  If the @option{-local} or @option{-global} option is specified,
 ## @code{pkg update} limits the update check to the local or global installed
 ## packages, and installs updates in that same context.  For example,
 ##
 ## Update all packages:
+##
 ## @example
 ## pkg update
 ## @end example
 ##
 ## Update all local packages:
+##
 ## @example
 ## pkg update -local
 ## @end example
 ##
 ## Update certain packages, ignore dependencies, max verbosity:
+##
 ## @example
 ## pkg update -verbose -nodeps image signal geometry
 ## @end example
@@ -534,6 +537,10 @@
         if (octave_forge)
           [urls, local_files] = cellfun ("get_forge_download", files,
                                          "uniformoutput", false);
+          if (verbose)
+            fprintf ("downloading tarball(s) from:%s\n", ...
+                     sprintf ("\n- %s", urls{:}));
+          endif
           [files, succ] = cellfun ("urlwrite", urls, local_files,
                                    "uniformoutput", false);
           succ = [succ{:}];
--- a/scripts/pkg/private/configure_make.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/pkg/private/configure_make.m	Tue Nov 15 13:15:28 2022 -0800
@@ -53,13 +53,13 @@
     endif
 
     if (ispc () && ! isunix ())
-      # replace all backslashes with forward slashes
+      ## Replace all backslashes with forward slashes
       mkoctfile_program = strrep (mkoctfile_program, '\', '/');
       octave_config_program = strrep (octave_config_program, '\', '/');
       octave_binary = strrep (octave_binary, '\', '/');
     endif
 
-    # escape spaces in file paths unless they are already escaped
+    ## Escape spaces in file paths unless they are already escaped
     mkoctfile_program = regexprep (mkoctfile_program, '([^\\]) ', '$1\\ ');
     octave_config_program = regexprep (octave_config_program, ...
                                        '([^\\]) ', '$1\\ ');
--- a/scripts/plot/appearance/__clabel__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/__clabel__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -103,12 +103,12 @@
       if (isempty (j))
         j = clen;
       endif
-      tpos = sum (c(:,i+j-1:i+j), 2) / 2;
+      tpos = sum (c(:,i+j:i+j+1), 2) / 2;
 
       if (   tpos(1) != xmin && tpos(1) != xmax
           && tpos(2) != ymin && tpos(2) != ymax)
-        trot = 180 / pi * atan2 (diff (c(2,i+j-1:i+j)) * yspacing,
-                                 diff (c(1,i+j-1:i+j)) * xspacing);
+        trot = 180 / pi * atan2 (diff (c(2,i+j:i+j+1)) * yspacing,
+                                 diff (c(1,i+j:i+j+1)) * xspacing);
         if (abs (trot) > 90)
           trot += 180;
         endif
--- a/scripts/plot/appearance/axis.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/axis.m	Tue Nov 15 13:15:28 2022 -0800
@@ -83,9 +83,16 @@
 ## @item @qcode{"manual"}
 ## Fix the current axes limits.
 ##
+## @item @qcode{"tickaligned"}
+## Fix axes to the limits of the closest ticks.
+##
 ## @item @qcode{"tight"}
 ## Fix axes to the limits of the data.
 ##
+## @item @qcode{"padded"}
+## Fix axes to the limits of the data plus margins of about 7% of the
+## data extent.
+##
 ## @item @qcode{"image"}
 ## Equivalent to @qcode{"tight"} and @qcode{"equal"}.
 ##
@@ -213,8 +220,10 @@
       ## aspect ratio
       elseif (strcmpi (opt, "image"))
         __axis__ (ca, "equal");
-        set (ca, "plotboxaspectratiomode", "auto");
-        __do_tight_option__ (ca);
+        set (ca, "plotboxaspectratiomode", "auto", ...
+                 "xlimmode", "auto", "ylimmode", "auto", ...
+                 "zlimmode", "auto", ...
+                 "xlimitmethod", "tight", "ylimitmethod", "tight");
       elseif (strcmpi (opt, "square"))
         set (ca, "dataaspectratiomode", "auto",
                  "plotboxaspectratio", [1, 1, 1]);
@@ -280,10 +289,26 @@
         ## fixes the axis limits
         set (ca, "xlimmode", "manual", "ylimmode", "manual",
                  "zlimmode", "manual");
+      elseif (strcmpi (opt, "tickaligned"))
+        ## sets the axis limits to closest ticks.
+        set (ca, "xlimmode", "auto", "ylimmode", "auto", ...
+                 "zlimmode", "auto", ...
+                 "xlimitmethod", "tickaligned", ...
+                 "ylimitmethod", "tickaligned", ...
+                 "zlimitmethod", "tickaligned");
       elseif (strcmpi (opt, "tight"))
         ## sets the axis limits to the min and max of all data.
-        __do_tight_option__ (ca);
-
+        set (ca, "xlimmode", "auto", "ylimmode", "auto", ...
+                 "zlimmode", "auto", ...
+                 "xlimitmethod", "tight", "ylimitmethod", "tight",
+                 "zlimitmethod", "tight");
+      elseif (strcmpi (opt, "padded"))
+        ## sets the axis limits to the min and max of all data plus padding.
+        set (ca, "xlimmode", "auto", "ylimmode", "auto", ...
+                 "zlimmode", "auto", ...
+                 "xlimitmethod", "padded", ...
+                 "ylimitmethod", "padded", ...
+                 "zlimitmethod", "padded");
       ## visibility
       elseif (strcmpi (opt, "on"))
         set (ca, "visible", "on");
@@ -376,87 +401,6 @@
 
 endfunction
 
-## Find the limits for axis ("tight").
-## AX should be one of "x", "y", or "z".
-function lims = __get_tight_lims__ (ca, ax)
-
-  kids = findobj (ca, "-property", [ax "data"]);
-  ## The data properties for hggroups mirror their children.
-  ## Exclude the redundant hggroup values.
-  hg_kids = findobj (kids, "type", "hggroup");
-  kids = setdiff (kids, hg_kids);
-  if (isempty (kids))
-    ## Return the current limits.
-    ## FIXME: Is this the correct thing to do?
-    lims = get (ca, [ax "lim"]);
-  else
-    data = get (kids, [ax "data"]);
-    types = get (kids, "type");
-
-    scale = get (ca, [ax "scale"]);
-    if (! iscell (data))
-      data = {data};
-    endif
-
-    ## Extend image data one pixel
-    idx = strcmp (types, "image");
-    if (any (idx) && (ax == "x" || ax == "y"))
-      imdata = data(idx);
-      px = arrayfun (@__image_pixel_size__, kids(idx), "uniformoutput", false);
-      ipx = ifelse (ax == "x", 1, 2);
-      imdata = cellfun (@(x,dx) [(min (x) - dx(ipx)), (max (x) + dx(ipx))],
-                        imdata, px, "uniformoutput", false);
-      data(idx) = imdata;
-    endif
-
-    if (strcmp (scale, "log"))
-      tmp = data;
-      data = cellfun (@(x) x(x>0), tmp, "uniformoutput", false);
-      n = cellfun ("isempty", data);
-      data(n) = cellfun (@(x) x(x<0), tmp(n), "uniformoutput", false);
-    endif
-    data = cellfun (@(x) x(isfinite (x)), data, "uniformoutput", false);
-    data = data(! cellfun ("isempty", data));
-    if (! isempty (data))
-      ## Change data from cell array of various sizes to a single column vector
-      data = cat (1, cellindexmat (data, ":"){:});
-      lims = [min(data), max(data)];
-    else
-      lims = [0, 1];
-    endif
-  endif
-
-endfunction
-
-function __do_tight_option__ (ca)
-
-  xlim = __get_tight_lims__ (ca, "x");
-  if (all (xlim == 0))
-    xlim = [-eps, +eps];
-  elseif (diff (xlim == 0))
-    xlim .*= [1-eps, 1+eps];
-  endif
-  ylim = __get_tight_lims__ (ca, "y");
-  if (all (ylim == 0))
-    ylim = [-eps, +eps];
-  elseif (diff (ylim == 0))
-    ylim .*= [1-eps, 1+eps];
-  endif
-  set (ca, "xlim", xlim, "ylim", ylim);
-  nd = __calc_dimensions__ (ca);
-  is3dview = (get (ca, "view")(2) != 90);
-  if (nd > 2 && is3dview)
-    zlim = __get_tight_lims__ (ca, "z");
-    if (all (zlim == 0))
-      zlim = [-eps, +eps];
-    elseif (diff (zlim == 0))
-      zlim .*= [1-eps, 1+eps];
-    endif
-    set (ca, "zlim", zlim);
-  endif
-
-endfunction
-
 
 %!demo
 %! clf;
@@ -618,6 +562,38 @@
 %! axis tight;
 %! title ('"tight" on loglog plot');
 
+%!demo
+%! clf;
+%! x = y = 0.5:0.5:12;
+%! subplot (3,1,1);
+%! plot (x, y, "-s");
+%! axis tickaligned
+%! title ("tickaligned");
+%! subplot (3,1,2);
+%! plot (x, y, "-s");
+%! axis padded
+%! title ("padded");
+%! subplot (3,1,3);
+%! plot (x, y, "-s");
+%! axis tight
+%! title ("tight");
+
+%!demo
+%! clf;
+%! x = y = 0.5:0.5:12;
+%! subplot (3,1,1);
+%! loglog (x, y, "-s");
+%! axis tickaligned
+%! title ("tickaligned");
+%! subplot (3,1,2);
+%! loglog (x, y, "-s");
+%! axis padded
+%! title ("padded");
+%! subplot (3,1,3);
+%! loglog (x, y, "-s");
+%! axis tight
+%! title ("tight");
+
 %!test
 %! hf = figure ("visible", "off");
 %! unwind_protect
@@ -655,6 +631,19 @@
 %!   close (hf);
 %! end_unwind_protect
 
+## Test 'axis tight' remains after addition of new data
+%!test
+%! hf = figure ("visible", "off");
+%! unwind_protect
+%!   plot (1:10)
+%!   axis tight;
+%!   assert (axis (), [1 10 1 10]);
+%!   plot (1:11)
+%!   assert (axis (), [1 11 1 11]);
+%! unwind_protect_cleanup
+%!   close (hf);
+%! end_unwind_protect
+
 ## Even on errors, axis can display a figure.
 %!error <LIMITS vector must have .* elements>
 %! hf = figure ("visible", "off");
--- a/scripts/plot/appearance/camlookat.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/camlookat.m	Tue Nov 15 13:15:28 2022 -0800
@@ -281,7 +281,7 @@
 %! end_unwind_protect
 
 ## compare to Matlab R2016a output
-%!test
+%!test <61532>
 %! hf = figure ("visible", "off");
 %! unwind_protect
 %!   [x, y, z] = peaks ();
--- a/scripts/plot/appearance/campos.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/campos.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,12 +24,12 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{P} =} campos ()
+## @deftypefn  {} {@var{p} =} campos ()
 ## @deftypefnx {} {} campos ([@var{x} @var{y} @var{z}])
 ## @deftypefnx {} {@var{mode} =} campos ("mode")
 ## @deftypefnx {} {} campos (@var{mode})
-## @deftypefnx {} {} campos (@var{ax}, @dots{})
-## Set or get the camera position.
+## @deftypefnx {} {} campos (@var{hax}, @dots{})
+## Get or set the camera position.
 ##
 ## The default camera position is determined automatically based on the scene.
 ## For example, to get the camera position:
@@ -77,7 +77,7 @@
 ## @end example
 ##
 ## By default, these commands affect the current axis; alternatively, an axis
-## can be specified by the optional argument @var{ax}.
+## can be specified by the optional argument @var{hax}.
 ##
 ## @seealso{camup, camtarget, camva}
 ## @end deftypefn
@@ -161,7 +161,7 @@
 %!   delete (hf);
 %! end_unwind_protect
 
-## test ax input by creating another axis
+## test hax input by creating another axis
 %!test
 %! hf = figure ("visible", "off");
 %! unwind_protect
--- a/scripts/plot/appearance/camroll.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/camroll.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,7 +25,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {} camroll (@var{theta})
-## @deftypefnx {} {} camroll (@var{ax}, @var{theta})
+## @deftypefnx {} {} camroll (@var{hax}, @var{theta})
 ## Roll the camera.
 ##
 ## Roll the camera clockwise by @var{theta} degrees.
@@ -60,7 +60,7 @@
 ## @end example
 ##
 ## By default, these commands affect the current axis; alternatively, an axis
-## can be specified by the optional argument @var{ax}.
+## can be specified by the optional argument @var{hax}.
 ##
 ## @seealso{camzoom, camorbit, camlookat, camup}
 ## @end deftypefn
@@ -149,7 +149,7 @@
 %!   close (hf);
 %! end_unwind_protect
 
-## test ax input by creating another axis
+## test hax input by creating another axis
 %!test
 %! hf = figure ("visible", "off");
 %! unwind_protect
--- a/scripts/plot/appearance/camtarget.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/camtarget.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,12 +24,12 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{T} =} camtarget ()
+## @deftypefn  {} {@var{t} =} camtarget ()
 ## @deftypefnx {} {} camtarget ([@var{x} @var{y} @var{z}])
 ## @deftypefnx {} {@var{mode} =} camtarget ("mode")
 ## @deftypefnx {} {} camtarget (@var{mode})
-## @deftypefnx {} {} camtarget (@var{ax}, @dots{})
-## Set or get where the camera is pointed.
+## @deftypefnx {} {} camtarget (@var{hax}, @dots{})
+## Get or set where the camera is pointed.
 ##
 ## The camera target is a point in space where the camera is pointing.
 ## Usually, it is determined automatically based on the scene:
@@ -89,13 +89,13 @@
 ## @end example
 ##
 ## By default, these commands affect the current axis; alternatively, an axis
-## can be specified by the optional argument @var{ax}.
+## can be specified by the optional argument @var{hax}.
 ##
 ## @seealso{campos, camup, camva}
 ## @end deftypefn
 
 
-function p = camtarget (varargin)
+function t = camtarget (varargin)
 
   [hax, varargin, nargin] = __plt_get_axis_arg__ ("camtarget", varargin{:});
 
@@ -111,13 +111,13 @@
 
   prop = "cameratarget";
   if (nargin == 0)
-    p = get (hax, prop);
+    t = get (hax, prop);
   elseif (nargin == 1 && isnumeric (varargin{1}) && numel (varargin{1}) == 3)
     set (hax, prop, varargin{1});
   elseif (nargin == 1 && ischar (varargin{1}))
     s = varargin{1};
     if (strcmp (s, "mode"))
-      p = get (hax, [prop "mode"]);
+      t = get (hax, [prop "mode"]);
     else
       set (hax, [prop "mode"], s);
     endif
@@ -172,7 +172,7 @@
 %!   delete (hf);
 %! end_unwind_protect
 
-## test ax input by creating another axis
+## test hax input by creating another axis
 %!test
 %! hf = figure ("visible", "off");
 %! unwind_protect
--- a/scripts/plot/appearance/camup.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/camup.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,8 +28,8 @@
 ## @deftypefnx {} {} camup ([@var{x} @var{y} @var{z}])
 ## @deftypefnx {} {@var{mode} =} camup ("mode")
 ## @deftypefnx {} {} camup (@var{mode})
-## @deftypefnx {} {} camup (@var{ax}, @dots{})
-## Set or get the camera up vector.
+## @deftypefnx {} {} camup (@var{hax}, @dots{})
+## Get or set the camera up vector.
 ##
 ## By default, the camera is oriented so that ``up'' corresponds to the
 ## positive z-axis:
@@ -85,13 +85,13 @@
 ## @end example
 ##
 ## By default, these commands affect the current axis; alternatively, an axis
-## can be specified by the optional argument @var{ax}.
+## can be specified by the optional argument @var{hax}.
 ##
 ## @seealso{campos, camtarget, camva}
 ## @end deftypefn
 
 
-function p = camup (varargin)
+function up = camup (varargin)
 
   [hax, varargin, nargin] = __plt_get_axis_arg__ ("camup", varargin{:});
 
@@ -107,13 +107,13 @@
 
   prop = "cameraupvector";
   if (nargin == 0)
-    p = get (hax, prop);
+    up = get (hax, prop);
   elseif (nargin == 1 && isnumeric (varargin{1}) && numel (varargin{1}) == 3)
     set (hax, prop, varargin{1});
   elseif (nargin == 1 && ischar (varargin{1}))
     s = varargin{1};
     if (strcmp (s, "mode"))
-      p = get (hax, [prop "mode"]);
+      up = get (hax, [prop "mode"]);
     else
       set (hax, [prop "mode"], s);
     endif
@@ -168,7 +168,7 @@
 %!   close (hf);
 %! end_unwind_protect
 
-## test ax input by creating another axis
+## test hax input by creating another axis
 %!test
 %! hf = figure ("visible", "off");
 %! unwind_protect
--- a/scripts/plot/appearance/camva.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/camva.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,8 +28,8 @@
 ## @deftypefnx {} {} camva (@var{a})
 ## @deftypefnx {} {@var{mode} =} camva ("mode")
 ## @deftypefnx {} {} camva (@var{mode})
-## @deftypefnx {} {} camva (@var{ax}, @dots{})
-## Set or get the camera viewing angle.
+## @deftypefnx {} {} camva (@var{hax}, @dots{})
+## Get or set the camera viewing angle.
 ##
 ## The camera has a viewing angle which determines how much can be seen.  By
 ## default this is:
@@ -68,13 +68,13 @@
 ## @end example
 ##
 ## By default, these commands affect the current axis; alternatively, an axis
-## can be specified by the optional argument @var{ax}.
+## can be specified by the optional argument @var{hax}.
 ##
 ## @seealso{campos, camtarget, camup}
 ## @end deftypefn
 
 
-function p = camva (varargin)
+function a = camva (varargin)
 
   [hax, varargin, nargin] = __plt_get_axis_arg__ ("camva", varargin{:});
 
@@ -90,13 +90,13 @@
 
   prop = "cameraviewangle";
   if (nargin == 0)
-    p = get (hax, prop);
+    a = get (hax, prop);
   elseif (nargin == 1 && isnumeric (varargin{1}) && isscalar (varargin{1}))
     set (hax, prop, varargin{1});
   elseif (nargin == 1 && ischar (varargin{1}))
     s = varargin{1};
     if (strcmp (s, "mode"))
-      p = get (hax, [prop "mode"]);
+      a = get (hax, [prop "mode"]);
     else
       set (hax, [prop "mode"], s);
     endif
@@ -151,7 +151,7 @@
 %!   close (hf);
 %! end_unwind_protect
 
-## test ax input by creating another axis
+## test hax input by creating another axis
 %!test
 %! hf = figure ("visible", "off");
 %! unwind_protect
--- a/scripts/plot/appearance/camzoom.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/camzoom.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,7 +25,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {} camzoom (@var{zf})
-## @deftypefnx {} {} camzoom (@var{ax}, @var{zf})
+## @deftypefnx {} {} camzoom (@var{hax}, @var{zf})
 ## Zoom the camera in or out.
 ##
 ## A value of @var{zf} larger than 1 ``zooms in'' such that the scene appears
@@ -59,7 +59,7 @@
 ## @end example
 ##
 ## By default, these commands affect the current axis; alternatively, an axis
-## can be specified by the optional argument @var{ax}.
+## can be specified by the optional argument @var{hax}.
 ##
 ## @seealso{camroll, camorbit, camlookat, camva}
 ## @end deftypefn
@@ -143,7 +143,7 @@
 %!   close (hf);
 %! end_unwind_protect
 
-## test ax input by creating another axis
+## test hax input by creating another axis
 %!test
 %! hf = figure ("visible", "off");
 %! unwind_protect
--- a/scripts/plot/appearance/clabel.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/clabel.m	Tue Nov 15 13:15:28 2022 -0800
@@ -29,7 +29,7 @@
 ## @deftypefnx {} {} clabel (@var{c}, @var{h}, "manual")
 ## @deftypefnx {} {} clabel (@var{c})
 ## @deftypefnx {} {} clabel (@dots{}, @var{prop}, @var{val}, @dots{})
-## @deftypefnx {} {@var{h} =} clabel (@dots{})
+## @deftypefnx {} {@var{hlabels} =} clabel (@dots{})
 ## Add labels to the contours of a contour plot.
 ##
 ## The contour levels are specified by the contour matrix @var{c} which is
@@ -51,7 +51,7 @@
 ## determines the spacing between labels on a contour to be specified.  The
 ## default is 144 points, or 2 inches.
 ##
-## The optional return value @var{h} is a vector of graphics handles to
+## The optional return value @var{hlabels} is a vector of graphics handles to
 ## the text objects representing each label.
 ## The @qcode{"userdata"} property of the text objects contains the numerical
 ## value of the contour label.
@@ -69,7 +69,7 @@
 ## @seealso{contour, contourf, contour3, meshc, surfc, text}
 ## @end deftypefn
 
-function h = clabel (c, varargin)
+function hlabels = clabel (c, varargin)
 
   have_hg = false;
   have_labelspacing = false;
@@ -138,7 +138,7 @@
   endif
 
   if (nargout > 0)
-    h = htmp;
+    hlabels = htmp;
   endif
 
 endfunction
--- a/scripts/plot/appearance/diffuse.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/diffuse.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} diffuse (@var{sx}, @var{sy}, @var{sz}, @var{lv})
+## @deftypefn {} {@var{d} =} diffuse (@var{sx}, @var{sy}, @var{sz}, @var{lv})
 ## Calculate the diffuse reflection strength of a surface defined by the normal
 ## vector elements @var{sx}, @var{sy}, @var{sz}.
 ##
@@ -33,7 +33,7 @@
 ## @seealso{specular, surfl}
 ## @end deftypefn
 
-function retval = diffuse (sx, sy, sz, lv)
+function d = diffuse (sx, sy, sz, lv)
 
   if (nargin != 4)
     print_usage ();
@@ -57,7 +57,7 @@
   endif
 
   ns = sqrt (sx.^2 + sy.^2 + sz.^2);
-  retval = (sx * lv(1) + sy * lv(2) + sz * lv(3)) ./ ns;
-  retval(retval < 0) = 0;
+  d = (sx * lv(1) + sy * lv(2) + sz * lv(3)) ./ ns;
+  d(d < 0) = 0;
 
 endfunction
--- a/scripts/plot/appearance/legend.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/legend.m	Tue Nov 15 13:15:28 2022 -0800
@@ -34,7 +34,7 @@
 ## @deftypefnx {} {} legend ("@var{command}")
 ## @deftypefnx {} {} legend (@var{hax}, @dots{})
 ## @deftypefnx {} {} legend (@var{hleg}, @dots{})
-## @deftypefnx {} {@var{hleg, hplt} =} legend (@dots{})
+## @deftypefnx {} {@var{hleg} =} legend (@dots{})
 ##
 ## Display a legend for the current axes using the specified strings as labels.
 ##
@@ -308,7 +308,7 @@
                       "deletefcn", {@reset_cb, hl});
 
     ## Listeners to foreign objects properties are stored for later
-    ## deletion in "delfunction"
+    ## deletion in "reset_cb"
     hax = opts.axes_handles(1);
     hf = ancestor (hax, "figure");
 
@@ -350,7 +350,7 @@
 
     addlistener (hl, "textcolor", ...
                  @(h, ~) set (findobj (h, "type", "text"), ...
-                               "color", get (hl, "textcolor")));
+                              "color", get (hl, "textcolor")));
 
     addlistener (hl, "visible", @update_visible_cb);
 
@@ -1078,14 +1078,22 @@
 
       ## Main line
       vals = get (hplt(1), lprops);
-      hicon = __go_line__ (hl, [lprops; vals]{:});
+      hicon = __go_line__ (hl, [lprops; vals]{:}, ...
+                           "pickableparts", "all", ...
+                           "buttondownfcn", ...
+                           {@execute_itemhit, hl, hplt, "icon"});
+
       addproperty ("markerxdata", hicon, "double", 0);
       addproperty ("markerydata", hicon, "double", 0);
 
       ## Additional line for the marker
       vals = get (hplt(end), mprops);
       hmarker = __go_line__ (hl, "handlevisibility", "off", ...
-                             "xdata", 0, "ydata", 0, [mprops; vals]{:});
+                             "xdata", 0, "ydata", 0, [mprops; vals]{:}, ...
+                             "pickableparts", "all", ...
+                             "buttondownfcn", ...
+                             {@execute_itemhit, hl, hplt, "icon"});
+      addproperty ("markertruesize", hmarker, "double", NaN);
       update_marker_cb (hmarker);
 
       ## Listeners
@@ -1097,7 +1105,8 @@
                    @(h, ~) set (hmarker, "xdata", get (h, "markerxdata")));
       addlistener (hicon, "visible", ...
                    @(h, ~) set (hmarker, "visible", get (h, "visible")));
-      addlistener (hmarker, "markersize", @update_marker_cb);
+      addlistener (hmarker, "markersize", {@update_marker_cb, true});
+      addlistener (hmarker, "marker", {@update_marker_cb, false});
       add_safe_listener (hl, hplt(1), "beingdeleted",
                          @(~, ~) delete ([hicon hmarker]))
       if (! strcmp (typ, "__errplot__"))
@@ -1129,7 +1138,10 @@
       vals {end-1} = mean (vals {end-1}, 1);
       vals {end} = mean (vals {end}, 1);
 
-      hicon = __go_scatter__ (hl, [all_sprops; vals]{:});
+      hicon = __go_scatter__ (hl, [all_sprops; vals]{:}, ...
+                              "pickableparts", "all", ...
+                              "buttondownfcn", ...
+                              {@execute_itemhit, hl, hplt, "icon"});
 
       ## Simple Listeners
       safe_property_link (hplt(1), hicon, sprops);
@@ -1153,7 +1165,10 @@
       ## Main patch
 
       vals = get (hplt(1), pprops);
-      hicon = __go_patch__ (hl, [pprops; vals]{:});
+      hicon = __go_patch__ (hl, [pprops; vals]{:}, ...
+                            "pickableparts", "all", ...
+                            "buttondownfcn", ...
+                            {@execute_itemhit, hl, hplt, "icon"});
 
       addproperty ("innerxdata", hicon, "any", 0);
       addproperty ("innerydata", hicon, "any", 0);
@@ -1161,7 +1176,10 @@
       ## Additional patch for the inner contour
       vals = get (hplt(end), pprops);
       htmp =  __go_patch__ (hl, "handlevisibility", "off", ...
-                            "xdata", 0, "ydata", 0, [pprops; vals]{:});
+                            "xdata", 0, "ydata", 0, [pprops; vals]{:}, ...
+                            "pickableparts", "all", ...
+                            "buttondownfcn", ...
+                            {@execute_itemhit, hl, hplt, "icon"});
 
       ## Listeners
       safe_property_link (hplt(1), hicon, pprops);
@@ -1179,13 +1197,30 @@
 
   endswitch
 
-  htxt = __go_text__ (hl, txtpval{:}, "string", str);
+  htxt = __go_text__ (hl, txtpval{:}, "string", str, ...
+                      "pickableparts", "all", ...
+                      "buttondownfcn", {@execute_itemhit, hl, hplt, "label"});
+
+  set (htxt, "buttondownfcn", {@execute_itemhit, hl, hplt, "label"});
 
   addproperty ("peer_object", htxt, "double", base_hplt);
   addproperty ("peer_object", hicon, "double", base_hplt);
 
 endfunction
 
+function execute_itemhit (h, ~, hl, hplt, region)
+
+  fcn = get (hl, "itemhitfcn");
+
+  if (! isempty (fcn))
+    evt = struct ("Peer", hplt, "Region", region, ...
+                  "SelectionType", get (gcbf (), "selectiontype"), ...
+                  "Source", hl, "EventName", "ItemHit");
+    fcn (hl, evt)
+  endif
+
+endfunction
+
 function safe_property_link (h1, h2, props)
 
   for ii = 1:numel (props)
@@ -1215,10 +1250,47 @@
 
 endfunction
 
-function update_marker_cb (h, ~)
+## Enforce maximum size of marker so it doesn't overflow legend key
+function update_marker_cb (h, ~, sz_updated = true)
+  persistent is_updating = false;
+
+  if (is_updating)
+    return;
+  endif
+
+  if (sz_updated)
+    ## Size was changed
+    sz = get (h, "markersize");
+    set (h, "markertruesize", sz);  # store true marker size
+
+    if (sz > 8)
+      is_updating = true;
 
-  if (get (h, "markersize") > 8)
-    set (h, "markersize", 8);
+      mark = get (h, "marker");
+      if (strcmp (mark, '.'))
+        set (h, "markersize", min ([sz, 24]));
+      else
+        set (h, "markersize", 8);
+      endif
+
+      is_updating = false;
+    endif
+
+  else
+    ## Marker style was changed
+    sz = get (h, "markertruesize");
+    if (sz > 8)
+      is_updating = true;
+
+      mark = get (h, "marker");
+      if (strcmp (mark, '.'))
+        set (h, "markersize", min ([sz, 24]));
+      else
+        set (h, "markersize", 8);
+      endif
+
+      is_updating = false;
+    endif
   endif
 
 endfunction
@@ -2042,6 +2114,18 @@
 %! legend ("Legend Text");
 %! title ({"Multi-line", "titles", "are *not* a", "problem"});
 
+%!demo  # bug 61814
+%! clf;
+%! data = [ [1:5]' , [5:-1:1]', 2.5*ones(5,1) ];
+%! hp = plot (data);
+%! set (hp(1), "marker", 'x', "markersize", 15);
+%! set (hp(2), "marker", 'o', "markersize", 30);
+%! set (hp(3), "marker", '.', "markersize", 30);
+%! legend ({"data1", "data2", "data3"}, "location", "north");
+%! set (hp(2), "marker", '.');
+%! set (hp(3), "marker", 'o');
+%! title ("Marker sizes do not overflow legend box");
+
 ## Test input validation
 %!test
 %! hf = figure ("visible", "off");
--- a/scripts/plot/appearance/lighting.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/lighting.m	Tue Nov 15 13:15:28 2022 -0800
@@ -94,9 +94,9 @@
 
   ## FIXME: This is the old, simple code.
   ##        Unfortunately, it also lights contour plots which is not desirable.
-  ##hp = findobj (hax, "type", "patch");
-  ##hs = findobj (hax, "type", "surface");
-  ##hlist = [hp(:); hs(:)];
+  ## hp = findobj (hax, "type", "patch");
+  ## hs = findobj (hax, "type", "surface");
+  ## hlist = [hp(:); hs(:)];
 
   if (isempty (hlist))
     return;
--- a/scripts/plot/appearance/orient.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/orient.m	Tue Nov 15 13:15:28 2022 -0800
@@ -51,7 +51,7 @@
 ## @seealso{print, saveas}
 ## @end deftypefn
 
-function retval = orient (varargin)
+function orientation = orient (varargin)
 
   cf = [];
   if (nargin > 0 && isscalar (varargin{1}) && isfigure (varargin{1}))
@@ -73,28 +73,28 @@
     set (cf, "paperunits", "inches");  # All Matlab calculations assume inches.
 
     if (nargin == 0)
-      retval = get (cf, "paperorientation");
-      if (strcmp (retval, "portrait"))
+      orientation = get (cf, "paperorientation");
+      if (strcmp (orientation, "portrait"))
         papersize = get (cf, "papersize");
         paperposition = get (cf, "paperposition");
         if (paperposition == [0.25 0.25 (papersize - 0.5)])
-          retval = "tall";
+          orientation = "tall";
         endif
       endif
     else
-      orientation = varargin{1};
-      if (strcmpi (orientation, "landscape")
-          || strcmpi (orientation, "portrait"))
-        if (! strcmpi (get (cf, "paperorientation"), orientation))
+      paporient = varargin{1};
+      if (strcmpi (paporient, "landscape")
+          || strcmpi (paporient, "portrait"))
+        if (! strcmpi (get (cf, "paperorientation"), paporient))
           ## FIXME: with the proper listeners in place there won't be a need to
           ##        set the papersize and paperposition here.
           papersize = get (cf, "papersize");
           paperposition = get (cf, "paperposition");
-          set (cf, "paperorientation", orientation,
+          set (cf, "paperorientation", paporient,
                    "papersize", papersize([2, 1]),
                    "paperposition", paperposition([2, 1, 4, 3]));
         endif
-        if (strcmpi (orientation, "portrait"))
+        if (strcmpi (paporient, "portrait"))
           ## portrait restores the default
           ## FIXME: Should use "default" here, but Octave complains
           ##        that "paperposition" is not a default property.
@@ -104,7 +104,7 @@
           papersize = get (cf, "papersize");
           set (cf, "paperposition", [0.25, 0.25, (papersize - 0.5)]);
         endif
-      elseif (strcmpi (orientation, "tall"))
+      elseif (strcmpi (paporient, "tall"))
         orient ("portrait");
         papersize = get (cf, "papersize");
         set (cf, "paperposition", [0.25, 0.25, (papersize - 0.5)]);
--- a/scripts/plot/appearance/rticks.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/rticks.m	Tue Nov 15 13:15:28 2022 -0800
@@ -48,17 +48,17 @@
 ## @seealso{thetaticks, xticks, yticks, zticks, polar, get, set}
 ## @end deftypefn
 
-function retval = rticks (varargin)
+function tickval = rticks (varargin)
 
   hax = [];
   switch (nargin)
     case 0
-      retval = get (gca (), "rtick");  # will error if no rtick exists.
+      tickval = get (gca (), "rtick");  # will error if no rtick exists.
       return;
 
     case 1
       if (isaxes (varargin{1}))
-        retval = get (varargin{1}, "rtick");
+        tickval = get (varargin{1}, "rtick");
         return;
       else
         arg = varargin{1};
@@ -95,7 +95,7 @@
     ## arg = tolower (arg);
     ## switch (arg)
     ##   case "mode"
-    ##     retval = get (hax, "rtickmode");
+    ##     tickval = get (hax, "rtickmode");
     ##
     ##   case {"auto", "manual"}
     ##     if (nargout > 0)
--- a/scripts/plot/appearance/shading.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/shading.m	Tue Nov 15 13:15:28 2022 -0800
@@ -94,9 +94,9 @@
 
   ## NOTE: This is the old, simple code.
   ##       Unfortunately, it also shades contour plots which is not desirable.
-  ##hp = findobj (hax, "type", "patch");
-  ##hs = findobj (hax, "type", "surface");
-  ##hlist = [hp(:); hs(:)];
+  ## hp = findobj (hax, "type", "patch");
+  ## hs = findobj (hax, "type", "surface");
+  ## hlist = [hp(:); hs(:)];
 
   if (isempty (hlist))
     return;
--- a/scripts/plot/appearance/specular.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/specular.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} specular (@var{sx}, @var{sy}, @var{sz}, @var{lv}, @var{vv})
-## @deftypefnx {} {} specular (@var{sx}, @var{sy}, @var{sz}, @var{lv}, @var{vv}, @var{se})
+## @deftypefn  {} {@var{refl} =} specular (@var{sx}, @var{sy}, @var{sz}, @var{lv}, @var{vv})
+## @deftypefnx {} {@var{refl} =} specular (@var{sx}, @var{sy}, @var{sz}, @var{lv}, @var{vv}, @var{se})
 ## Calculate the specular reflection strength of a surface defined by the
 ## normal vector elements @var{sx}, @var{sy}, @var{sz} using Phong's
 ## approximation.
@@ -40,7 +40,7 @@
 ## @seealso{diffuse, surfl}
 ## @end deftypefn
 
-function retval = specular (sx, sy, sz, lv, vv, se)
+function refl = specular (sx, sy, sz, lv, vv, se)
 
   if (nargin < 5)
     print_usage ();
@@ -86,13 +86,13 @@
   v_dot_n = (sx * vv(1) + sy * vv(2) + sz * vv(3)) ./ ns;
 
   ## Calculate specular reflection using Phong's approximation
-  retval = 2 * l_dot_n .* v_dot_n - dot (lv, vv);
+  refl = 2 * l_dot_n .* v_dot_n - dot (lv, vv);
 
   ## Set reflectance to zero if light is on the other side
-  retval(l_dot_n < 0) = 0;
+  refl(l_dot_n < 0) = 0;
 
   ## Allow positive values only
-  retval(retval < 0) = 0;
-  retval .^= se;
+  refl(refl < 0) = 0;
+  refl .^= se;
 
 endfunction
--- a/scripts/plot/appearance/thetaticks.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/thetaticks.m	Tue Nov 15 13:15:28 2022 -0800
@@ -48,7 +48,7 @@
 ## @seealso{rticks, xticks, yticks, zticks, polar, get, set}
 ## @end deftypefn
 
-function retval = thetaticks (varargin)
+function tickval = thetaticks (varargin)
 
   ## FIXME: Update function to work with polaraxes objects once that function
   ##        is implemented in Octave.  For compatibility with Matlab this may
@@ -57,12 +57,12 @@
   hax = [];
   switch (nargin)
     case 0
-      retval = get (gca , "ttick");  # will error if no ttick exists.
+      tickval = get (gca , "ttick");  # will error if no ttick exists.
       return;
 
     case 1
       if (isaxes (varargin{1}))
-        retval = get (varargin{1}, "ttick");
+        tickval = get (varargin{1}, "ttick");
         return;
       else
         arg = varargin{1};
@@ -99,7 +99,7 @@
     ##    arg = tolower (arg);
     ## switch (arg)
     ##   case "mode"
-    ##     retval = get (hax, "ttickmode");
+    ##     tickval = get (hax, "ttickmode");
     ##
     ##   case {"auto", "manual"}
     ##     if (nargout > 0)
--- a/scripts/plot/appearance/xlim.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/xlim.m	Tue Nov 15 13:15:28 2022 -0800
@@ -55,12 +55,12 @@
 ## @seealso{ylim, zlim, axis, set, get, gca}
 ## @end deftypefn
 
-function retval = xlim (varargin)
+function xlimits = xlim (varargin)
 
-  ret = __axis_limits__ ("xlim", varargin{:});
+  lims = __axis_limits__ ("xlim", varargin{:});
 
-  if (! isempty (ret))
-    retval = ret;
+  if (! isempty (lims))
+    xlimits = lims;
   endif
 
 endfunction
--- a/scripts/plot/appearance/xtickangle.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/xtickangle.m	Tue Nov 15 13:15:28 2022 -0800
@@ -45,22 +45,22 @@
 ## @seealso{ytickangle, ztickangle, get, set}
 ## @end deftypefn
 
-function retval = xtickangle (hax, angle)
+function angle = xtickangle (hax, angle)
 
   switch (nargin)
     case 0
-      retval = __tickangle__ (mfilename ());
+      angle = __tickangle__ (mfilename ());
 
     case 1
       if (nargout > 0)
-        retval = __tickangle__ (mfilename (), hax);
+        angle = __tickangle__ (mfilename (), hax);
       else
         __tickangle__ (mfilename (), hax);
       endif
 
     case 2
       if (nargout > 0)
-        retval = __tickangle__ (mfilename (), hax, angle);
+        angle = __tickangle__ (mfilename (), hax, angle);
       else
         __tickangle__ (mfilename (), hax, angle);
       endif
--- a/scripts/plot/appearance/xticklabels.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/xticklabels.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{tickval} =} xticklabels
+## @deftypefn  {} {@var{labels} =} xticklabels
 ## @deftypefnx {} {@var{mode} =} xticklabels ("mode")
 ## @deftypefnx {} {} xticklabels (@var{tickval})
 ## @deftypefnx {} {} xticklabels ("auto")
@@ -56,17 +56,17 @@
 ## @seealso{xticks, yticklabels, zticklabels, get, set}
 ## @end deftypefn
 
-function retval = xticklabels (varargin)
+function labels = xticklabels (varargin)
 
   hax = [];
   switch (nargin)
     case 0
-      retval = get (gca , "xticklabel");  # will error if no xticklabel exists.
+      labels = get (gca , "xticklabel");  # will error if no xticklabel exists.
       return;
 
     case 1
       if (isaxes (varargin{1}))
-        retval = get (varargin{1}, "xticklabel");
+        labels = get (varargin{1}, "xticklabel");
         return;
       else
         arg = varargin{1};
@@ -102,7 +102,7 @@
 
     endif
 
-    ## Convert any numeric elements to characters, make it a 1D cell array.
+    ## Convert any numeric elements to characters, make it a 1-D cell array.
     arg = cellfun (@num2str, arg, "UniformOutput", false)(:);
 
     ## Pad with blank cell entries if needed.
@@ -117,7 +117,7 @@
     arg = tolower (arg);
     switch (arg)
       case "mode"
-        retval = get (hax, "xticklabelmode");
+        labels = get (hax, "xticklabelmode");
 
       case {"auto", "manual"}
         if (nargout > 0)
--- a/scripts/plot/appearance/xticks.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/xticks.m	Tue Nov 15 13:15:28 2022 -0800
@@ -53,17 +53,17 @@
 ## @seealso{xticklabels, yticks, zticks, rticks, thetaticks, get, set}
 ## @end deftypefn
 
-function retval = xticks (varargin)
+function tickval = xticks (varargin)
 
   hax = [];
   switch (nargin)
     case 0
-      retval = get (gca, "xtick");  # will error if no xtick exists.
+      tickval = get (gca, "xtick");  # will error if no xtick exists.
       return;
 
     case 1
       if (isaxes (varargin{1}))
-        retval = get (varargin{1}, "xtick");
+        tickval = get (varargin{1}, "xtick");
         return;
       else
         arg = varargin{1};
@@ -97,7 +97,7 @@
     arg = tolower (arg);
     switch (arg)
       case "mode"
-        retval = get (hax, "xtickmode");
+        tickval = get (hax, "xtickmode");
 
       case {"auto", "manual"}
         if (nargout > 0)
--- a/scripts/plot/appearance/ylim.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/ylim.m	Tue Nov 15 13:15:28 2022 -0800
@@ -55,12 +55,12 @@
 ## @seealso{xlim, zlim, axis, set, get, gca}
 ## @end deftypefn
 
-function retval = ylim (varargin)
+function ylimits = ylim (varargin)
 
-  ret = __axis_limits__ ("ylim", varargin{:});
+  lims = __axis_limits__ ("ylim", varargin{:});
 
-  if (! isempty (ret))
-    retval = ret;
+  if (! isempty (lims))
+    ylimits = lims;
   endif
 
 endfunction
--- a/scripts/plot/appearance/ytickangle.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/ytickangle.m	Tue Nov 15 13:15:28 2022 -0800
@@ -45,22 +45,22 @@
 ## @seealso{xtickangle, ztickangle, get, set}
 ## @end deftypefn
 
-function retval = ytickangle (hax, angle)
+function angle = ytickangle (hax, angle)
 
   switch (nargin)
     case 0
-      retval = __tickangle__ (mfilename ());
+      angle = __tickangle__ (mfilename ());
 
     case 1
       if (nargout > 0)
-        retval = __tickangle__ (mfilename (), hax);
+        angle = __tickangle__ (mfilename (), hax);
       else
         __tickangle__ (mfilename (), hax);
       endif
 
     case 2
       if (nargout > 0)
-        retval = __tickangle__ (mfilename (), hax, angle);
+        angle = __tickangle__ (mfilename (), hax, angle);
       else
         __tickangle__ (mfilename (), hax, angle);
       endif
--- a/scripts/plot/appearance/yticklabels.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/yticklabels.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{tickval} =} yticklabels
+## @deftypefn  {} {@var{labels} =} yticklabels
 ## @deftypefnx {} {@var{mode} =} yticklabels ("mode")
 ## @deftypefnx {} {} yticklabels (@var{tickval})
 ## @deftypefnx {} {} yticklabels ("auto")
@@ -56,17 +56,17 @@
 ## @seealso{yticks, xticklabels, zticklabels, get, set}
 ## @end deftypefn
 
-function retval = yticklabels (varargin)
+function labels = yticklabels (varargin)
 
   hax = [];
   switch (nargin)
     case 0
-      retval = get (gca , "yticklabel"); # will error if no yticklabel exists.
+      labels = get (gca , "yticklabel"); # will error if no yticklabel exists.
       return;
 
     case 1
       if (isaxes (varargin{1}))
-        retval = get (varargin{1}, "yticklabel");
+        labels = get (varargin{1}, "yticklabel");
         return;
       else
         arg = varargin{1};
@@ -102,7 +102,7 @@
 
     endif
 
-    ## Convert any numeric elements to characters, make it a 1D cell array.
+    ## Convert any numeric elements to characters, make it a 1-D cell array.
     arg = cellfun (@num2str, arg, "UniformOutput", false)(:);
 
     ## Pad with blank cell entries if needed.
@@ -117,7 +117,7 @@
     arg = tolower (arg);
     switch (arg)
       case "mode"
-        retval = get (hax, "yticklabelmode");
+        labels = get (hax, "yticklabelmode");
 
       case {"auto", "manual"}
         if (nargout > 0)
--- a/scripts/plot/appearance/yticks.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/yticks.m	Tue Nov 15 13:15:28 2022 -0800
@@ -53,17 +53,17 @@
 ## @seealso{yticklabels, xticks, zticks, rticks, thetaticks, get, set}
 ## @end deftypefn
 
-function retval = yticks (varargin)
+function tickval = yticks (varargin)
 
   hax = [];
   switch (nargin)
     case 0
-      retval = get (gca , "ytick");  # will error if no ytick exists.
+      tickval = get (gca , "ytick");  # will error if no ytick exists.
       return;
 
     case 1
       if (isaxes (varargin{1}))
-        retval = get (varargin{1}, "ytick");
+        tickval = get (varargin{1}, "ytick");
         return;
       else
         arg = varargin{1};
@@ -99,7 +99,7 @@
     arg = tolower (arg);
     switch (arg)
       case "mode"
-        retval = get (hax, "ytickmode");
+        tickval = get (hax, "ytickmode");
 
       case {"auto", "manual"}
         if (nargout > 0)
--- a/scripts/plot/appearance/zlim.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/zlim.m	Tue Nov 15 13:15:28 2022 -0800
@@ -55,12 +55,12 @@
 ## @seealso{xlim, ylim, axis, set, get, gca}
 ## @end deftypefn
 
-function retval = zlim (varargin)
+function zlimits = zlim (varargin)
 
-  ret = __axis_limits__ ("zlim", varargin{:});
+  lims = __axis_limits__ ("zlim", varargin{:});
 
-  if (! isempty (ret))
-    retval = ret;
+  if (! isempty (lims))
+    zlimits = lims;
   endif
 
 endfunction
--- a/scripts/plot/appearance/ztickangle.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/ztickangle.m	Tue Nov 15 13:15:28 2022 -0800
@@ -45,22 +45,22 @@
 ## @seealso{xtickangle, ytickangle, get, set}
 ## @end deftypefn
 
-function retval = ztickangle (hax, angle)
+function angle = ztickangle (hax, angle)
 
   switch (nargin)
     case 0
-      retval = __tickangle__ (mfilename ());
+      angle = __tickangle__ (mfilename ());
 
     case 1
       if (nargout > 0)
-        retval = __tickangle__ (mfilename (), hax);
+        angle = __tickangle__ (mfilename (), hax);
       else
         __tickangle__ (mfilename (), hax);
       endif
 
     case 2
       if (nargout > 0)
-        retval = __tickangle__ (mfilename (), hax, angle);
+        angle = __tickangle__ (mfilename (), hax, angle);
       else
         __tickangle__ (mfilename (), hax, angle);
       endif
--- a/scripts/plot/appearance/zticklabels.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/zticklabels.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{tickval} =} zticklabels
+## @deftypefn  {} {@var{labels} =} zticklabels
 ## @deftypefnx {} {@var{mode} =} zticklabels ("mode")
 ## @deftypefnx {} {} zticklabels (@var{tickval})
 ## @deftypefnx {} {} zticklabels ("auto")
@@ -56,17 +56,17 @@
 ## @seealso{zticks, xticklabels, zticklabels, get, set}
 ## @end deftypefn
 
-function retval = zticklabels (varargin)
+function labels = zticklabels (varargin)
 
   hax = [];
   switch (nargin)
     case 0
-      retval = get (gca , "zticklabel"); # will error if no zticklabel exists.
+      labels = get (gca , "zticklabel"); # will error if no zticklabel exists.
       return;
 
     case 1
       if (isaxes (varargin{1}))
-        retval = get (varargin{1}, "zticklabel");
+        labels = get (varargin{1}, "zticklabel");
         return;
       else
         arg = varargin{1};
@@ -102,7 +102,7 @@
 
     endif
 
-    ## Convert any numeric elements to characters, make it a 1D cell array.
+    ## Convert any numeric elements to characters, make it a 1-D cell array.
     arg = cellfun (@num2str, arg, "UniformOutput", false)(:);
 
     ## Pad with blank cell entries if needed.
@@ -117,7 +117,7 @@
     arg = tolower (arg);
     switch (arg)
       case "mode"
-        retval = get (hax, "zticklabelmode");
+        labels = get (hax, "zticklabelmode");
 
       case {"auto", "manual"}
         if (nargout > 0)
--- a/scripts/plot/appearance/zticks.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/appearance/zticks.m	Tue Nov 15 13:15:28 2022 -0800
@@ -53,17 +53,17 @@
 ## @seealso{zticklabels, xticks, yticks, rticks, thetaticks, get, set}
 ## @end deftypefn
 
-function retval = zticks (varargin)
+function tickval = zticks (varargin)
 
   hax = [];
   switch (nargin)
     case 0
-      retval = get (gca , "ztick");  # will error if no ztick exists.
+      tickval = get (gca , "ztick");  # will error if no ztick exists.
       return;
 
     case 1
       if (isaxes (varargin{1}))
-        retval = get (varargin{1}, "ztick");
+        tickval = get (varargin{1}, "ztick");
         return;
       else
         arg = varargin{1};
@@ -97,7 +97,7 @@
     arg = tolower (arg);
     switch (arg)
       case "mode"
-        retval = get (hax, "ztickmode");
+        tickval = get (hax, "ztickmode");
 
       case {"auto", "manual"}
         if (nargout > 0)
--- a/scripts/plot/draw/colorbar.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/colorbar.m	Tue Nov 15 13:15:28 2022 -0800
@@ -294,7 +294,7 @@
       addproperty ("tickdirection", hcb, "AxesTickdir", "in");
       ## FIXME: Matlab uses just a scalar for ticklength, but axes already
       ##        has a 2-element ticklength property which cannot be overridden.
-      ##addproperty ("ticklength", hcb, "double", 0.01);
+      ## addproperty ("ticklength", hcb, "double", 0.01);
 
       ## Add a pointer from colorbar directly to axes
       addproperty ("__axes_handle__", hcb, "handle", hax);
--- a/scripts/plot/draw/cylinder.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/cylinder.m	Tue Nov 15 13:15:28 2022 -0800
@@ -57,7 +57,7 @@
 ## @seealso{ellipsoid, rectangle, sphere}
 ## @end deftypefn
 
-function [xx, yy, zz] = cylinder (varargin)
+function [x, y, z] = cylinder (varargin)
 
   [hax, args, nargs] = __plt_get_axis_arg__ ("cylinder", varargin{:});
 
@@ -74,21 +74,24 @@
     n = args{2};
   endif
 
-  if (length (r) < 2)
-    error ("cylinder: length (R) must be larger than 2");
+  if (! isvector (r))
+    error ("cylinder: R must be a scalar or vector");
+  endif
+  if (isscalar (r))
+    r .*= [1 1];  # expand single radius specification to required 2-term form
   endif
 
   phi = linspace (0, 2*pi, n+1);
   idx = 1:length (r);
   [phi, idx] = meshgrid (phi, idx);
-  z = (idx - 1) / (length (r) - 1);
+  zz = (idx - 1) / (length (r) - 1);
   r = r(idx);
-  [x, y] = pol2cart (phi, r);
+  [xx, yy] = pol2cart (phi, r);
 
   if (nargout > 0)
-    xx = x;
-    yy = y;
-    zz = z;
+    x = xx;
+    y = yy;
+    z = zz;
   else
     oldfig = [];
     if (! isempty (hax))
@@ -96,7 +99,7 @@
     endif
     unwind_protect
       hax = newplot (hax);
-      surf (x, y, z);
+      surf (xx, yy, zz);
     unwind_protect_cleanup
       if (! isempty (oldfig))
         set (0, "currentfigure", oldfig);
@@ -113,3 +116,8 @@
 %! [x, y, z] = cylinder (10:-1:0, 50);
 %! surf (x, y, z);
 %! title ("cylinder() with linearly shrinking radius produces a cone");
+
+## Test input validation
+%!error <Invalid call> cylinder (1,2,3)
+%!error <R must be a scalar> cylinder ([])
+%!error <R must be a scalar or vector> cylinder (ones (2,2))
--- a/scripts/plot/draw/ellipsoid.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/ellipsoid.m	Tue Nov 15 13:15:28 2022 -0800
@@ -64,20 +64,24 @@
     n = 20;
   else
     n = varargin{7};
+    if (! (isreal (n) && isscalar (n) && n > 0))
+      error ("ellipsoid: N must be a real scalar > 0");
+    endif
+    n = floor (n);
   endif
 
   theta = linspace (0, 2 * pi, n + 1);
   phi = linspace (-pi / 2, pi / 2, n + 1);
   [theta, phi] = meshgrid (theta, phi);
 
-  x = xr .* cos (phi) .* cos (theta) + xc;
-  y = yr .* cos (phi) .* sin (theta) + yc;
-  z = zr .* sin (phi) + zc;
+  xx = xr .* cos (phi) .* cos (theta) + xc;
+  yy = yr .* cos (phi) .* sin (theta) + yc;
+  zz = zr .* sin (phi) + zc;
 
   if (nargout > 0)
-    xx = x;
-    yy = y;
-    zz = z;
+    x = xx;
+    y = yy;
+    z = zz;
   else
     oldfig = [];
     if (! isempty (hax))
@@ -86,7 +90,7 @@
     unwind_protect
       hax = newplot (hax);
 
-      surf (x, y, z);
+      surf (xx, yy, zz);
     unwind_protect_cleanup
       if (! isempty (oldfig))
         set (0, "currentfigure", oldfig);
@@ -101,3 +105,10 @@
 %! clf;
 %! ellipsoid (0, 0, 1, 2, 3, 4, 20);
 %! title ("ellipsoid()");
+
+## Test input validation
+%!error <Invalid call> ellipsoid (1,2,3,4,5)
+%!error <Invalid call> ellipsoid (1,2,3,4,5,6,7,8)
+%!error <N must be a real scalar> ellipsoid (1,2,3,4,5,6, 2i)
+%!error <N must be a real scalar> ellipsoid (1,2,3,4,5,6, ones (2,2))
+%!error <N must be a real scalar . 0> ellipsoid (1,2,3,4,5,6, -1)
--- a/scripts/plot/draw/fill.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/fill.m	Tue Nov 15 13:15:28 2022 -0800
@@ -141,12 +141,9 @@
         ## For Matlab compatibility, return 1 patch object for each column
         for j = 1 : columns (x)
           if (one_color)
-            [htmp, err] = __patch__ (hax, x(:,j), y(:,j), cdata, opts{:});
+            htmp = __patch__ (hax, x(:,j), y(:,j), cdata, opts{:});
           else
-            [htmp, err] = __patch__ (hax, x(:,j), y(:,j), cdata(:,j), opts{:});
-          endif
-          if (err)
-            print_usage ();
+            htmp = __patch__ (hax, x(:,j), y(:,j), cdata(:,j), opts{:});
           endif
           hlist(end+1, 1) = htmp;
         endfor
--- a/scripts/plot/draw/fill3.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/fill3.m	Tue Nov 15 13:15:28 2022 -0800
@@ -154,14 +154,9 @@
         ## For Matlab compatibility, return 1 patch object for each column
         for j = 1 : columns (x)
           if (one_color)
-            [htmp, err] = __patch__ (hax, x(:,j), y(:,j), z(:,j), ...
-                                     cdata, opts{:});
+            htmp = __patch__ (hax, x(:,j), y(:,j), z(:,j), cdata, opts{:});
           else
-            [htmp, err] = __patch__ (hax, x(:,j), y(:,j), z(:,j), ...
-                                     cdata(:,j), opts{:});
-          endif
-          if (err)
-            print_usage ();
+            htmp = __patch__ (hax, x(:,j), y(:,j), z(:,j), cdata(:,j), opts{:});
           endif
           hlist(end+1, 1) = htmp;
         endfor
--- a/scripts/plot/draw/fplot.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/fplot.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,17 +24,17 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fplot (@var{fn})
-## @deftypefnx {} {} fplot (@var{fn}, @var{limits})
+## @deftypefn  {} {} fplot (@var{fcn})
+## @deftypefnx {} {} fplot (@var{fcn}, @var{limits})
 ## @deftypefnx {} {} fplot (@dots{}, @var{tol})
 ## @deftypefnx {} {} fplot (@dots{}, @var{n})
 ## @deftypefnx {} {} fplot (@dots{}, @var{fmt})
 ## @deftypefnx {} {} fplot (@dots{}, @var{property}, @var{value}, @dots{})
 ## @deftypefnx {} {} fplot (@var{hax}, @dots{})
 ## @deftypefnx {} {[@var{x}, @var{y}] =} fplot (@dots{})
-## Plot a function @var{fn} within the range defined by @var{limits}.
+## Plot a function @var{fcn} within the range defined by @var{limits}.
 ##
-## @var{fn} is a function handle, inline function, or string containing the
+## @var{fcn} is a function handle, inline function, or string containing the
 ## name of the function to evaluate.
 ##
 ## The limits of the plot are of the form @w{@code{[@var{xlo}, @var{xhi}]}} or
@@ -99,19 +99,23 @@
     print_usage ();
   endif
 
-  fn = varargin{1};
-  if (isa (fn, "inline"))
-    fn = vectorize (inline (fn));
-    nam = formula (fn);
-  elseif (is_function_handle (fn))
-    nam = func2str (fn);
-  elseif (all (isalnum (fn)))
-    nam = fn;
-  elseif (ischar (fn))
-    fn = vectorize (inline (fn));
-    nam = formula (fn);
+  fcn = varargin{1};
+  if (isa (fcn, "inline"))
+    ## Don't warn about intentional use of inline functions (Bug #62682)
+    warning ("off", "Octave:legacy-function", "local");
+    fcn = vectorize (inline (fcn));
+    nam = formula (fcn);
+  elseif (is_function_handle (fcn))
+    nam = func2str (fcn);
+  elseif (all (isalnum (fcn)))
+    nam = fcn;
+  elseif (ischar (fcn))
+    ## Don't warn about intentional use of inline functions (Bug #62682)
+    warning ("off", "Octave:legacy-function", "local");
+    fcn = vectorize (inline (fcn));
+    nam = formula (fcn);
   else
-    error ("fplot: FN must be a function handle, inline function, or string");
+    error ("fplot: FCN must be a function handle, inline function, or string");
   endif
 
   if (nargin > 1 && isnumeric (varargin{2}))
@@ -163,21 +167,21 @@
   endif
 
   try
-    y0 = feval (fn, x0);
+    y0 = feval (fcn, x0);
     if (isscalar (y0))
-      warning ("fplot: FN is not a vectorized function which reduces performance");
-      fn = @(x) arrayfun (fn, x);  # Create a new fn that accepts vectors
-      y0 = feval (fn, x0);
+      warning ("fplot: FCN is not a vectorized function which reduces performance");
+      fcn = @(x) arrayfun (fcn, x);  # Create a new fcn that accepts vectors
+      y0 = feval (fcn, x0);
     endif
   catch
     ## feval failed, maybe it is because the function is not vectorized?
-    fn = @(x) arrayfun (fn, x);  # Create a new fn that accepts vectors
-    y0 = feval (fn, x0);
-    warning ("fplot: FN is not a vectorized function which reduces performance");
+    fcn = @(x) arrayfun (fcn, x);  # Create a new fcn that accepts vectors
+    y0 = feval (fcn, x0);
+    warning ("fplot: FCN is not a vectorized function which reduces performance");
   end_try_catch
 
   x = linspace (limits(1), limits(2), n)';
-  y = feval (fn, x);
+  y = feval (fcn, x);
 
   if (rows (x0) == rows (y0))
     fcn_transpose = false;
@@ -186,7 +190,7 @@
     y0 = y0.';
     y = y.';
   else
-    error ("fplot: invalid function FN (# of outputs not equal to inputs)");
+    error ("fplot: invalid function FCN (# of outputs not equal to inputs)");
   endif
 
   err0 = Inf;
@@ -213,7 +217,7 @@
     err0 = err;
     n = 2 * (n - 1) + 1;
     x = linspace (limits(1), limits(2), n)';
-    y = feval (fn, x);
+    y = feval (fcn, x);
     if (fcn_transpose)
       y = y.';
     endif
@@ -274,16 +278,16 @@
 
 %!test
 %! ## Function requiring transpose
-%! fn = @(x) 2 * x(:).';
-%! [x, y] = fplot (fn, [-1, 1]);
+%! fcn = @(x) 2 * x(:).';
+%! [x, y] = fplot (fcn, [-1, 1]);
 %! assert (columns (y) == 1);
 %! assert (rows (x) == rows (y));
 %! assert (y, 2*x);
 
 %!test
 %! ## Constant value function
-%! fn = @(x) 0;
-%! [x, y] = fplot (fn, [-1, 1]);
+%! fcn = @(x) 0;
+%! [x, y] = fplot (fcn, [-1, 1]);
 %! assert (columns (y) == 1);
 %! assert (rows (x) == rows (y));
 %! assert (y, repmat ([0], size (x)));
@@ -313,15 +317,15 @@
 ## Test input validation
 %!error <Invalid call> fplot ()
 %!error <Invalid call> fplot (1,2,3,4,5,6)
-%!error <FN must be a function handle> fplot (1, [0 1])
+%!error <FCN must be a function handle> fplot (1, [0 1])
 %!error <LIMITS must be a real vector> fplot (@cos, [i, 2*i])
 %!error <LIMITS must be a real vector with 2 or 4> fplot (@cos, [1])
 %!error <LIMITS must be a real vector with 2 or 4> fplot (@cos, [1 2 3])
 %!error <bad input in position 2> fplot (@cos, "linewidth")
 %!error <bad input in position 3> fplot (@cos, [-1,1], {1})
-%!warning <FN is not a vectorized function>
-%! fn = @(x) 0;
-%! [x,y] = fplot (fn, [-1,1]);
-%!error <invalid function FN>
-%! fn = @(x) [x;x];
-%! fplot (fn, [-1,1]);
+%!warning <FCN is not a vectorized function>
+%! fcn = @(x) 0;
+%! [x,y] = fplot (fcn, [-1,1]);
+%!error <invalid function FCN>
+%! fcn = @(x) [x;x];
+%! fplot (fcn, [-1,1]);
--- a/scripts/plot/draw/isocolors.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/isocolors.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,8 +28,8 @@
 ## @deftypefnx {} {@var{cdat} =} isocolors (@var{x}, @var{y}, @var{z}, @var{c}, @var{v})
 ## @deftypefnx {} {@var{cdat} =} isocolors (@var{x}, @var{y}, @var{z}, @var{r}, @var{g}, @var{b}, @var{v})
 ## @deftypefnx {} {@var{cdat} =} isocolors (@var{r}, @var{g}, @var{b}, @var{v})
-## @deftypefnx {} {@var{cdat} =} isocolors (@dots{}, @var{p})
-## @deftypefnx {} {} isocolors (@dots{})
+## @deftypefnx {} {@var{cdat} =} isocolors (@dots{}, @var{hp})
+## @deftypefnx {} {} isocolors (@dots{}, @var{hp})
 ##
 ## Compute isosurface colors.
 ##
@@ -50,10 +50,10 @@
 ## @var{y}, @var{z} are not given then @code{meshgrid} computed values are
 ## used.
 ##
-## Optionally, a patch handle @var{p} can be given as the last input argument
+## Optionally, a patch handle @var{hp} can be given as the last input argument
 ## to all function call variations and the vertex data will be extracted
 ## from the isosurface patch object.  Finally, if no output argument is given
-## then the colors of the patch given by the patch handle @var{p} are changed.
+## then the colors of the patch given by the patch handle @var{hp} are changed.
 ##
 ## @seealso{isosurface, isonormals}
 ## @end deftypefn
@@ -97,11 +97,11 @@
   endswitch
 
   if (isnumeric (vp) && columns (vp) == 3)
-    pa = [];
+    hp = [];
     v = vp;
   elseif (isgraphics (vp, "patch"))
-    pa = vp;
-    v = get (pa, "Vertices");
+    hp = vp;
+    v = get (hp, "Vertices");
   else
     error ("isocolors: last argument must be a vertex list or patch handle");
   endif
@@ -116,8 +116,8 @@
   endif
 
   if (nargout == 0)
-    if (! isempty (pa))
-      set (pa, "FaceVertexCData", new_colors);
+    if (! isempty (hp))
+      set (hp, "FaceVertexCData", new_colors);
     endif
   else
     cdat = new_colors;
--- a/scripts/plot/draw/isonormals.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/isonormals.m	Tue Nov 15 13:15:28 2022 -0800
@@ -97,11 +97,11 @@
   endswitch
 
   if (isnumeric (vp) && columns (vp) == 3)
-    pa = [];
+    hp = [];
     v = vp;
   elseif (isgraphics (vp, "patch"))
-    pa = vp;
-    v = get (pa, "Vertices");
+    hp = vp;
+    v = get (hp, "Vertices");
   else
     error ("isonormals: input must be a list of vertices or a patch handle");
   endif
@@ -113,8 +113,8 @@
   endif
 
   if (nargout == 0)
-    if (! isempty (pa))
-      set (pa, "VertexNormals", normals);
+    if (! isempty (hp))
+      set (hp, "VertexNormals", normals);
     endif
   else
     vn = normals;
--- a/scripts/plot/draw/meshc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/meshc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -78,7 +78,7 @@
     hax = newplot (hax);
 
     ## FIXME: gnuplot does not support a filled surface and a
-    ##        non-filled contour.  3D filled patches are also not supported.
+    ##        non-filled contour.  3-D filled patches are also not supported.
     ##        Thus, the facecolor will be transparent for the gnuplot backend.
     mesh_props = {"facecolor", "w", "edgecolor", "flat", ...
                   "facelighting", "none", "edgelighting", "flat"};
--- a/scripts/plot/draw/patch.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/patch.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,7 +28,7 @@
 ## @deftypefnx {} {} patch (@var{x}, @var{y}, @var{c})
 ## @deftypefnx {} {} patch (@var{x}, @var{y}, @var{z}, @var{c})
 ## @deftypefnx {} {} patch ("Faces", @var{faces}, "Vertices", @var{verts}, @dots{})
-## @deftypefnx {} {} patch (@dots{}, @var{prop}, @var{val}, @dots{})
+## @deftypefnx {} {} patch (@dots{}, "@var{prop}", @var{val}, @dots{})
 ## @deftypefnx {} {} patch (@dots{}, @var{propstruct}, @dots{})
 ## @deftypefnx {} {} patch (@var{hax}, @dots{})
 ## @deftypefnx {} {@var{h} =} patch (@dots{})
@@ -82,17 +82,11 @@
 
   [hax, varargin] = __plt_get_axis_arg__ ("patch", varargin{:});
 
-  if (isempty (hax))
-    hax = gca ();
-  else
+  if (! isempty (hax))
     hax = hax(1);
-  endif
+  endif 
 
-  [htmp, failed] = __patch__ (hax, varargin{:});
-
-  if (failed)
-    print_usage ();
-  endif
+  htmp = __patch__ (hax, varargin{:});
 
   if (nargout > 0)
     h = htmp;
@@ -308,3 +302,9 @@
 %! unwind_protect_cleanup
 %!   close (hf);
 %! end_unwind_protect
+
+## Test input validation
+%!error <invalid color specification C> patch (1, 1, 'x')
+%!error <invalid TrueColor data C> patch (1, 1, rand (1,2,3))
+%!error <size of X, Y, and C must be equal> patch (1, 1, [1, 2])
+%!error <invalid color specification C> patch (1, 1, {1})
--- a/scripts/plot/draw/plotyy.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/plotyy.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,7 +25,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {} plotyy (@var{x1}, @var{y1}, @var{x2}, @var{y2})
-## @deftypefnx {} {} plotyy (@dots{}, @var{fun})
+## @deftypefnx {} {} plotyy (@dots{}, @var{fcn})
 ## @deftypefnx {} {} plotyy (@dots{}, @var{fun1}, @var{fun2})
 ## @deftypefnx {} {} plotyy (@var{hax}, @dots{})
 ## @deftypefnx {} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{})
@@ -36,8 +36,8 @@
 ##
 ## By default the arguments are evaluated with
 ## @code{feval (@@plot, @var{x}, @var{y})}.  However the type of plot can be
-## modified with the @var{fun} argument, in which case the plots are
-## generated by @code{feval (@var{fun}, @var{x}, @var{y})}.  @var{fun} can be
+## modified with the @var{fcn} argument, in which case the plots are
+## generated by @code{feval (@var{fcn}, @var{x}, @var{y})}.  @var{fcn} can be
 ## a function handle, an inline function, or a string of a function name.
 ##
 ## The function to use for each of the plots can be independently defined
--- a/scripts/plot/draw/private/__bar__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/private/__bar__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,16 +24,16 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __bar__ (@var{vertical}, @var{func}, @dots{})
+## @deftypefn {} {} __bar__ (@var{vertical}, @var{fcn}, @dots{})
 ## Undocumented internal function.
 ## @end deftypefn
 
-function varargout = __bar__ (func, vertical, varargin)
+function varargout = __bar__ (fcn, vertical, varargin)
 
-  [hax, varargin, nargin] = __plt_get_axis_arg__ (func, varargin{:});
+  [hax, varargin, nargin] = __plt_get_axis_arg__ (fcn, varargin{:});
 
   if (! isnumeric (varargin{1}))
-    error ("%s: Y must be numeric", func);
+    error ("%s: Y must be numeric", fcn);
   endif
 
   width = 0.8;
@@ -63,9 +63,9 @@
       idx = 2;
     else
       if (! isvector (x))
-        error ("%s: X must be a vector", func);
+        error ("%s: X must be a vector", fcn);
       elseif (numel (unique (x)) != numel (x))
-        error ("%s: X vector values must be unique", func);
+        error ("%s: X vector values must be unique", fcn);
       endif
       idx = 3;
     endif
@@ -99,7 +99,7 @@
     else
       if ((ischar (varargin{idx}) || iscellstr (varargin{idx}))
           && ! have_line_spec)
-        [linespec, valid] = __pltopt__ (func, varargin{idx}, false);
+        [linespec, valid] = __pltopt__ (fcn, varargin{idx}, false);
         if (valid)
           have_line_spec = true;
           ## FIXME: strange parse error requires semicolon to be spaced
@@ -133,7 +133,7 @@
     y = y.';
   endif
   if (ngrp != rows (y))
-    error ("%s: length of X and Y must be equal", func);
+    error ("%s: length of X and Y must be equal", fcn);
   endif
 
   nbars = columns (y);
--- a/scripts/plot/draw/private/__ezplot__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/private/__ezplot__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {[@var{h}, @var{needusage}] =} __ezplot__ (@var{pltfunc}, @var{varargin})
+## @deftypefn {} {[@var{h}, @var{needusage}] =} __ezplot__ (@var{pltfcn}, @var{varargin})
 ## Undocumented internal function.
 ## @end deftypefn
 
@@ -34,11 +34,11 @@
 ##           called was called correctly.  The actual plotting occurs near
 ##           the end in an unwind_protect block.
 
-function [h, needusage] = __ezplot__ (pltfunc, varargin)
+function [h, needusage] = __ezplot__ (pltfcn, varargin)
 
-  ezfunc = ["ez" pltfunc];
+  ezfcn = ["ez" pltfcn];
 
-  [hax, varargin, nargin] = __plt_get_axis_arg__ (ezfunc, varargin{:});
+  [hax, varargin, nargin] = __plt_get_axis_arg__ (ezfcn, varargin{:});
 
   ## Define outputs early in case of shorting out of function with return;
   h = [];
@@ -48,14 +48,14 @@
     return;
   endif
 
-  iscontour = strncmp (pltfunc, "contour", 7);
+  iscontour = strncmp (pltfcn, "contour", 7);
 
   ## Defaults for ezplot
   isplot  = true;
   isplot3 = false;
   ispolar = false;
   nargs = 1;
-  switch (pltfunc)
+  switch (pltfcn)
     case "plot"
       ## defaults already set
 
@@ -75,24 +75,26 @@
   endswitch
 
   parametric = false;
-  fun = varargin{1};
-  if (ischar (fun))
-    if (exist (fun, "file") || exist (fun, "builtin"))
-      fun = str2func (fun);            # convert to function handle
+  fcn = varargin{1};
+  ## Don't warn about intentional use of inline functions (Bug #62682)
+  warning ("off", "Octave:legacy-function", "local");
+  if (ischar (fcn))
+    if (exist (fcn, "file") || exist (fcn, "builtin"))
+      fcn = str2func (fcn);            # convert to function handle
     else
-      fun = vectorize (inline (fun));  # convert to inline function
+      fcn = vectorize (inline (fcn));  # convert to inline function
     endif
   endif
 
-  if (isa (fun, "inline"))
-    argids = argnames (fun);
+  if (isa (fcn, "inline"))
+    argids = argnames (fcn);
     if (isplot && length (argids) == 2)
       nargs = 2;
     elseif (numel (argids) != nargs)
-      error ("%s: expecting a function of %d arguments", ezfunc, nargs);
+      error ("%s: expecting a function of %d arguments", ezfcn, nargs);
     endif
-    fun = vectorize (fun);
-    fstr = formula (fun);
+    fcn = vectorize (fcn);
+    fstr = formula (fcn);
     if (isplot)
       xarg = argids{1};
       if (nargs == 2)
@@ -110,8 +112,8 @@
       xarg = argids{1};
       yarg = argids{2};
     endif
-  elseif (is_function_handle (fun))
-    fstr = func2str (fun);
+  elseif (is_function_handle (fcn))
+    fstr = func2str (fcn);
     idx = index (fstr, ')');
     if (idx != 0)
       args = regexp (fstr(3:(idx-1)), '\w+', 'match');
@@ -119,7 +121,7 @@
     else
       args = {"x"};
       try
-        if (builtin ("nargin", fun) == 2)
+        if (builtin ("nargin", fcn) == 2)
           args{2} = "y";
         endif
       end_try_catch
@@ -127,7 +129,7 @@
     if (isplot && length (args) == 2)
       nargs = 2;
     elseif (numel (args) != nargs)
-      error ("%s: expecting a function of %d arguments", ezfunc, nargs);
+      error ("%s: expecting a function of %d arguments", ezfcn, nargs);
     endif
     if (isplot)
       xarg = args{1};
@@ -147,11 +149,11 @@
       yarg = args{2};
     endif
   else
-    error ("%s: F must be a string or function handle", ezfunc);
+    error ("%s: F must be a string or function handle", ezfcn);
   endif
 
   if (nargin > 2 || (nargin == 2 && isplot))
-    funx = fun;
+    funx = fcn;
     fstrx = fstr;
     funy = varargin{2};
     if (ischar (funy) && ! strcmp (funy, "circ") && ! strcmp (funy, "animate"))
@@ -162,13 +164,13 @@
         funy = vectorize (inline (funy));
       endif
       if (numel (argnames (funy)) != nargs)
-        error ("%s: expecting a function of %d arguments", ezfunc, nargs);
+        error ("%s: expecting a function of %d arguments", ezfcn, nargs);
       endif
       fstry = formula (funy);
     elseif (isa (funy, "inline"))
       parametric = true;
       if (numel (argnames (funy)) != nargs)
-        error ("%s: expecting a function of %d arguments", ezfunc, nargs);
+        error ("%s: expecting a function of %d arguments", ezfcn, nargs);
       endif
       funy = vectorize (funy);
       fstry = formula (funy);
@@ -183,7 +185,7 @@
         args = {"y"};
       endif
       if (numel (args) != nargs)
-        error ("%s: expecting a function of %d arguments", ezfunc, nargs);
+        error ("%s: expecting a function of %d arguments", ezfcn, nargs);
       endif
     endif
 
@@ -192,7 +194,7 @@
       return;
     elseif (parametric && isplot)
       if (nargs == 2)
-        error ("%s: can not define a parametric function in this manner", ezfunc);
+        error ("%s: can not define a parametric function in this manner", ezfcn);
       else
         xarg = "x";
         yarg = "y";
@@ -207,12 +209,12 @@
           funz = vectorize (inline (funz));
         endif
         if (numel (argnames (funz)) > nargs)
-          error ("%s: expecting a function of %d arguments", ezfunc, nargs);
+          error ("%s: expecting a function of %d arguments", ezfcn, nargs);
         endif
         fstrz = formula (funz);
       elseif (isa (funz, "inline"))
         if (numel (argnames (funz)) != nargs)
-          error ("%s: expecting a function of %d arguments", ezfunc, nargs);
+          error ("%s: expecting a function of %d arguments", ezfcn, nargs);
         endif
         funz = vectorize (funz);
         fstrz = formula (funz);
@@ -226,10 +228,10 @@
           args = {"z"};
         endif
         if (numel (args) != nargs)
-          error ("%s: expecting a function of %d arguments", ezfunc, nargs);
+          error ("%s: expecting a function of %d arguments", ezfcn, nargs);
         endif
       else
-        error ("%s: parametric plots require 3 functions", ezfunc);
+        error ("%s: parametric plots require 3 functions", ezfcn);
       endif
     endif
   endif
@@ -264,7 +266,7 @@
     elseif (numel (arg) == 4 && isempty (domain))
       domain = arg(:).';
     else
-      error ("%s: expecting scalar N, or 2-/4-element vector DOM", ezfunc);
+      error ("%s: expecting scalar N, or 2-/4-element vector DOM", ezfcn);
     endif
   endwhile
 
@@ -273,11 +275,11 @@
     return;
   elseif (circ && parametric)
     error ("%s: can not have both circular domain and parametric function",
-           ezfunc);
+           ezfcn);
   endif
 
   if (animate && ! isplot3)
-    error ("%s: animate option only valid for ezplot3", ezfunc);
+    error ("%s: animate option only valid for ezplot3", ezfcn);
   endif
 
   if (parametric)
@@ -366,7 +368,7 @@
       endif
     else  # non-parametric plots
       if (isplot && nargs == 2)
-        Z = feval (fun, X, Y);
+        Z = feval (fcn, X, Y);
 
         ## Matlab returns line objects for this case and so can't call
         ## contour directly as it returns patch objects to allow colormaps
@@ -385,18 +387,18 @@
         endwhile
       else
         if (ispolar)
-          Z = feval (fun, X);
+          Z = feval (fcn, X);
           ## FIXME: Why aren't singularities eliminated for polar plots?
         elseif (isplot)
-          Z = feval (fun, X);
+          Z = feval (fcn, X);
           ## Eliminate the singularities
           Z = __eliminate_sing__ (Z);
           domain = find_valid_domain (X, [], Z);
         elseif (iscontour)
-          Z = feval (fun, X, Y);
+          Z = feval (fcn, X, Y);
           Z = __eliminate_sing__ (Z);
         else  #  mesh, surf plots
-          Z = feval (fun, X, Y);
+          Z = feval (fcn, X, Y);
           Z = __eliminate_sing__ (Z);
           if (circ)
             ## Use domain calculated at the start.
@@ -426,7 +428,7 @@
   unwind_protect
     hax = newplot (hax);
     if (iscontour)
-      [~, h] = feval (pltfunc, hax, X, Y, Z);
+      [~, h] = feval (pltfcn, hax, X, Y, Z);
     elseif (isplot && nargs == 2)
       h = zeros (length (XX), 1);
       hold_state = get (hax, "nextplot");
@@ -442,7 +444,7 @@
       set (hax, "nextplot", hold_state);
       axis (hax, domain);
     elseif (isplot || ispolar)
-      h = feval (pltfunc, hax, X, Z);
+      h = feval (pltfcn, hax, X, Z);
       if (isplot)
         if (! parametric)
           axis (hax, domain);
@@ -454,12 +456,12 @@
       if (animate)
         comet3 (hax, X, Y, Z);
       else
-        h = feval (pltfunc, hax, X, Y, Z);
+        h = feval (pltfcn, hax, X, Y, Z);
       endif
       grid (hax, "on");
       zlabel (hax, "z");
     else  # mesh and surf plots
-      h = feval (pltfunc, hax, X, Y, Z);
+      h = feval (pltfcn, hax, X, Y, Z);
       ## FIXME: surf, mesh should really do a better job of setting zlim
       if (! parametric)
         axis (hax, domain);
--- a/scripts/plot/draw/private/__patch__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/private/__patch__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -32,153 +32,154 @@
 ## Create patch object from x and y with color c and parent p.
 ## Return handle to patch object.
 
-function [h, failed] = __patch__ (p, varargin)
+function h = __patch__ (p, varargin)
 
   h = NaN;
-  failed = false;
+  nargin = nargin - 1;
 
   is_numeric_arg = cellfun (@isnumeric, varargin);
 
   if (isempty (varargin))
-    args = varargin;
+    args = {};
   elseif (is_numeric_arg(1))
     if (nargin < 3 || ! is_numeric_arg(2))
-      failed = true;
-    else
-      if (nargin > 4 && all (is_numeric_arg(1:4)))
-        x = varargin{1};
-        y = varargin{2};
+      print_usage ("patch");
+    endif
+
+    if (nargin >= 4 && all (is_numeric_arg(1:4)))
+      x = varargin{1};
+      y = varargin{2};
+      z = varargin{3};
+      c = varargin{4};
+      iarg = 5;
+    elseif (nargin >= 3 && all (is_numeric_arg(1:3)))
+      x = varargin{1};
+      y = varargin{2};
+      if (nargin > 3 && iscolorspec (varargin{4}))
         z = varargin{3};
         c = varargin{4};
         iarg = 5;
-      elseif (nargin > 3 && all (is_numeric_arg(1:3)))
-        x = varargin{1};
-        y = varargin{2};
-        if (nargin > 4 && iscolorspec (varargin{4}))
-          z = varargin{3};
-          c = varargin{4};
-          iarg = 5;
-        else
-          z = [];
-          c = varargin{3};
-          iarg = 4;
-        endif
-      elseif (nargin > 2 && all (is_numeric_arg(1:2)))
-        x = varargin{1};
-        y = varargin{2};
+      else
         z = [];
-        if (iscolorspec (varargin{3}))
-          c = varargin{3};
-          iarg = 4;
-        else
-          c = [];
-          iarg = 3;
-        endif
+        c = varargin{3};
+        iarg = 4;
       endif
+    elseif (nargin >= 3 && all (is_numeric_arg(1:2)))
+      x = varargin{1};
+      y = varargin{2};
+      z = [];
+      if (iscolorspec (varargin{3}))
+        c = varargin{3};
+        iarg = 4;
+      elseif (nargin == 3)
+        error ("patch: invalid color specification C");
+      else
+        c = [];
+        iarg = 3;
+      endif
+    endif
 
-      if (isvector (x))
-        x = x(:);
-        y = y(:);
-        z = z(:);
-        if (isnumeric (c))
-          if (isvector (c))
-            if (isequal (size (c), [1, 3]))
-              ## Do nothing, this is a single RGB color specification
-            elseif (numel (c) == numel (x))
-              c = c(:);
-            endif
-          elseif (rows (c) != numel (x) && columns (c) == numel (x))
-            c = c.';
+    if (isvector (x))
+      x = x(:);
+      y = y(:);
+      z = z(:);
+      if (isnumeric (c))
+        if (isvector (c))
+          if (isequal (size (c), [1, 3]))
+            ## Do nothing, this is a single RGB color specification
+          elseif (numel (c) == numel (x))
+            c = c(:);
           endif
+        elseif (rows (c) != numel (x) && columns (c) == numel (x))
+          c = c.';
         endif
       endif
-      args{1} = "xdata";
-      args{2} = x;
-      args{3} = "ydata";
-      args{4} = y;
-      args{5} = "zdata";
-      args{6} = z;
+    endif
+    args{1} = "xdata";
+    args{2} = x;
+    args{3} = "ydata";
+    args{4} = y;
+    args{5} = "zdata";
+    args{6} = z;
 
-      if (isnumeric (c))
+    if (isnumeric (c) && ! isempty (c))
 
-        if (ndims (c) == 3 && columns (c) == 1)
-          c = permute (c, [1, 3, 2]);
-        endif
+      if (ndims (c) == 3 && columns (c) == 1)
+        c = permute (c, [1, 3, 2]);
+      endif
 
-        if (isvector (c) && numel (c) == columns (x))
-          if (isnan (c))
-            args{7} = "facecolor";
-            args{8} = [1, 1, 1];
-            args{9} = "cdata";
-            args{10} = c;
-          elseif (isnumeric (c))
-            args{7} = "facecolor";
-            args{8} = "flat";
-            args{9} = "cdata";
-            args{10} = c;
-          else
-            error ("patch: color data C must be numeric");
-          endif
-        elseif (isrow (c) && numel (c) == 3)
+      if (isvector (c) && numel (c) == columns (x))
+        ## One color per face
+        if (isnan (c))
+          args{7} = "facecolor";
+          args{8} = [1, 1, 1];
+        else
           args{7} = "facecolor";
-          args{8} = c;
+          args{8} = "flat";
+        endif
+        args{9} = "cdata";
+        args{10} = c;
+      elseif (isrow (c) && numel (c) == 3)
+        ## One RGB color
+        args{7} = "facecolor";
+        args{8} = c;
+        args{9} = "cdata";
+        args{10} = [];
+      elseif (ndims (c) == 3 && size (c, 3) == 3)
+        ## CDATA is specified as 3-D RGB data
+        if ((rows (c) == 1 && columns (c) == 1) ...
+            || (rows (c) == 1 && columns (c) == columns (x)))
+          ## Single patch color or per-face color
+          args{7} = "facecolor";
+          args{8} = "flat";
+          args{9} = "cdata";
+          args{10} = c;
+        elseif (rows (c) == rows (x) && columns (c) == columns (x))
+          ## Per-vertex color
+          args{7} = "facecolor";
+          args{8} = "interp";
+          args{9} = "cdata";
+          args{10} = c;
+        else
+          error ("patch: invalid TrueColor data C");
+        endif
+      else
+        ## Color vectors
+        if (isempty (c))
+          args{7} = "facecolor";
+          args{8} = "interp";
           args{9} = "cdata";
           args{10} = [];
-        elseif (ndims (c) == 3 && size (c, 3) == 3)
-          ## CDATA is specified as RGB data
-          if ((rows (c) == 1 && columns (c) == 1) ...
-              || (rows (c) == 1 && columns (c) == columns (x)))
-            ## Single patch color or per-face color
-            args{7} = "facecolor";
-            args{8} = "flat";
-            args{9} = "cdata";
-            args{10} = c;
-          elseif (rows (c) == rows (x) && columns (c) == columns (x))
-            ## Per-vertex color
-            args{7} = "facecolor";
-            args{8} = "interp";
-            args{9} = "cdata";
-            args{10} = c;
-          else
-            error ("patch: Invalid TrueColor data C");
-          endif
+        elseif (size_equal (c, x) && size_equal (c, y))
+          args{7} = "facecolor";
+          args{8} = "interp";
+          args{9} = "cdata";
+          args{10} = c;
         else
-          ## Color Vectors
-          if (isempty (c))
-            args{7} = "facecolor";
-            args{8} = "interp";
-            args{9} = "cdata";
-            args{10} = [];
-          elseif (size_equal (c, x) && size_equal (c, y))
-            args{7} = "facecolor";
-            args{8} = "interp";
-            args{9} = "cdata";
-            args{10} = c;
-          else
-            error ("patch: size of X, Y, and C must be equal");
-          endif
+          error ("patch: size of X, Y, and C must be equal");
         endif
-      elseif (iscolorspec (c))
-        args{7} = "facecolor";
-        args{8} = tolower (c);
-        args{9} = "cdata";
-        args{10} = [];
-      else
-        args{7} = "facecolor";
-        args{8} = [0, 0, 0];
-        args{9} = "cdata";
-        args{10} = [];
       endif
+    elseif (iscolorspec (c))
+      ## Color specification is a string
+      args{7} = "facecolor";
+      args{8} = tolower (c);
+      args{9} = "cdata";
+      args{10} = [];
+    elseif (! isempty (c))
+      error ("patch: invalid color specification C");
+    endif
 
-      args = [args, varargin(iarg:end)];
-    endif
+    args = [args, varargin(iarg:end)];
+
   else
+    ## "Property"/Value pair input
     args = varargin;
   endif
 
-  if (! failed)
-    h = __go_patch__ (p, args{:});
+  if (isempty (p))
+    p = gca ();
   endif
+  h = __go_patch__ (p, args{:});
 
 endfunction
 
--- a/scripts/plot/draw/sphere.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/sphere.m	Tue Nov 15 13:15:28 2022 -0800
@@ -53,7 +53,7 @@
 ## @seealso{cylinder, ellipsoid, rectangle}
 ## @end deftypefn
 
-function [xx, yy, zz] = sphere (varargin)
+function [x, y, z] = sphere (varargin)
 
   [hax, varargin, nargin] = __plt_get_axis_arg__ ("sphere", varargin{:});
 
@@ -61,22 +61,25 @@
     print_usage ();
   elseif (nargin == 1)
     n = varargin{1};
+    if (! (isreal (n) && isscalar (n) && n > 0))
+      error ("sphere: N must be a real scalar > 0");
+    endif
   else
     n = 20;
   endif
 
   theta = linspace (0, 2*pi, n+1);
   phi = linspace (-pi/2, pi/2, n+1);
-  [theta,phi] = meshgrid (theta, phi);
+  [theta, phi] = meshgrid (theta, phi);
 
-  x = cos (phi) .* cos (theta);
-  y = cos (phi) .* sin (theta);
-  z = sin (phi);
+  xx = cos (phi) .* cos (theta);
+  yy = cos (phi) .* sin (theta);
+  zz = sin (phi);
 
   if (nargout > 0)
-    xx = x;
-    yy = y;
-    zz = z;
+    x = xx;
+    y = yy;
+    z = zz;
   else
     oldfig = [];
     if (! isempty (hax))
@@ -85,7 +88,7 @@
     unwind_protect
       hax = newplot (hax);
 
-      surf (x, y, z);
+      surf (xx, yy, zz);
     unwind_protect_cleanup
       if (! isempty (oldfig))
         set (0, "currentfigure", oldfig);
@@ -94,3 +97,19 @@
   endif
 
 endfunction
+
+
+%!demo
+%! clf;
+%! colormap ("default");
+%! [x, y, z] = sphere (40);
+%! surf (3*x, 3*y, 3*z);
+%! axis equal;
+%! title ("sphere of radius 3");
+
+## Test input validation
+%!error <Invalid call> sphere (-1,1)
+%!error <N must be a real scalar> sphere (2i)
+%!error <N must be a real scalar> sphere ([])
+%!error <N must be a real scalar> sphere (ones (2,2))
+%!error <N must be a real scalar . 0> sphere (-1)
--- a/scripts/plot/draw/stairs.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/stairs.m	Tue Nov 15 13:15:28 2022 -0800
@@ -71,7 +71,7 @@
 ## @seealso{bar, hist, plot, stem}
 ## @end deftypefn
 
-function [xs, ys] = stairs (varargin)
+function [xstep, ystep] = stairs (varargin)
 
   [hax, varargin, nargin] = __plt_get_axis_arg__ ("stairs", varargin{:});
 
@@ -86,7 +86,7 @@
     endif
     unwind_protect
       hax = newplot (hax);
-      [htmp, xxs, yys] = __stairs__ (true, varargin{:});
+      htmp = __stairs__ (true, varargin{:});
 
       if (! ishold ())
         set (hax, "box", "on");
@@ -98,10 +98,10 @@
       endif
     end_unwind_protect
     if (nargout == 1)
-      xs = htmp;
+      xstep = htmp;
     endif
   else
-    [~, xs, ys] = __stairs__ (false, varargin{:});
+    [~, xstep, ystep] = __stairs__ (false, varargin{:});
   endif
 
 endfunction
--- a/scripts/plot/draw/surfnorm.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/draw/surfnorm.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,7 +28,7 @@
 ## @deftypefnx {} {} surfnorm (@var{z})
 ## @deftypefnx {} {} surfnorm (@dots{}, @var{prop}, @var{val}, @dots{})
 ## @deftypefnx {} {} surfnorm (@var{hax}, @dots{})
-## @deftypefnx {} {[@var{nx}, @var{ny}, @var{nz}] =} surfnorm (@dots{})
+## @deftypefnx {} {[@var{Nx}, @var{Ny}, @var{Nz}] =} surfnorm (@dots{})
 ## Find the vectors normal to a meshgridded surface.
 ##
 ## If @var{x} and @var{y} are vectors, then a typical vertex is
@@ -48,7 +48,7 @@
 ## rather than the current axes returned by @code{gca}.
 ##
 ## If output arguments are requested then the components of the normal
-## vectors are returned in @var{nx}, @var{ny}, and @var{nz} and no plot is
+## vectors are returned in @var{Nx}, @var{Ny}, and @var{Nz} and no plot is
 ## made.  The normal vectors are unnormalized (magnitude != 1).  To normalize,
 ## use
 ##
--- a/scripts/plot/util/__actual_axis_position__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/__actual_axis_position__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} __actual_axis_position__ (@var{h})
-## @deftypefnx {} {} __actual_axis_position__ (@var{axis_struct})
+## @deftypefn  {} {@var{pos} =} __actual_axis_position__ (@var{h})
+## @deftypefnx {} {@var{pos} =} __actual_axis_position__ (@var{axis_struct})
 ## Undocumented internal function.
 ## @end deftypefn
 
--- a/scripts/plot/util/__pltopt__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/__pltopt__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __pltopt__ (@var{caller}, @var{opt}, @var{err_on_invalid})
+## @deftypefn {} {[@var{options}, @var{valid}] =} __pltopt__ (@var{caller}, @var{opt}, @var{err_on_invalid})
 ##
 ## Decode plot option strings.
 ##
--- a/scripts/plot/util/close.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/close.m	Tue Nov 15 13:15:28 2022 -0800
@@ -30,6 +30,7 @@
 ## @deftypefnx {} {} close all
 ## @deftypefnx {} {} close all hidden
 ## @deftypefnx {} {} close all force
+## @deftypefnx {} {@var{status} =} close (@dots{})
 ## Close figure window(s).
 ##
 ## When called with no arguments, close the current figure.  This is equivalent
@@ -48,6 +49,9 @@
 ## even when @qcode{"closerequestfcn"} has been altered to prevent closing the
 ## window.
 ##
+## If the optional output @var{status} is requested then Octave returns 1 if
+## the figure windows were closed successfully.
+##
 ## Implementation Note: @code{close} operates by making the handle @var{h} the
 ## current figure, and then calling the function specified by the
 ## @qcode{"closerequestfcn"} property of the figure.  By default, the function
@@ -59,7 +63,7 @@
 ## @seealso{closereq, delete}
 ## @end deftypefn
 
-function retval = close (arg1, arg2)
+function status = close (arg1, arg2)
 
   figs = [];
 
@@ -122,7 +126,7 @@
   endif
 
   if (nargout > 0)
-    retval = 1;
+    status = 1;
   endif
 
 endfunction
--- a/scripts/plot/util/findobj.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/findobj.m	Tue Nov 15 13:15:28 2022 -0800
@@ -219,7 +219,7 @@
 
   numpairs = np - 1;
   if (! isempty (logicaloperator))
-    logicaloperator = shift (logicaloperator, 1);
+    logicaloperator = circshift (logicaloperator, 1);
   endif
 
   ## Load all objects which qualify for being searched.
@@ -238,7 +238,7 @@
   if (numpairs > 0)
     match = true (numel (h), numpairs);
     for nh = 1 : numel (h)
-      p = get (h(nh));
+      p = __get__ (h(nh));
       for np = 1 : numpairs
         fields = fieldnames (p);
         fieldindex = find (strcmpi (fields, pname{np}), 1);
--- a/scripts/plot/util/gco.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/gco.m	Tue Nov 15 13:15:28 2022 -0800
@@ -25,9 +25,9 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {} {@var{h} =} gco ()
-## @deftypefnx {} {@var{h} =} gco (@var{fig})
+## @deftypefnx {} {@var{h} =} gco (@var{hfig})
 ## Return a handle to the current object of the current figure, or a handle
-## to the current object of the figure with handle @var{fig}.
+## to the current object of the figure with handle @var{hfig}.
 ##
 ## The current object of a figure is the object that was last clicked on.  It
 ## is stored in the @qcode{"CurrentObject"} property of the target figure.
@@ -46,8 +46,20 @@
 ## @seealso{gcbo, gca, gcf, gcbf, get, set}
 ## @end deftypefn
 
-function h = gco ()
+function h = gco (hfig)
 
-  h = get (get (0, "currentfigure"), "currentobject");
+  if (nargin == 1)
+    if (! isfigure (hfig))
+      error ("gco: HFIG must be a graphics handle to a figure object");
+    endif
+  else
+    hfig = get (0, "currentfigure");
+  endif
+
+  h = get (hfig, "currentobject");
 
 endfunction
+
+
+## Test input invalidation
+%!error <HFIG must be a graphics handle> gco (-1)
--- a/scripts/plot/util/graphics_toolkit.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/graphics_toolkit.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{name} =} graphics_toolkit ()
-## @deftypefnx {} {@var{name} =} graphics_toolkit (@var{hlist})
+## @deftypefn  {} {@var{tkit} =} graphics_toolkit ()
+## @deftypefnx {} {@var{tkit} =} graphics_toolkit (@var{hlist})
 ## @deftypefnx {} {} graphics_toolkit (@var{name})
 ## @deftypefnx {} {} graphics_toolkit (@var{hlist}, @var{name})
 ## Query or set the default graphics toolkit which is assigned to new figures.
@@ -43,19 +43,19 @@
 ## @seealso{available_graphics_toolkits}
 ## @end deftypefn
 
-function retval = graphics_toolkit (name, hlist = [])
+function tkit = graphics_toolkit (name, hlist = [])
 
   if (nargout > 0 || nargin == 0)
-    retval = get (0, "defaultfigure__graphics_toolkit__");
+    tkit = get (0, "defaultfigure__graphics_toolkit__");
     ## Handle case where graphics_toolkit has been called before any plotting
-    if (isempty (retval))
+    if (isempty (tkit))
       toolkits = available_graphics_toolkits ();
       if (any (strcmp ("qt", toolkits)))
-        retval = "qt";
+        tkit = "qt";
       elseif (any (strcmp ("fltk", toolkits)))
-        retval = "fltk";
+        tkit = "fltk";
       elseif (! isempty (toolkits))
-        retval = toolkits{1};
+        tkit = toolkits{1};
       endif
     endif
   endif
@@ -65,7 +65,7 @@
   elseif (nargin == 1)
     if (all (isfigure (name)))
       hlist = name;
-      retval = get (hlist, "__graphics_toolkit__");
+      tkit = get (hlist, "__graphics_toolkit__");
       return;
     elseif (! ischar (name))
       error ("graphics_toolkit: invalid graphics toolkit NAME");
--- a/scripts/plot/util/isaxes.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/isaxes.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isaxes (@var{h})
+## @deftypefn {} {@var{tf} =} isaxes (@var{h})
 ## Return true if @var{h} is an axes graphics handle and false otherwise.
 ##
 ## If @var{h} is a matrix then return a logical array which is true where the
@@ -32,16 +32,16 @@
 ## @seealso{isfigure, ishghandle, isgraphics}
 ## @end deftypefn
 
-function retval = isaxes (h)
+function tf = isaxes (h)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = ishghandle (h);
+  tf = ishghandle (h);
 
-  if (any (retval))
-    retval(retval) = strcmp (get (h(retval), "type"), "axes");
+  if (any (tf))
+    tf(tf) = strcmp (get (h(tf), "type"), "axes");
   endif
 
 endfunction
--- a/scripts/plot/util/isfigure.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/isfigure.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isfigure (@var{h})
+## @deftypefn {} {@var{tf} =} isfigure (@var{h})
 ## Return true if @var{h} is a figure graphics handle and false otherwise.
 ##
 ## If @var{h} is a matrix then return a logical array which is true where the
@@ -33,16 +33,16 @@
 ## @seealso{isaxes, ishghandle, isgraphics}
 ## @end deftypefn
 
-function retval = isfigure (h)
+function tf = isfigure (h)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = ishghandle (h);
+  tf = ishghandle (h);
 
-  if (any (retval))
-    retval(retval) = strcmp (get (h(retval), "type"), "figure");
+  if (any (tf))
+    tf(tf) = strcmp (get (h(tf), "type"), "figure");
   endif
 
 endfunction
--- a/scripts/plot/util/isgraphics.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/isgraphics.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} isgraphics (@var{h})
-## @deftypefnx {} {} isgraphics (@var{h}, @var{type})
+## @deftypefn  {} {@var{tf} =} isgraphics (@var{h})
+## @deftypefnx {} {@var{tf} =} isgraphics (@var{h}, @var{type})
 ## Return true if @var{h} is a graphics handle (of type @var{type}) and false
 ## otherwise.
 ##
@@ -34,7 +34,7 @@
 ## @seealso{ishghandle, ishandle, isaxes, isfigure}
 ## @end deftypefn
 
-function retval = isgraphics (h, type = "")
+function tf = isgraphics (h, type = "")
 
   if (nargin < 1)
     print_usage ();
@@ -45,10 +45,10 @@
   endif
 
   ## Octave has no Simulink equivalent so it is sufficient to call ishghandle.
-  retval = ishghandle (h);
+  tf = ishghandle (h);
 
-  if (nargin == 2 && any (retval))
-    retval(retval) = strcmpi (get (h(retval), "type"), type);
+  if (nargin == 2 && any (tf))
+    tf(tf) = strcmpi (get (h(tf), "type"), type);
   endif
 
 endfunction
--- a/scripts/plot/util/ishandle.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/ishandle.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} ishandle (@var{h})
+## @deftypefn {} {@var{tf} =} ishandle (@var{h})
 ## Return true if @var{h} is a handle to a graphics or Java object and false
 ## otherwise.
 ##
@@ -39,13 +39,13 @@
 ## @seealso{ishghandle, isgraphics, isjava}
 ## @end deftypefn
 
-function retval = ishandle (h)
+function tf = ishandle (h)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = ishghandle (h) | isjava (h);
+  tf = ishghandle (h) | isjava (h);
 
 endfunction
 
--- a/scripts/plot/util/ishold.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/ishold.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} ishold
-## @deftypefnx {} {} ishold (@var{hax})
-## @deftypefnx {} {} ishold (@var{hfig})
+## @deftypefn  {} {@var{tf} =} ishold
+## @deftypefnx {} {@var{tf} =} ishold (@var{hax})
+## @deftypefnx {} {@var{tf} =} ishold (@var{hfig})
 ## Return true if the next plot will be added to the current plot, or
 ## false if the plot device will be cleared before drawing the next plot.
 ##
@@ -35,7 +35,7 @@
 ## @seealso{hold, newplot}
 ## @end deftypefn
 
-function retval = ishold (h)
+function tf = ishold (h)
 
   if (nargin == 0)
     fig = gcf ();
@@ -60,7 +60,7 @@
     endswitch
   endif
 
-  retval = (strcmp (get (fig, "nextplot"), "add")
+  tf = (strcmp (get (fig, "nextplot"), "add")
             && ! isempty (ax) && strcmp (get (ax, "nextplot"), "add"));
 
 endfunction
--- a/scripts/plot/util/pan.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/pan.m	Tue Nov 15 13:15:28 2022 -0800
@@ -46,7 +46,7 @@
 ## @seealso{rotate3d, zoom}
 ## @end deftypefn
 
-function h = pan (hfig, option)
+function pan (hfig, option)
 
   ## FIXME: Presumably should implement this for Matlab compatibility.
   if (nargin == 1 && nargout > 0 && isfigure (hfig))
--- a/scripts/plot/util/print.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/print.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,7 +28,7 @@
 ## @deftypefnx {} {} print (@var{options})
 ## @deftypefnx {} {} print (@var{filename}, @var{options})
 ## @deftypefnx {} {} print (@var{hfig}, @dots{})
-## @deftypefnx {} {@var{rgb} =} print (@qcode{"-RGBImage"}, @dots{})
+## @deftypefnx {} {@var{RGB} =} print (@qcode{"-RGBImage"}, @dots{})
 ## Format a figure for printing and either save it to a file, send it to a
 ## printer, or return an RGB image.
 ##
@@ -116,19 +116,21 @@
 ## @end group
 ## @end example
 ##
-## @item  -opengl
-## @itemx -painters
-##   Specifies whether the opengl (pixel-based) or painters (vector-based)
-## renderer is used.  This is equivalent to changing the figure's
+## @item  -image | -opengl
+## @itemx -vector | -painters
+##   Specifies whether the pixel-based renderer (@option{-image} or
+## @option{-opengl}) or vector-based renderer (@option{-vector} or
+## @option{-painters}) is used.  This is equivalent to changing the figure's
 ## @qcode{"Renderer"} property.  When the figure
 ## @nospell{@qcode{"RendererMode"}} property is @qcode{"auto"} (the default)
 ## Octave will use the @qcode{"opengl"} renderer for raster formats (e.g.,
-## JPEG) and @qcode{"painters"} for vector formats (e.g., PDF).  Those options
+## JPEG) and @qcode{"painters"} for vector formats (e.g., PDF)@.  These options
 ## are only supported for the "qt" graphics toolkit.
 ##
-## @item -svgconvert
-##   When using the @option{-painters} renderer, this enables a different
-## backend toolchain with enhanced characteristics:
+## @item -svgconvert (default)
+## @item -nosvgconvert
+##   When using the @option{-painters} renderer, this enables or disables the
+## SVG based backend toolchain with enhanced characteristics:
 ##
 ## @table @asis
 ## @item Font handling:
@@ -152,8 +154,8 @@
 ## output to be rasterized.
 ## @end table
 ##
-## Caution: @option{-svgconvert} may lead to inaccurate rendering of image
-## objects.
+## Caution: If Octave was built against Qt version earlier than 5.13,
+## @option{-svgconvert} may lead to inaccurate rendering of image objects.
 ##
 ## @item  -portrait
 ## @itemx -landscape
@@ -262,9 +264,8 @@
 ##
 ## Use @code{pdfcrop} if you don't want the surrounding page.
 ##
-## By default, PDF inherits the same limitations as PostScript.
-## For an enhanced output with complete text support and basic transparency,
-## use the @option{-svgconvert} option.
+## Caution: with @option{-nosvgconvert} option, PDF inherits the same
+## limitations as PostScript (limited set of fonts and lack of transparency).
 ##
 ##   @item  eps(2)
 ##   @itemx epsc(2)
@@ -272,7 +273,7 @@
 ##
 ## The OpenGL-based graphics toolkits always generate PostScript level 3.0.
 ## They have limited support for text unless using the @option{-svgconvert}
-## option.
+## option (the default).
 ## Limitations include using only ASCII characters (e.g., no Greek letters)
 ## and support for just three base PostScript fonts: Helvetica (the default),
 ## Times, or Courier.  Any other font will be replaced by Helvetica.
@@ -415,7 +416,7 @@
 ## @seealso{saveas, getframe, savefig, hgsave, orient, figure}
 ## @end deftypefn
 
-function rgbout = print (varargin)
+function RGB = print (varargin)
 
   opts = __print_parse_opts__ (varargin{:});
 
@@ -754,7 +755,7 @@
       otherwise
         if (strcmp (opts.renderer, "opengl"))
           if (opts.rgb_output)
-            rgbout = __get_frame__ (opts.figure);
+            RGB = __get_frame__ (opts.figure);
           else
             compression = "none";
 
@@ -790,7 +791,7 @@
 
     ## Avoid a redraw since the figure should not have changed
     ## FIXME: Bug #57552, marker sizes, requires that redraw be done.
-    ##set (gcf, "__modified__", "off");
+    ## set (gcf, "__modified__", "off");
 
     ## Unlink temporary files
     for n = 1:numel (opts.unlink)
--- a/scripts/plot/util/printd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/printd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -30,7 +30,7 @@
 ## Convert any object acceptable to @code{disp} into the format selected by
 ## the suffix of @var{filename}.
 ##
-## If the return argument @var{out_file} is given, the name of the created
+## If the optional output @var{out_file} is requested, the name of the created
 ## file is returned.
 ##
 ## This function is intended to facilitate manipulation of the output of
--- a/scripts/plot/util/private/__add_default_menu__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/private/__add_default_menu__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -49,104 +49,108 @@
     ## File menu
     hui = uimenu (hf, "label", "&File", "tag", "__default_menu__File", ...
                       "handlevisibility", "off");
-    uimenu (hui, "label", "&Open...", "callback", @open_cb, ...
-            "accelerator", "o");
-    uimenu (hui, "label", "&Save", "callback", {@save_cb, "save"}, ...
-            "accelerator", "s");
-    uimenu (hui, "label", "Save &As...", "callback", {@save_cb, "saveas"}, ...
-            "accelerator", "S");
-    uimenu (hui, "label", "&Close", "callback", @close_cb, ...
-            "accelerator", "w", "separator", "on");
+    uimenu (hui, "label", "&Open...", "menuselectedfcn", @open_cb, ...
+                 "accelerator", "o");
+    uimenu (hui, "label", "&Save", "menuselectedfcn", {@save_cb, "save"}, ...
+                 "accelerator", "s");
+    uimenu (hui, "label", "Save &As...", ...
+                 "menuselectedfcn", {@save_cb, "saveas"}, ...
+                 "accelerator", "S");
+    uimenu (hui, "label", "&Close", "menuselectedfcn", @close_cb, ...
+                 "accelerator", "w", "separator", "on");
     hmenu(1) = hui;
 
     ## Edit menu
     hui = uimenu (hf, "label", "&Edit", "handlevisibility", "off", ...
-                  "tag", "__default_menu__Edit");
-    uimenu (hui, "label", "&New Figure", "callback", "figure ();", ...
-            "accelerator", "n");
+                      "tag", "__default_menu__Edit");
+    uimenu (hui, "label", "&New Figure", "menuselectedfcn", "figure ();", ...
+                 "accelerator", "n");
     uimenu (hui, "label", "&Duplicate Figure",
-            "callback", "copyobj (gcbf (), groot ());", ...
-            "accelerator", "d");
+                 "menuselectedfcn", "copyobj (gcbf (), groot ());", ...
+                 "accelerator", "d");
     uimenu (hui, "label", "Clea&r Figure",
-            "callback", "clf (gcbf ());");
+                 "menuselectedfcn", "clf (gcbf ());");
     uimenu (hui, "label", "Reset Figure",
-            "callback", "reset (gcbf ());");
+                 "menuselectedfcn", "reset (gcbf ());");
     uimenu (hui, "label", "Copy Figure to Clipboard", ...
-            "callback", @clipboard_cb, "separator", "on", ...
-            "accelerator", "c");
+                 "menuselectedfcn", @clipboard_cb, "separator", "on", ...
+                 "accelerator", "c");
     hmenu(2) = hui;
 
     ## Tools menu
     hui = uimenu (hf, "label", "&Tools", "handlevisibility", "off", ...
-                  "tag", "__default_menu__Tools");
+                      "tag", "__default_menu__Tools");
     uimenu (hui, "label", "Toggle &grid on all axes", "tag", "toggle", ...
-            "callback", @grid_cb);
+                 "menuselectedfcn", @grid_cb);
     uimenu (hui, "label", "Show grid on all axes", "tag", "on", ...
-            "callback", @grid_cb);
+                 "menuselectedfcn", @grid_cb);
     uimenu (hui, "label", "Hide grid on all axes", "tag", "off", ...
-            "callback", @grid_cb);
-    uimenu (hui, "label", "Auto&scale all axes", "callback", @autoscale_cb);
+                 "menuselectedfcn", @grid_cb);
+    uimenu (hui, "label", "Auto&scale all axes",
+                 "menuselectedfcn", @autoscale_cb);
 
     hui2 = uimenu (hui, "label", "GUI &Mode (on all axes)");
     uimenu (hui2, "label", "Pan x and y", "tag", "pan_on", ...
-            "callback", @guimode_cb);
+                  "menuselectedfcn", @guimode_cb);
     uimenu (hui2, "label", "Pan x only", "tag", "pan_xon", ...
-            "callback", @guimode_cb);
+                  "menuselectedfcn", @guimode_cb);
     uimenu (hui2, "label", "Pan y only", "tag", "pan_yon", ...
-            "callback", @guimode_cb);
+                  "menuselectedfcn", @guimode_cb);
     uimenu (hui2, "label", "Disable pan and rotate", "tag", ...
-            "no_pan_rotate", "callback", @guimode_cb);
+                  "no_pan_rotate", "menuselectedfcn", @guimode_cb);
     uimenu (hui2, "label", "Rotate on", "tag", "rotate3d", ...
-            "callback", @guimode_cb);
+                  "menuselectedfcn", @guimode_cb);
     uimenu (hui2, "label", "Enable mousezoom", "tag", "zoom_on", ...
-            "callback", @guimode_cb);
+                  "menuselectedfcn", @guimode_cb);
     uimenu (hui2, "label", "Disable mousezoom", "tag", "zoom_off", ...
-            "callback", @guimode_cb);
+                  "menuselectedfcn", @guimode_cb);
     hmenu(3) = hui;
 
     ## Default toolbar
     init_mouse_tools (hf);
     htb = uitoolbar (hf, "tag", "__default_toolbar__", ...
-                     "handlevisibility", "off", "visible", "off");
+                         "handlevisibility", "off", "visible", "off");
 
     ht(1) = uitoggletool (htb, "tooltipstring", "Pan", ...
-                          "tag", "__default_button_pan__", ...
-                          "__named_icon__", "figure-pan");
+                               "tag", "__default_button_pan__", ...
+                               "__named_icon__", "figure-pan");
     ht(2) = uitoggletool (htb, "tooltipstring", "Rotate", ...
-                          "tag", "__default_button_rotate__", ...
-                          "__named_icon__", "figure-rotate");
+                               "tag", "__default_button_rotate__", ...
+                               "__named_icon__", "figure-rotate");
 
     ht(3) = uitoggletool (htb, "tooltipstring", "Zoom In", ...
-                          "tag", "__default_button_zoomin__", ...
-                          "__named_icon__", "figure-zoom-in", ...
-                          "separator", "on");
+                               "tag", "__default_button_zoomin__", ...
+                               "__named_icon__", "figure-zoom-in", ...
+                               "separator", "on");
     ht(4) = uitoggletool (htb, "tooltipstring", "Zoom Out", ...
-                          "tag", "__default_button_zoomout__", ...
-                          "__named_icon__", "figure-zoom-out");
+                               "tag", "__default_button_zoomout__", ...
+                               "__named_icon__", "figure-zoom-out");
     uipushtool (htb, "tooltipstring", "Automatic limits for current axes", ...
-                "clickedcallback", @auto_cb, ...
-                "__named_icon__", "figure-zoom-original");
+                     "clickedcallback", @auto_cb, ...
+                     "__named_icon__", "figure-zoom-original");
 
     ht(5) = uitoggletool (htb, "tooltipstring", "Insert Text", ...
-                          "tag", "__default_button_text__", ...
-                          "separator", "on", "__named_icon__", "figure-text");
+                               "tag", "__default_button_text__", ...
+                               "separator", "on", ...
+                               "__named_icon__", "figure-text");
 
     uipushtool (htb, "tooltipstring", "Toggle current axes visibility", ...
-                "clickedcallback", @axes_cb, "separator", "on", ...
-                "__named_icon__", "figure-axes");
+                     "clickedcallback", @axes_cb, "separator", "on", ...
+                     "__named_icon__", "figure-axes");
     uipushtool (htb, "tooltipstring", "Toggle current axes grid visibility", ...
-                "clickedcallback", @grid_cb,  "__named_icon__", "figure-grid");
+                     "clickedcallback", @grid_cb, ...
+                     "__named_icon__", "figure-grid");
 
     set (ht(1), "oncallback", {@mouse_tools_cb, ht, "pan"}, ...
-         "offcallback", {@mouse_tools_cb, ht, "pan"});
+                "offcallback", {@mouse_tools_cb, ht, "pan"});
     set (ht(2), "oncallback", {@mouse_tools_cb, ht, "rotate"}, ...
-         "offcallback", {@mouse_tools_cb, ht, "rotate"});
+                "offcallback", {@mouse_tools_cb, ht, "rotate"});
     set (ht(3), "oncallback", {@mouse_tools_cb, ht, "zoomin"}, ...
-         "offcallback", {@mouse_tools_cb, ht, "zoomin"});
+                "offcallback", {@mouse_tools_cb, ht, "zoomin"});
     set (ht(4), "oncallback", {@mouse_tools_cb, ht, "zoomout"}, ...
-         "offcallback", {@mouse_tools_cb, ht, "zoomout"});
+                "offcallback", {@mouse_tools_cb, ht, "zoomout"});
     set (ht(5), "oncallback", {@mouse_tools_cb, ht, "text"}, ...
-         "offcallback", {@mouse_tools_cb, ht, "text"});
+                "offcallback", {@mouse_tools_cb, ht, "text"});
   endif
 
   if (! exist ("ht", "var"))
--- a/scripts/plot/util/private/__ghostscript__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/private/__ghostscript__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __ghostscript__ (@var{@dots{}})
+## @deftypefn {} {[@var{gs_cmd}, @var{cleanup_cmd}] =} __ghostscript__ (@var{@dots{}})
 ## Undocumented internal function.
 ## @end deftypefn
 
--- a/scripts/plot/util/private/__gnuplot_draw_axes__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/private/__gnuplot_draw_axes__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -84,7 +84,7 @@
     if (nd == 2 || all (mod (axis_obj.view, 90) == 0))
       dr = dr(1) / dr(2);
     else
-      ## FIXME: need to properly implement 3D
+      ## FIXME: need to properly implement 3-D
       dr = mean (dr(1:2)) / dr(3);
     endif
   else
@@ -95,7 +95,7 @@
     if (nd == 2 || all (mod (axis_obj.view, 90) == 0))
       x = [1, 1];
     else
-      ## 3D plots need to be sized down to fit in the window.
+      ## 3-D plots need to be sized down to fit in the window.
       x = 1.0 ./ sqrt ([2, 2.5]);
     endif
     fprintf (plot_stream, "set tmargin screen %.15g;\n",
@@ -1422,7 +1422,7 @@
 
   endwhile
 
-  ## This is needed to prevent warnings for rotations in 3D plots, while
+  ## This is needed to prevent warnings for rotations in 3-D plots, while
   ## allowing colorbars with contours.
   if (nd == 2 || (data_idx > 1 && ! view_map))
     fputs (plot_stream, "set pm3d implicit;\n");
--- a/scripts/plot/util/private/__gnuplot_print__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/private/__gnuplot_print__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __gnuplot_print__ (@var{@dots{}})
+## @deftypefn {} {@var{opts} =} __gnuplot_print__ (@var{@dots{}})
 ## Undocumented internal function.
 ## @end deftypefn
 
--- a/scripts/plot/util/private/__opengl_print__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/private/__opengl_print__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __opengl_print__ (@var{@dots{}})
+## @deftypefn {} {@var{opts} =} __opengl_print__ (@var{@dots{}})
 ## Undocumented internal function.
 ## @end deftypefn
 
@@ -71,9 +71,8 @@
       gl2ps_device = {sprintf("%snotxt", lower (suffix))};
       gl2ps_device{2} = "tex";
       if (dos_shell)
-        ## FIXME: this will only work on MinGW with the MSYS shell
-        pipeline = {sprintf('cat > "%s-inc.%s"', name, suffix)};
-        pipeline{2} = sprintf ('cat > "%s.tex"', name);
+        pipeline = {sprintf('findstr . > "%s-inc.%s"', name, suffix)};
+        pipeline{2} = sprintf ('findstr . > "%s.tex"', name);
       else
         pipeline = {sprintf('cat > "%s-inc.%s"', name, suffix)};
         pipeline{2} = sprintf ('cat > "%s.tex"', name);
--- a/scripts/plot/util/private/__print_parse_opts__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/private/__print_parse_opts__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -69,7 +69,7 @@
   arg_st.rgb_output = false;
   arg_st.send_to_printer = false;
   arg_st.special_flag = "textnormal";
-  arg_st.svgconvert = false;
+  arg_st.svgconvert = true;
   arg_st.svgconvert_binary = __quote_path__ (__svgconv_binary__ ());
   arg_st.tight = true;
   arg_st.use_color = 0; # 0=default, -1=mono, +1=color
@@ -108,6 +108,10 @@
         arg_st.force_solid = -1;
       elseif (any (strcmp (arg, {"-opengl", "-painters"})))
         arg_st.renderer = arg(2:end);
+      elseif (strcmp (arg, "-image"))
+        arg_st.renderer = "opengl";
+      elseif (strcmp (arg, "-vector"))
+        arg_st.renderer = "painters";
       elseif (strcmp (arg, "-RGBImage"))
         arg_st.rgb_output = true;
         arg_st.renderer = "opengl";
@@ -121,6 +125,8 @@
         arg_st.tight = true;
       elseif (strcmp (arg, "-svgconvert"))
         arg_st.svgconvert = true;
+      elseif (strcmp (arg, "-nosvgconvert"))
+        arg_st.svgconvert = false;
       elseif (strcmp (arg, "-textspecial"))
         arg_st.special_flag = "textspecial";
       elseif (strcmp (arg, "-fillpage"))
@@ -232,11 +238,6 @@
              arg_st.devopt);
   endif
 
-  ## By default, postprocess svg files using svgconvert.
-  if (strcmp (arg_st.devopt, "svg"))
-    arg_st.svgconvert = true;
-  endif
-
   ## By default, use the "opengl" renderer for all raster outputs
   ## supported by "imwrite".
   fmts = imformats ();
@@ -521,7 +522,7 @@
 
 
 ## Test blocks are not allowed (and not needed) for private functions
-#%!test
+%!#test
 %! opts = __print_parse_opts__ ();
 %! assert (opts.devopt, "pswrite");
 %! assert (opts.use_color, 1);
@@ -529,11 +530,11 @@
 %! assert (opts.canvas_size, [576, 432]);
 %! assert (opts.ghostscript.device, "pswrite");
 
-#%!test
+%!#test
 %! opts = __print_parse_opts__ ("test.pdf", "-S640,480");
 %! assert (opts.canvas_size, [307.2, 230.4], 0.1);
 
-#%!test
+%!#test
 %! opts = __print_parse_opts__ ("-dpsc", "-append", "-loose");
 %! assert (opts.devopt, "pswrite");
 %! assert (opts.send_to_printer, true);
@@ -542,14 +543,14 @@
 %! assert (opts.ghostscript.device, "pswrite");
 %! assert (opts.ghostscript.epscrop, false);
 
-#%!test
+%!#test
 %! opts = __print_parse_opts__ ("-deps", "-tight");
 %! assert (opts.tight, true);
 %! assert (opts.send_to_printer, true);
 %! assert (opts.use_color, -1);
 %! assert (opts.ghostscript.device, "");
 
-#%!test
+%!#test
 %! opts = __print_parse_opts__ ("-djpg", "foobar", "-mono", "-loose");
 %! assert (opts.devopt, "jpeg");
 %! assert (opts.name, "foobar.jpg");
@@ -561,7 +562,7 @@
 %! assert (opts.printer, "");
 %! assert (opts.use_color, -1);
 
-#%!test
+%!#test
 %! opts = __print_parse_opts__ ("-ddeskjet", "foobar", "-mono", "-Pmyprinter");
 %! assert (opts.ghostscript.output, "foobar.deskjet");
 %! assert (opts.ghostscript.device, "deskjet");
@@ -570,7 +571,7 @@
 %! assert (opts.printer, "-Pmyprinter");
 %! assert (opts.use_color, -1);
 
-#%!test
+%!#test
 %! opts = __print_parse_opts__ ("-f5", "-dljet3");
 %! assert (opts.ghostscript.device, "ljet3");
 %! assert (strfind (opts.ghostscript.output, ".ljet3"));
--- a/scripts/plot/util/rotate3d.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/rotate3d.m	Tue Nov 15 13:15:28 2022 -0800
@@ -41,7 +41,7 @@
 ## @seealso{pan, zoom}
 ## @end deftypefn
 
-function h = rotate3d (hfig, option)
+function rotate3d (hfig, option)
 
   ## FIXME: Presumably should implement this for Matlab compatibility.
   if (nargin == 1 && nargout > 0 && isfigure (hfig))
--- a/scripts/plot/util/struct2hdl.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/struct2hdl.m	Tue Nov 15 13:15:28 2022 -0800
@@ -395,10 +395,10 @@
 function [h, sout] = createscatter (s, par)
 
   if (isempty (s.properties.zdata))
-    ## 2D scatter
+    ## 2-D scatter
     h = scatter (s.properties.xdata, s.properties.ydata);
   else
-    ## 3D scatter
+    ## 3-D scatter
     h = scatter3 (s.properties.xdata, s.properties.ydata, s.properties.zdata);
   endif
 
@@ -542,7 +542,7 @@
                                "udatasource", "vdatasource", "wdatasource"});
 
   elseif (isfield (fields, "format"))
-    ##errorbar
+    ## errorbar
     form = s.properties.format;
     xdata = s.properties.xdata;
     ydata = s.properties.ydata;
@@ -606,7 +606,7 @@
       xdata = [];
       ydata = [];
 
-      ##build x/y matrix
+      ## Build x/y matrix
       nbar = length (bargroup);
       tmp = struct ("handle", NaN, "type", "", "children", [], "special", []);
       for ii = 1:(nbar - 1)
--- a/scripts/plot/util/subplot.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/subplot.m	Tue Nov 15 13:15:28 2022 -0800
@@ -132,7 +132,7 @@
 ## @seealso{axes, plot, gca, set}
 ## @end deftypefn
 
-function h = subplot (varargin)
+function hax = subplot (varargin)
 
   align_axes = false;
   replace_axes = false;
@@ -357,7 +357,7 @@
   end_unwind_protect
 
   if (nargout > 0)
-    h = hsubplot;
+    hax = hsubplot;
   endif
 
 endfunction
--- a/scripts/plot/util/zoom.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/plot/util/zoom.m	Tue Nov 15 13:15:28 2022 -0800
@@ -64,7 +64,7 @@
 ## Eventually we need to also support these features:
 ## @deftypefnx {} {zoom_object_handle =} zoom (@var{hfig})
 
-function h = zoom (hfig, option)
+function zoom (hfig, option)
 
   ## FIXME: Presumably should implement this for Matlab compatibility.
   if (nargin == 1 && nargout > 0 && isfigure (hfig))
--- a/scripts/polynomial/compan.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/compan.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} compan (@var{c})
+## @deftypefn {} {@var{A} =} compan (@var{c})
 ## Compute the companion matrix corresponding to polynomial coefficient vector
 ## @var{c}.
 ##
@@ -63,7 +63,7 @@
 
 function A = compan (c)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
--- a/scripts/polynomial/conv.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/conv.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} conv (@var{a}, @var{b})
-## @deftypefnx {} {} conv (@var{a}, @var{b}, @var{shape})
+## @deftypefn  {} {@var{y} =} conv (@var{a}, @var{b})
+## @deftypefnx {} {@var{y} =} conv (@var{a}, @var{b}, @var{shape})
 ## Convolve two vectors @var{a} and @var{b}.
 ##
 ## When @var{a} and @var{b} are the coefficient vectors of two polynomials, the
--- a/scripts/polynomial/pchip.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/pchip.m	Tue Nov 15 13:15:28 2022 -0800
@@ -111,11 +111,6 @@
 
   ## Compute derivatives.
   d = __pchip_deriv__ (x, y, 2);
-  if (iscomplex (y))
-    ## __pchip_deriv__ ignores imaginary part.  Do it again for imag part.
-    ## FIXME: Adapt __pchip_deriv__ to correctly handle complex input.
-    d += 1i * __pchip_deriv__ (x, imag (y), 2);
-  endif
   d1 = d(:, 1:n-1);
   d2 = d(:, 2:n);
 
--- a/scripts/polynomial/poly.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/poly.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} poly (@var{A})
-## @deftypefnx {} {} poly (@var{x})
+## @deftypefn  {} {@var{y} =} poly (@var{A})
+## @deftypefnx {} {@var{y} =} poly (@var{x})
 ## If @var{A} is a square @math{N}-by-@math{N} matrix, @code{poly (@var{A})}
 ## is the row vector of the coefficients of @code{det (z * eye (N) - A)},
 ## the characteristic polynomial of @var{A}.
@@ -61,17 +61,21 @@
     print_usage ();
   endif
 
-  m = min (size (x));
-  n = max (size (x));
-  if (m == 0)
+  if (! isnumeric (x))
+    error ("poly: input must be numeric, not type %s", class (x));
+  elseif (ndims (x) > 2)
+    error ("poly: input must be a vector or a square matrix");
+  elseif (isempty (x))
     y = 1;
     return;
-  elseif (m == 1)
+  elseif (isvector (x))
+    n = numel (x);
     v = x;
-  elseif (m == n)
+  elseif (! issquare (x))
+    error ("poly: input matrix must be square");
+  else
+    n = size (x,1);
     v = eig (x);
-  else
-    print_usage ();
   endif
 
   y = zeros (1, n+1);
@@ -113,4 +117,7 @@
 %! assert (y, [1 + 0i, -9 - 3i, 25 + 24i, -17 - 57i, -12 + 36i]);
 
 %!error <Invalid call> poly ()
-%!error poly ([1, 2, 3; 4, 5, 6])
+%!error <input must be numeric> poly ("foo")
+%!error <input must be numeric> poly ({1, "foo"; "bar", 1})
+%!error <input must be a vector or a square matrix> poly (ones (2, 2, 2))
+%!error <matrix must be square> poly ([1, 2, 3; 4, 5, 6])
--- a/scripts/polynomial/polyaffine.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/polyaffine.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} polyaffine (@var{f}, @var{mu})
+## @deftypefn {} {@var{g} =} polyaffine (@var{f}, @var{mu})
 ## Return the coefficients of the polynomial vector @var{f} after an affine
 ## transformation.
 ##
--- a/scripts/polynomial/polyder.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/polyder.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} polyder (@var{p})
-## @deftypefnx {} {[@var{k}] =} polyder (@var{a}, @var{b})
+## @deftypefn  {} {@var{k} =} polyder (@var{p})
+## @deftypefnx {} {@var{k} =} polyder (@var{a}, @var{b})
 ## @deftypefnx {} {[@var{q}, @var{d}] =} polyder (@var{b}, @var{a})
 ## Return the coefficients of the derivative of the polynomial whose
 ## coefficients are given by the vector @var{p}.
--- a/scripts/polynomial/polyint.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/polyint.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} polyint (@var{p})
-## @deftypefnx {} {} polyint (@var{p}, @var{k})
+## @deftypefn  {} {@var{q} =} polyint (@var{p})
+## @deftypefnx {} {@var{q} =} polyint (@var{p}, @var{k})
 ## Return the coefficients of the integral of the polynomial whose
 ## coefficients are represented by the vector @var{p}.
 ##
@@ -34,7 +34,7 @@
 ## @seealso{polyder, polyval}
 ## @end deftypefn
 
-function retval = polyint (p, k)
+function q = polyint (p, k)
 
   if (nargin < 1)
     print_usage ();
@@ -53,7 +53,7 @@
   lp = length (p);
 
   if (lp == 0)
-    retval = [];
+    q = [];
     return;
   endif
 
@@ -62,7 +62,7 @@
     p = p.';
   endif
 
-  retval = [(p ./ [lp:-1:1]), k];
+  q = [(p ./ [lp:-1:1]), k];
 
 endfunction
 
--- a/scripts/polynomial/polyout.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/polyout.m	Tue Nov 15 13:15:28 2022 -0800
@@ -47,7 +47,7 @@
 ## @seealso{polyreduce}
 ## @end deftypefn
 
-function y = polyout (c, x)
+function str = polyout (c, x)
 
   if (nargin < 1)
     print_usage ();
@@ -67,26 +67,26 @@
   if (n > 0)
     n1 = n+1;
 
-    tmp = coeff (c(1));
-    for ii = 2:n
-      if (real (c(ii)) < 0)
+    s = coeff (c(1));
+    for i = 2:n
+      if (real (c(i)) < 0)
         ns = " - ";
-        c(ii) = -c(ii);
+        c(i) = -c(i);
       else
         ns = " + ";
       endif
 
-      tmp = sprintf ("%s*%s^%d%s%s", tmp, x, n1-ii, ns, coeff (c(ii)));
+      s = sprintf ("%s*%s^%d%s%s", s, x, n1-i, ns, coeff (c(i)));
 
     endfor
   else
-    tmp = " ";
+    s = " ";
   endif
 
   if (nargout == 0)
-    disp (tmp);
+    disp (s);
   else
-    y = tmp;
+    str = s;
   endif
 
 endfunction
--- a/scripts/polynomial/polyreduce.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/polyreduce.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} polyreduce (@var{c})
+## @deftypefn {} {@var{p} =} polyreduce (@var{c})
 ## Reduce a polynomial coefficient vector to a minimum number of terms by
 ## stripping off any leading zeros.
 ## @seealso{polyout}
--- a/scripts/polynomial/polyvalm.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/polyvalm.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} polyvalm (@var{c}, @var{x})
+## @deftypefn {} {@var{y} =} polyvalm (@var{c}, @var{x})
 ## Evaluate a polynomial in the matrix sense.
 ##
 ## @code{polyvalm (@var{c}, @var{x})} will evaluate the polynomial in the
--- a/scripts/polynomial/ppval.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/ppval.m	Tue Nov 15 13:15:28 2022 -0800
@@ -61,7 +61,7 @@
   P = reshape (P, [d, n * k]);
   P = shiftdim (P, nd);
   P = reshape (P, [n, k, d]);
-  Pidx = P(idx(:), :);  # 2D matrix size: x = coefs*prod (d), y = prod (sxi)
+  Pidx = P(idx(:), :);  # 2-D matrix size: x = coefs*prod (d), y = prod (sxi)
 
   if (isvector (xi))
     Pidx = reshape (Pidx, [xn, k, d]);
--- a/scripts/polynomial/roots.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/polynomial/roots.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} roots (@var{c})
+## @deftypefn {} {@var{r} =} roots (@var{c})
 ##
 ## Compute the roots of the polynomial @var{c}.
 ##
--- a/scripts/prefs/ispref.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/prefs/ispref.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} ispref ("@var{group}", "@var{pref}")
-## @deftypefnx {} {} ispref ("@var{group}", @{"@var{pref1}", "@var{pref2"}, @dots{}@})
-## @deftypefnx {} {} ispref ("@var{group}")
+## @deftypefn  {} {@var{tf} =} ispref ("@var{group}", "@var{pref}")
+## @deftypefnx {} {@var{tf} =} ispref ("@var{group}", @{"@var{pref1}", "@var{pref2"}, @dots{}@})
+## @deftypefnx {} {@var{tf} =} ispref ("@var{group}")
 ## Return true if the named preference @var{pref} exists in the preference
 ## group @var{group}.
 ##
@@ -39,7 +39,7 @@
 ## @seealso{getpref, addpref, setpref, rmpref}
 ## @end deftypefn
 
-function retval = ispref (group, pref = "")
+function tf = ispref (group, pref = "")
 
   if (nargin == 0)
     print_usage ();
@@ -53,16 +53,16 @@
   endif
 
   if (nargin == 1)
-    retval = isfield (loadprefs (), group);
+    tf = isfield (loadprefs (), group);
   else
     prefs = loadprefs ();
     if (isfield (prefs, group))
-      retval = isfield (prefs.(group), pref);
+      tf = isfield (prefs.(group), pref);
     else
       if (ischar (pref))
-        retval = false;
+        tf = false;
       else
-        retval = false (size (pref));
+        tf = false (size (pref));
       endif
     endif
   endif
--- a/scripts/prefs/prefdir.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/prefs/prefdir.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} prefdir
-## @deftypefnx {} {} prefdir (1)
-## @deftypefnx {} {@var{dir} =} prefdir
+## @deftypefn  {} {@var{dir} =} prefdir
+## @deftypefnx {} {@var{dir} =} prefdir (1)
 ## Return the directory that holds the preferences for Octave.
 ##
 ## Examples:
--- a/scripts/prefs/private/prefsfile.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/prefs/private/prefsfile.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,12 +24,12 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} prefsfile ()
+## @deftypefn {} {@var{fname} =} prefsfile ()
 ## Return the full path and name of the file containing Octave preferences.
 ## @end deftypefn
 
-function retval = prefsfile ()
+function fname = prefsfile ()
 
-  retval = [prefdir() filesep() ".octave_prefs"];
+  fname = [prefdir() filesep() ".octave_prefs"];
 
 endfunction
--- a/scripts/profiler/html/flat_entry.html	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/profiler/html/flat_entry.html	Tue Nov 15 13:15:28 2022 -0800
@@ -1,5 +1,5 @@
 <tr>
-  <td><a href="func-%num.html">%name</a></td>
+  <td><a href="function-%num.html">%name</a></td>
   <td>%timeabs</td>
   <td>%timerel</td>
   <td>%calls</td>
--- a/scripts/profiler/profexplore.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/profiler/profexplore.m	Tue Nov 15 13:15:28 2022 -0800
@@ -36,13 +36,10 @@
 ## @seealso{profile, profshow}
 ## @end deftypefn
 
-## Built-in profiler.
 function profexplore (data)
 
   if (nargin == 0)
     data = profile ("info");
-  elseif (nargin < 1)
-    print_usage ();
   endif
 
   ## The actual work is done by a recursive worker function, since that
--- a/scripts/profiler/profexport.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/profiler/profexport.m	Tue Nov 15 13:15:28 2022 -0800
@@ -44,7 +44,6 @@
 ## @seealso{profshow, profexplore, profile}
 ## @end deftypefn
 
-## Built-in profiler.
 function profexport (dir, name = "", data)
 
   if (nargin < 1)
@@ -88,7 +87,7 @@
 
   __writeFlat (fullfile (dir, "index.html"), name, data.FunctionTable);
   for i = 1 : length (data.FunctionTable)
-    __writeFunc (fullfile (dir, sprintf ("func-%d.html", i)), name, ...
+    __writeFunc (fullfile (dir, sprintf ("function-%d.html", i)), name, ...
                  data.FunctionTable, i);
   endfor
 
@@ -176,7 +175,7 @@
     return;
   endif
 
-  template = "<a href='func-%num.html'>%name</a>";
+  template = "<a href='function-%num.html'>%name</a>";
 
   lst = "";
   for i = 1 : length (inds)
--- a/scripts/profiler/profshow.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/profiler/profshow.m	Tue Nov 15 13:15:28 2022 -0800
@@ -43,7 +43,6 @@
 ## @seealso{profexplore, profile}
 ## @end deftypefn
 
-## Built-in profiler.
 function profshow (data, n = 20)
 
   if (nargin == 0)
--- a/scripts/set/ismember.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/set/ismember.m	Tue Nov 15 13:15:28 2022 -0800
@@ -122,7 +122,7 @@
 
   by_rows = any (strcmp ("rows", varargin));
   ## FIXME: uncomment if bug #56692 is addressed.
-  ##optlegacy = any (strcmp ("legacy", varargin));
+  ## optlegacy = any (strcmp ("legacy", varargin));
 
   if (! by_rows)
     s = s(:);
--- a/scripts/set/powerset.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/set/powerset.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} powerset (@var{a})
-## @deftypefnx {} {} powerset (@var{a}, "rows")
+## @deftypefn  {} {@var{p} =} powerset (@var{a})
+## @deftypefnx {} {@var{p} =} powerset (@var{a}, "rows")
 ## Compute the powerset (all subsets) of the set @var{a}.
 ##
 ## The set @var{a} must be a numerical matrix or a cell array of strings.  The
--- a/scripts/set/unique.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/set/unique.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} unique (@var{x})
-## @deftypefnx {} {} unique (@var{x}, "rows")
-## @deftypefnx {} {} unique (@dots{}, "sorted")
-## @deftypefnx {} {} unique (@dots{}, "stable")
+## @deftypefn  {} {@var{y} =} unique (@var{x})
+## @deftypefnx {} {@var{y} =} unique (@var{x}, "rows")
+## @deftypefnx {} {@var{y} =} unique (@dots{}, "sorted")
+## @deftypefnx {} {@var{y} =} unique (@dots{}, "stable")
 ## @deftypefnx {} {[@var{y}, @var{i}, @var{j}] =} unique (@dots{})
 ## @deftypefnx {} {[@var{y}, @var{i}, @var{j}] =} unique (@dots{}, "first")
 ## @deftypefnx {} {[@var{y}, @var{i}, @var{j}] =} unique (@dots{}, "last")
@@ -305,6 +305,7 @@
 %! [y,i,~] = unique ([4,4,2,2,2,3,1], "stable");
 %! assert (y, [4,2,3,1]);
 %! assert (i, [1;3;6;7]);
+%! ## FIXME: 'j' input not calculated with stable
 %! ##assert (j, []);
 
 %!test
@@ -337,6 +338,7 @@
 %! [y,i,~] = unique (A, "rows", "stable");
 %! assert (y, [4,5,6; 1,2,3]);
 %! assert (A(i,:), y);
+%! ## FIXME: 'j' output not calculated correctly with "stable"
 %! ##assert (y(j,:), A);
 
 ## Test "legacy" option
--- a/scripts/set/uniquetol.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/set/uniquetol.m	Tue Nov 15 13:15:28 2022 -0800
@@ -33,7 +33,8 @@
 ## Two values, @var{x} and @var{y}, are within relative tolerance if
 ## @code{abs (@var{x} - @var{y}) <= @var{tol} * max (abs (@var{A}(:)))}.
 ##
-## The input @var{A} must be a floating point type (double or single).
+## The input @var{A} must be a real (non-complex) floating point type (double
+## or single).
 ##
 ## If @var{tol} is unspecified, the default tolerance is 1e-12 for double
 ## precision input or 1e-6 for single precision input.
@@ -89,7 +90,7 @@
 ## ## Inverse_Function (Function (x)) should return exactly x
 ## y = exp (log (x));
 ## D = unique ([x, y])
-## @result{} [1.0000   2.0000   3.0000   3.0000   4.0000   5.0000   5.0000]
+## @result{} [1   2   3   3   4   5   5]
 ## C = uniquetol ([x, y])
 ## @result{} [1   2   3   4   5]
 ## @end group
@@ -98,43 +99,36 @@
 ## @seealso{unique, union, intersect, setdiff, setxor, ismember}
 ## @end deftypefn
 
-
 function [c, ia, ic] = uniquetol (A, varargin)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  if (isempty (A))
-    c = A;
-    ia = [];
-    ic = [];
-    return;
-  endif
-
-  if (! isfloat (A) || iscomplex (A))
+  if (! (isfloat (A) && isreal (A)))
     error ("Octave:uniquetol:unsupported-type",
-           "uniquetol: A must be a double or single precision non-complex array");
+           "uniquetol: A must be a real floating point array");
   endif
 
   if (nargin == 1 || ischar (varargin{1}))
     tol = ifelse (isa (A, "double"), 1e-12, 1e-6);
-  elseif (! (isfloat (varargin{1}) && isscalar (varargin{1}))
-          || iscomplex (varargin{1}))
-    error ("Octave:uniquetol:unsupported-type",
-           "uniquetol: TOL must be a double or single precision non-complex scalar");
   else
     tol = varargin{1};
     varargin(1) = [];
+    if (! (isfloat (tol) && isreal (tol) && isscalar (tol)))
+      error ("Octave:uniquetol:unsupported-type",
+             "uniquetol: TOL must be a real floating point scalar");
+     endif
   endif
 
   if (mod (numel (varargin), 2))
-    error ("uniquetol: PROPERTY/VALUE arguments must be passed in pairs");
+    error ("uniquetol: PROPERTY/VALUE arguments must occur in pairs");
   endif
 
   by_rows = false;
   output_all_indices = false;
   data_scale = [];
+  calc_indices = nargout > 1;
 
   for k = 1:2:numel (varargin)
     if (! ischar (varargin{k}))
@@ -147,12 +141,12 @@
         error ('uniquetol: A must be a 2-D array when "ByRows" is true');
       endif
     elseif (strcmpi (varargin{k}, "OutputAllIndices"))
-      output_all_indices = logical (varargin{k+1});
+      output_all_indices = logical (varargin{k+1}) & calc_indices;
     elseif (strcmpi (varargin{k}, "DataScale"))
       data_scale = varargin{k+1}(:).';
       if (! isfloat (data_scale) || iscomplex (data_scale)
           || any (data_scale(:) < 0) || any (isnan (data_scale(:))))
-        error ("uniquetol: DataScale must be a non-NaN, positive floating point scalar or vector");
+        error ("uniquetol: DataScale must be a positive floating point scalar or vector, without NaNs");
       endif
       cols_data_scale = columns (data_scale);
       if (cols_data_scale != 1 && cols_data_scale != columns (A))
@@ -163,6 +157,25 @@
     endif
   endfor
 
+  if (isempty (A))
+    ## hack for Matlab empty input compatibility
+    sz_A = size (A);
+    if (by_rows)
+      c = A;
+      sz_A(2) = 1;
+      ia = ones (sz_A);
+      ic = ones (sz_A);
+    else
+      c = ones (0, 1, class (A));
+      if (sz_A(1) == 1)
+        c = c.';
+      endif
+      ia = ones (0, 1);
+      ic = ones (0, 1);
+    endif
+    return;
+  endif
+
   if (isempty (data_scale))
     data_scale = max (abs (A(! isinf (A))(:)));
   endif
@@ -170,43 +183,48 @@
   tol *= data_scale;
 
   if (by_rows)
+    ## Start matrix in sorted order, retain sorting and inverting indices.
+    if (calc_indices)
+      [A, srtA] = sortrows (A);
+      [~, inv_srtA] = sort (srtA);
+    else
+      A = sortrows (A);
+    endif
 
-    nr = rows (A);
-    nc = columns (A);
-    Iall = zeros (nr, 1);
-    I = NaN (nc, 1);
+    [nr, nc] = size (A);
+    I = zeros (nr, 1);
     ia = {};
-    J = NaN (nc, 1);
+    J = zeros (nr, 1);
     j = 1;
-    ii = 0;
 
     for i = 1:nr
-      if (any (Iall == i))
-        continue;
+      if (J(i))
+        continue;  # row previously compared equal
+      endif
+
+      Arow_i = A(i,:);
+      eq_rows = all (abs (A - Arow_i) <= tol, 2);
+      eq_rows(i,1) = eq_rows(i,1) || any (! isfinite (Arow_i), 2);
+      if (output_all_indices)
+        ia_tmp = find (eq_rows);
+        ia{end+1,1} = sort (srtA(ia_tmp));
       else
-        equ = all (abs (A - A(i,:)) <= tol, 2);
-        equ(i,1) = equ(i,1) || any (! isfinite (A(i,:)), 2);
-        sumeq = sum (equ);
-        ia_tmp = find (equ);
-        if (output_all_indices)
-          ia{end+1} = ia_tmp;
-        endif
-        Iall(ii+(1:sumeq)) = ia_tmp;
-        I(j) = ia_tmp(1);
-        J(equ) = j;
-        ii += sumeq;
-        j += 1;
+        ia_tmp = find (eq_rows, 1);
       endif
+      I(j) = ia_tmp(1);
+      J(eq_rows) = j;
+      j += 1;
     endfor
 
-    I(isnan (I)) = [];
-    J(isnan (J)) = [];
+    I = I(1:j-1);
     c = A(I,:);
 
-    if (! output_all_indices)
-      ia = I(1:j-1);
+    if (calc_indices)
+      if (! output_all_indices)
+        ia = srtA(I(1:j-1));
+      endif
+      ic = J(inv_srtA);
     endif
-    ic = J;
 
   else
     isrowvec = isrow (A);
@@ -247,7 +265,7 @@
     endif
     if (output_all_indices)
       nu = cumsumue(end);
-      ia = cell (1, nu);
+      ia = cell (nu, 1);
       for k = 1:nu
         ia{k} = setdiff (sAi(cumsumue==k), findisnanA);
       endfor
@@ -256,20 +274,31 @@
     endif
 
     if (anyisnanA)
-      rowsc1 = rows (c) + (1:sum (isnanA));
+      rowsc1 = [1:sum(isnanA(:))]';
+      if (! all (isnanA))
+        rowsc1 += rows (c);
+      endif
       c(rowsc1) = NaN;
-      ia(rowsc1) = findisnanA;
       ic(isnanA) = rowsc1;
+      if (output_all_indices)
+        ia(rowsc1) = num2cell (findisnanA);
+      else
+        ia(rowsc1) = findisnanA;
+      endif
+
+      ## if numel (c) was 1, appending NaNs creates a row vector instead of
+      ## expected column vector.
+      if (isrow (c))
+        c = c.';
+      endif
     endif
 
-    ## FIXME: Matlab-compatible orientation of output
-    ## Actually, Matlab prefers row vectors (2021/03/24), but this is different
-    ## from all the other set functions which prefer column vectors.  Assume
-    ## that this is a bug in Matlab's implementation and prefer column vectors.
+    ## Matlab compatibility: Outputs are column vectors unless the input
+    ## is a row vector, in which case the output c is also a row vector.
+    ## ia and ic are always column vectors. (verified Matlab 2022a)
     if (isrowvec)
       c = c.';
     endif
-
   endif
 
 endfunction
@@ -277,14 +306,11 @@
 
 %!assert (uniquetol ([1 1 2; 1 2 1; 1 1 2+10*eps]), [1;2])
 %!assert (uniquetol ([1 1 2; 1 0 1; 1 1 2+10*eps], "byrows", true),
-%!        [1 1 2; 1 0 1])
-%!assert (uniquetol ([]), [])
+%!        [1 0 1; 1 1 2])
 %!assert (uniquetol ([1]), [1])
 %!assert (uniquetol ([2, 1]), [1, 2]);
 %!assert (uniquetol ([1; 2]), [1; 2])
 %!assert (uniquetol ([-Inf, 1, NaN, Inf, NaN, Inf]), [-Inf, 1, Inf, NaN, NaN]);
-%!assert (uniquetol (zeros (1, 0)), zeros (1, 0));
-%!assert (uniquetol (zeros (1, 0), "byrows", true), zeros (1, 0))
 %!assert (uniquetol ([1,2,2,3,2,4], "byrows", true), [1,2,2,3,2,4])
 %!assert (uniquetol ([1,2,2,3,2,4]), [1,2,3,4])
 %!assert (uniquetol ([1,2,2,3,2,4].', "byrows", true), [1;2;3;4])
@@ -296,6 +322,12 @@
 %!assert (uniquetol (single ([1,2,2,3,2,4].'), "byrows", true),
 %!        single ([1;2;3;4]))
 
+## Test 2D array sorting
+%!test
+%! a = [magic(3); 2 * magic(3)];
+%! assert (uniquetol (a), [1:10,12,14,16,18]')
+%! assert (uniquetol (a, "byrows", true), sortrows (a))
+
 ## Matlab compatibility of output
 %!test
 %! x = 1:0.045:3;
@@ -314,8 +346,8 @@
 %! A = [2, 3, 4; 2, 3, 4];
 %! [c, ia, ic] = uniquetol (A, "byrows", true);
 %! assert (c, [2, 3, 4]);
-%! assert (A(ia,:), c);
-%! assert (c(ic,:), A);
+%! assert (ia, 1);
+%! assert (ic, [1;1]);
 
 %!test
 %! x = (2:7)'*pi;
@@ -328,7 +360,7 @@
 %! A = [0.06, 0.21, 0.38; 0.38, 0.21, 0.39; 0.54, 0.56, 0.41; 0.46, 0.52, 0.95];
 %! B = log (exp (A));
 %! C = uniquetol ([A; B], "ByRows", true);
-%! assert (C, A);
+%! assert (C, sortrows(A), 10*eps);
 
 ## Test "DataScale" Property
 %!test
@@ -341,23 +373,128 @@
 %! A = [.1 .2 .3 10];
 %! [C, ia, ic] = uniquetol (A, .1, "OutputAllIndices", true);
 %! assert (C, [.1, 10]);
-%! assert (ia, {(1:3)', 4});
+%! assert (ia, {(1:3)'; 4});
 %! assert (ic, [1; 1; 1; 2]);
 
+## Test NaN inputs
+%!assert (uniquetol (NaN), NaN)
+%!assert (uniquetol ([NaN NaN]), [NaN NaN])
+%!assert (uniquetol ([NaN NaN]'), [NaN NaN]')
+%!assert (uniquetol (NaN(2,2)), NaN(4,1))
+
+%!test
+%! a = [magic(3); 2 * magic(3)];
+%! a(4:5) = NaN;
+%! [c, ia, ic] = uniquetol (a);
+%! assert (c, [1:10,12,14,18, NaN, NaN]');
+%! assert (ia, [7,10,2,3,8,13,14,1,9,11,16,17,12,4,5]');
+%! assert (ic, [8,3,4,14,15,8,1,5,9,2,10,13,6,7,2,11,12,4]');
+%! [c, ia, ic] = uniquetol (single (a));
+%! assert (class (c), "single");
+%! assert (class (ia), "double");
+%! assert (class (ic), "double");
+%! [c, ia, ic] = uniquetol (a, "ByRows", true);
+%! assert (c, sortrows (a));
+%! assert (ia, [2,3,1,6,4,5]');
+%! assert (ic, [3,1,2,5,6,4]');
+%! [c, ia, ic] = uniquetol (single (a), "ByRows", true);
+%! assert (class (c), "single");
+%! assert (class (ia), "double");
+%! assert (class (ic), "double");
+%! [c, ia, ic] = uniquetol (a, "OutputAllIndices", true);
+%! assert (ia, {7;[10;15];2;[3;18];8;13;14;[1;6];9;11;16;17;12;4;5});
+%! [c, ia, ic] = uniquetol (single (a), "OutputAllIndices", true);
+%! assert (class (c), "single");
+%! assert (class (ia{1}), "double");
+%! assert (class (ic), "double");
+%! [c, ia, ic] = uniquetol (a, "OutputAllIndices", true, "ByRows", true);
+%! assert (ia, {2;3;1;6;4;5});
+%! [c, ia, ic] = uniquetol (single (a),
+%!                          "OutputAllIndices", true, "ByRows", true);
+%! assert (class (c), "single");
+%! assert (class (ia{1}), "double");
+%! assert (class (ic), "double");
+
+## Test empty input compatibility
+%!test
+%! [c, ia, ic] = uniquetol ([]);
+%! assert (c, ones (0,1));
+%! assert (ia, ones (0,1));
+%! assert (ic, ones (0,1));
+%!test
+%! [c, ia, ic] = uniquetol ([], "byrows", true);
+%! assert (c, []);
+%! assert (ia, ones (0,1));
+%! assert (ic, ones (0,1));
+%!test
+%! [c, ia, ic] = uniquetol (ones (0,1));
+%! assert (c, ones (0,1));
+%! assert (ia, ones (0,1));
+%! assert (ic, ones (0,1));
+%!test
+%! [c, ia, ic] = uniquetol (ones (0,1), "byrows", true);
+%! assert (c, ones (0,1));
+%! assert (ia, ones (0,1));
+%! assert (ic, ones (0,1));
+%!test
+%! [c, ia, ic] = uniquetol (ones (1,0));
+%! assert (c, ones (1,0));
+%! assert (ia, ones (0,1));
+%! assert (ic, ones (0,1));
+%!test
+%! [c, ia, ic] = uniquetol (ones (1,0), "byrows", true);
+%! assert (c, ones (1,0));
+%! assert (ia, 1);
+%! assert (ic, 1);
+%!test
+%! [c, ia, ic] = uniquetol (ones (1,0,2));
+%! assert (c, ones (1,0));
+%! assert (ia, ones (0,1));
+%! assert (ic, ones (0,1));
+%!test
+%! [c, ia, ic] = uniquetol (ones (0,1,2));
+%! assert (c, ones (0,1));
+%! assert (ia, ones (0,1));
+%! assert (ic, ones (0,1));
+%!test
+%! [c, ia, ic] = uniquetol (ones (1,2,0));
+%! assert (c, ones (1,0));
+%! assert (ia, ones (0,1));
+%! assert (ic, ones (0,1));
+%!test
+%! [c, ia, ic] = uniquetol (single ([]));
+%! assert (class (c), "single");
+%! assert (class (ia), "double");
+%! assert (class (ic), "double");
+%!test
+%! [c, ia, ic] = uniquetol (single ([]), "byrows", true);
+%! assert (class (c), "single");
+%! assert (class (ia), "double");
+%! assert (class (ic), "double");
+%!test
+%! [c, ia, ic] = uniquetol (single ([]), "OutputAllIndices", true);
+%! assert (class (c), "single");
+%! assert (class (ia), "double");
+%! assert (class (ic), "double");
+
+
 ## Test input validation
 %!error <Invalid call> uniquetol ()
-%!error <A must be a double or single precision> uniquetol (int8 (1))
-%!error <A must be .* non-complex> uniquetol (1i)
-%!error <TOL must be a double .* precision> uniquetol (1, int8 (1))
-%!error <TOL must be a .* scalar> uniquetol (1, [1, 2])
-%!error <TOL must be .* non-complex> uniquetol (1, 1i)
-%!error <arguments must be passed in pairs> uniquetol (1, 2, "byrows")
+%!error <A must be a real floating point array> uniquetol (int8 (1))
+%!error <A must be a real floating point array> uniquetol (1i)
+%!error <TOL must be a real floating point scalar> uniquetol (1, int8 (1))
+%!error <TOL must be a real floating point scalar> uniquetol (1, [1, 2])
+%!error <TOL must be a real floating point scalar> uniquetol (1, 1i)
+%!error <arguments must occur in pairs> uniquetol (1, 2, "byrows")
 %!error <PROPERTY must be a string> uniquetol (1, 2, 3, "bar")
 %!error <A must be a 2-D array> uniquetol (ones (2,2,2), "byrows", true)
+%!error <A must be a 2-D array> uniquetol (ones (0,1,2), "byrows", true)
+%!error <A must be a 2-D array> uniquetol (ones (1,0,2), "byrows", true)
+%!error <A must be a 2-D array> uniquetol (ones (1,2,0), "byrows", true)
 %!error <DataScale must be a .* floating point> uniquetol (1, "DataScale", '1')
+%!error <DataScale must be .* positive> uniquetol (1, "DataScale", 1i)
 %!error <DataScale must be .* positive> uniquetol (1, "DataScale", -1)
-%!error <DataScale must be .* positive> uniquetol (1, "DataScale", 1i)
-%!error <DataScale must be a non-NaN> uniquetol (1, "DataScale", NaN)
+%!error <DataScale must be .* without NaNs> uniquetol (1, "DataScale", NaN)
 %!error <invalid DataScale size> uniquetol (1, "DataScale", [1 2])
 %!error <unknown property 'foo'> uniquetol (1, "foo", "bar")
 %!error <unknown property 'foo'> uniquetol (1, 2, "foo", "bar")
--- a/scripts/signal/arch_rnd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/arch_rnd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} arch_rnd (@var{a}, @var{b}, @var{t})
+## @deftypefn {} {@var{y} =} arch_rnd (@var{a}, @var{b}, @var{t})
 ## Simulate an ARCH sequence of length @var{t} with AR coefficients @var{b} and
 ## CH coefficients @var{a}.
 ##
--- a/scripts/signal/arma_rnd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/arma_rnd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} arma_rnd (@var{a}, @var{b}, @var{v}, @var{t}, @var{n})
+## @deftypefn {} {@var{x} =} arma_rnd (@var{a}, @var{b}, @var{v}, @var{t}, @var{n})
 ## Return a simulation of the ARMA model.
 ##
 ## The ARMA model is defined by
--- a/scripts/signal/autoreg_matrix.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/autoreg_matrix.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} autoreg_matrix (@var{y}, @var{k})
+## @deftypefn {} {@var{x} =} autoreg_matrix (@var{y}, @var{k})
 ## Given a time series (vector) @var{y}, return a matrix with ones in the first
 ## column and the first @var{k} lagged values of @var{y} in the other columns.
 ##
@@ -35,7 +35,7 @@
 ## The resulting matrix may be used as a regressor matrix in autoregressions.
 ## @end deftypefn
 
-function X = autoreg_matrix (y, k)
+function x = autoreg_matrix (y, k)
 
   if (nargin != 2)
     print_usage ();
@@ -47,9 +47,9 @@
 
   T = length (y);
   y = reshape (y, T, 1);
-  X = ones (T, k+1);
+  x = ones (T, k+1);
   for j = 1 : k
-    X(:, j+1) = [(zeros (j, 1)); y(1:T-j)];
+    x(:, j+1) = [(zeros (j, 1)); y(1:T-j)];
   endfor
 
 endfunction
--- a/scripts/signal/bartlett.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/bartlett.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} bartlett (@var{m})
+## @deftypefn {} {@var{c} =} bartlett (@var{m})
 ## Return the filter coefficients of a Bartlett (triangular) window of length
 ## @var{m}.
 ##
@@ -35,11 +35,11 @@
 
 function c = bartlett (m)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
-  if (! (isscalar (m) && (m == fix (m)) && (m > 0)))
+  if (! (isscalar (m) && m > 0 && m == fix (m)))
     error ("bartlett: M must be a positive integer");
   endif
 
--- a/scripts/signal/blackman.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/blackman.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} blackman (@var{m})
-## @deftypefnx {} {} blackman (@var{m}, "periodic")
-## @deftypefnx {} {} blackman (@var{m}, "symmetric")
+## @deftypefn  {} {@var{c} =} blackman (@var{m})
+## @deftypefnx {} {@var{c} =} blackman (@var{m}, "periodic")
+## @deftypefnx {} {@var{c} =} blackman (@var{m}, "symmetric")
 ## Return the filter coefficients of a @nospell{Blackman} window of length
 ## @var{m}.
 ##
@@ -46,7 +46,7 @@
     print_usage ();
   endif
 
-  if (! (isscalar (m) && (m == fix (m)) && (m > 0)))
+  if (! (isscalar (m) && m > 0 && m == fix (m)))
     error ("blackman: M must be a positive integer");
   endif
 
--- a/scripts/signal/detrend.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/detrend.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} detrend (@var{x}, @var{p})
+## @deftypefn {} {@var{y} =} detrend (@var{x}, @var{p})
 ## If @var{x} is a vector, @code{detrend (@var{x}, @var{p})} removes the
 ## best fit of a polynomial of order @var{p} from the data @var{x}.
 ##
@@ -55,7 +55,7 @@
   elseif (ischar (p) && strcmpi (p, "linear"))
     p = 1;
   elseif (! isscalar (p) || p < 0 || p != fix (p))
-    error ("detrend: P must be \"constant\", \"linear\", or a positive integer");
+    error ('detrend: P must be "constant", "linear", or a positive integer');
   endif
 
   [m, n] = size (x);
@@ -107,4 +107,3 @@
 %!error detrend (1, "invalid")
 %!error detrend (1, -1)
 %!error detrend (1, 1.25)
-
--- a/scripts/signal/durbinlevinson.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/durbinlevinson.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} durbinlevinson (@var{c}, @var{oldphi}, @var{oldv})
+## @deftypefn {} {[@var{newphi}, @var{newv}] =} durbinlevinson (@var{c}, @var{oldphi}, @var{oldv})
 ## Perform one step of the @nospell{Durbin-Levinson} algorithm.
 ##
 ## The vector @var{c} specifies the autocovariances
--- a/scripts/signal/fftconv.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/fftconv.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fftconv (@var{x}, @var{y})
-## @deftypefnx {} {} fftconv (@var{x}, @var{y}, @var{n})
+## @deftypefn  {} {@var{c} =} fftconv (@var{x}, @var{y})
+## @deftypefnx {} {@var{c} =} fftconv (@var{x}, @var{y}, @var{n})
 ## Convolve two vectors using the FFT for computation.
 ##
 ## @code{c = fftconv (@var{x}, @var{y})} returns a vector of length equal to
--- a/scripts/signal/fftfilt.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/fftfilt.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fftfilt (@var{b}, @var{x})
-## @deftypefnx {} {} fftfilt (@var{b}, @var{x}, @var{n})
+## @deftypefn  {} {@var{y} =} fftfilt (@var{b}, @var{x})
+## @deftypefnx {} {@var{y} =} fftfilt (@var{b}, @var{x}, @var{n})
 ## Filter @var{x} with the FIR filter @var{b} using the FFT.
 ##
 ## If @var{x} is a matrix, filter each column of the matrix.
--- a/scripts/signal/fftshift.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/fftshift.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fftshift (@var{x})
-## @deftypefnx {} {} fftshift (@var{x}, @var{dim})
+## @deftypefn  {} {@var{y} =} fftshift (@var{x})
+## @deftypefnx {} {@var{y} =} fftshift (@var{x}, @var{dim})
 ## Perform a shift of the vector @var{x}, for use with the @code{fft} and
 ## @code{ifft} functions, in order to move the frequency 0 to the center of
 ## the vector or matrix.
@@ -49,7 +49,7 @@
 ## @seealso{ifftshift}
 ## @end deftypefn
 
-function retval = fftshift (x, dim)
+function y = fftshift (x, dim)
 
   if (nargin < 1)
     print_usage ();
@@ -69,12 +69,12 @@
     idx = cell ();
     idx = repmat ({':'}, nd, 1);
     idx{dim} = [sz2+1:sz(dim), 1:sz2];
-    retval = x(idx{:});
+    y = x(idx{:});
   else
     if (isvector (x))
       xl = length (x);
       xx = ceil (xl/2);
-      retval = x([xx+1:xl, 1:xx]);
+      y = x([xx+1:xl, 1:xx]);
     else
       nd = ndims (x);
       sz = size (x);
@@ -83,7 +83,7 @@
       for i = 1:nd
         idx{i} = [sz2(i)+1:sz(i), 1:sz2(i)];
       endfor
-      retval = x(idx{:});
+      y = x(idx{:});
     endif
   endif
 
--- a/scripts/signal/fractdiff.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/fractdiff.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} fractdiff (@var{x}, @var{d})
+## @deftypefn {} {@var{fd} =} fractdiff (@var{x}, @var{d})
 ## Compute the fractional differences @math{(1-L)^d x} where @math{L}
 ## denotes the lag-operator and @math{d} is greater than -1.
 ## @end deftypefn
--- a/scripts/signal/hamming.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/hamming.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} hamming (@var{m})
-## @deftypefnx {} {} hamming (@var{m}, "periodic")
-## @deftypefnx {} {} hamming (@var{m}, "symmetric")
+## @deftypefn  {} {@var{c} =} hamming (@var{m})
+## @deftypefnx {} {@var{c} =} hamming (@var{m}, "periodic")
+## @deftypefnx {} {@var{c} =} hamming (@var{m}, "symmetric")
 ## Return the filter coefficients of a Hamming window of length @var{m}.
 ##
 ## If the optional argument @qcode{"periodic"} is given, the periodic form
@@ -45,7 +45,7 @@
     print_usage ();
   endif
 
-  if (! (isscalar (m) && (m == fix (m)) && (m > 0)))
+  if (! (isscalar (m) && m > 0 && m == fix (m)))
     error ("hamming: M must be a positive integer");
   endif
 
--- a/scripts/signal/hanning.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/hanning.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} hanning (@var{m})
-## @deftypefnx {} {} hanning (@var{m}, "periodic")
-## @deftypefnx {} {} hanning (@var{m}, "symmetric")
+## @deftypefn  {} {@var{c} =} hanning (@var{m})
+## @deftypefnx {} {@var{c} =} hanning (@var{m}, "periodic")
+## @deftypefnx {} {@var{c} =} hanning (@var{m}, "symmetric")
 ## Return the filter coefficients of a Hanning window of length @var{m}.
 ##
 ## If the optional argument @qcode{"periodic"} is given, the periodic form
@@ -45,7 +45,7 @@
     print_usage ();
   endif
 
-  if (! (isscalar (m) && (m == fix (m)) && (m > 0)))
+  if (! (isscalar (m) && m > 0 && m == fix (m)))
     error ("hanning: M must be a positive integer");
   endif
 
--- a/scripts/signal/hurst.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/hurst.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} hurst (@var{x})
+## @deftypefn {} {@var{H} =} hurst (@var{x})
 ## Estimate the Hurst parameter of sample @var{x} via the rescaled range
 ## statistic.
 ##
@@ -33,14 +33,14 @@
 
 function H = hurst (x)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
   if (isscalar (x))
     error ("hurst: X must not be a scalar");
   elseif (isvector (x))
-    x = reshape (x, length (x), 1);
+    x = x(:);  # always use column vector
   endif
 
   [xr, xc] = size (x);
--- a/scripts/signal/ifftshift.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/ifftshift.m	Tue Nov 15 13:15:28 2022 -0800
@@ -33,40 +33,40 @@
 ## @seealso{fftshift}
 ## @end deftypefn
 
-function retval = ifftshift (x, dim)
+function x = ifftshift (y, dim)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  if (! (isnumeric (x) || islogical (x) || ischar (x)))
-    error ("ifftshift: X must be a vector or matrix");
+  if (! (isnumeric (y) || islogical (y) || ischar (y)))
+    error ("ifftshift: Y must be a vector or matrix");
   endif
 
   if (nargin == 2)
     if (! (isscalar (dim) && dim > 0 && dim == fix (dim)))
       error ("ifftshift: dimension DIM must be a positive integer");
     endif
-    nd = ndims (x);
-    sz = size (x);
+    nd = ndims (y);
+    sz = size (y);
     sz2 = floor (sz(dim) / 2);
     idx = repmat ({':'}, nd, 1);
     idx{dim} = [sz2+1:sz(dim), 1:sz2];
-    retval = x(idx{:});
+    x = y(idx{:});
   else
-    if (isvector (x))
-      xl = length (x);
-      xx = floor (xl/2);
-      retval = x([xx+1:xl, 1:xx]);
+    if (isvector (y))
+      yl = length (y);
+      y2 = floor (yl/2);
+      x = y([y2+1:yl, 1:y2]);
     else
-      nd = ndims (x);
-      sz = size (x);
+      nd = ndims (y);
+      sz = size (y);
       sz2 = floor (sz ./ 2);
       idx = cell ();
       for i = 1:nd
         idx{i} = [sz2(i)+1:sz(i), 1:sz2(i)];
       endfor
-      retval = x(idx{:});
+      x = y(idx{:});
     endif
   endif
 
--- a/scripts/signal/movfun.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/movfun.m	Tue Nov 15 13:15:28 2022 -0800
@@ -227,29 +227,29 @@
 
   ## Obtain function for boundary conditions
   if (isnumeric (bc))
-    bcfunc = @replaceval_bc;
-    bcfunc (true, bc);  # initialize replaceval function with value
+    bcfcn = @replaceval_bc;
+    bcfcn (true, bc);  # initialize replaceval function with value
   else
     switch (tolower (bc))
       case "shrink"
-        bcfunc = @shrink_bc;
+        bcfcn = @shrink_bc;
 
       case "discard"
-        bcfunc = [];
+        bcfcn = [];
         C -= length (Cpre);
         Cpre = Cpos = [];
         N = length (C);
         szx(dperm(1)) = N;
 
       case "fill"
-        bcfunc = @replaceval_bc;
-        bcfunc (true, NaN);
+        bcfcn = @replaceval_bc;
+        bcfcn (true, NaN);
 
       case "same"
-        bcfunc = @same_bc;
+        bcfcn = @same_bc;
 
       case "periodic"
-        bcfunc = @periodic_bc;
+        bcfcn = @periodic_bc;
 
     endswitch
   endif
@@ -279,7 +279,7 @@
   ## FIXME: Is it faster with cellfun?  Don't think so, but needs testing.
   y = zeros (N, ncols, soutdim);
   parfor i = 1:ncols
-    y(:,i,:) = movfun_oncol (fcn_, x(:,i), wlen, bcfunc,
+    y(:,i,:) = movfun_oncol (fcn_, x(:,i), wlen, bcfcn,
                              slc, C, Cpre, Cpos, win, soutdim);
   endparfor
 
@@ -290,7 +290,7 @@
 
 endfunction
 
-function y = movfun_oncol (fcn, x, wlen, bcfunc, slcidx, C, Cpre, Cpos, win, odim)
+function y = movfun_oncol (fcn, x, wlen, bcfcn, slcidx, C, Cpre, Cpos, win, odim)
 
   N = length (Cpre) + length (C) + length (Cpos);
   y = NA (N, odim);
@@ -300,10 +300,10 @@
 
   ## Process boundaries
   if (! isempty (Cpre))
-    y(Cpre,:) = bcfunc (fcn, x, Cpre, win, wlen, odim);
+    y(Cpre,:) = bcfcn (fcn, x, Cpre, win, wlen, odim);
   endif
   if (! isempty (Cpos))
-    y(Cpos,:) = bcfunc (fcn, x, Cpos, win, wlen, odim);
+    y(Cpos,:) = bcfcn (fcn, x, Cpos, win, wlen, odim);
   endif
 
 endfunction
--- a/scripts/signal/movslice.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/movslice.m	Tue Nov 15 13:15:28 2022 -0800
@@ -36,14 +36,15 @@
 ## is symmetric and includes @w{@code{(@var{wlen} - 1) / 2}} elements on either
 ## side of the central element.  If @var{wlen} is even the window is asymmetric
 ## and has @w{@code{@var{wlen}/2}} elements to the left of the central element
-## and @w{@code{@var{wlen}/2 - 1}} elements to the right of the central element.
-## When @var{wlen}is a 2-element array , @w{@code{[@var{nb}, @var{na}]}}, the
-## window includes @var{nb} elements to the left of the current element and
-## @var{na} elements to the right of the current element.
+## and @w{@code{@var{wlen}/2 - 1}} elements to the right of the central
+## element.  When @var{wlen} is a 2-element array,
+## @w{@code{[@var{nb}, @var{na}]}}, the window includes @var{nb} elements to
+## the left of the current element and @var{na} elements to the right of the
+## current element.
 ##
 ## The output @var{slcidx} is an array of indices of the slices that fit fully
 ## within the vector, where each column is an individual slice as the window
-## moves from left to right. The slices have @var{wlen} elements for scalar
+## moves from left to right.  The slices have @var{wlen} elements for scalar
 ## @var{wlen}, or @w{@code{@var{nb} + @var{na} + 1}} elements for array valued
 ## @var{wlen}.
 ##
--- a/scripts/signal/private/rectangle_lw.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/private/rectangle_lw.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,16 +24,18 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} rectangle_lw (@var{n}, @var{b})
-## Rectangular lag window.  Subfunction used for spectral density
-## estimation.
+## @deftypefn {} {@var{c} =} rectangle_lw (@var{n}, @var{b})
+## Rectangular lag window.
+##
+## Subfunction used for spectral density estimation.
+## @seealso{spectral_adf}
 ## @end deftypefn
 
-function retval = rectangle_lw (n, b)
+function c = rectangle_lw (n, b)
 
-  retval = zeros (n, 1);
+  c = zeros (n, 1);
   t = floor (1 / b);
 
-  retval(1:t, 1) = ones (t, 1);
+  c(1:t) = 1;
 
 endfunction
--- a/scripts/signal/private/rectangle_sw.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/private/rectangle_sw.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,19 +24,21 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} rectangle_sw (@var{n}, @var{b})
-## Rectangular spectral window.  Subfunction used for spectral density
-## estimation.
+## @deftypefn {} {@var{c} =} rectangle_sw (@var{n}, @var{b})
+## Rectangular spectral window.
+##
+## Subfunction used for spectral density estimation.
+## @seealso{spectral_xdf}
 ## @end deftypefn
 
-function retval = rectangle_sw (n, b)
+function c = rectangle_sw (n, b)
 
-  retval = zeros (n, 1);
-  retval(1) = 2 / b + 1;
+  c = zeros (n, 1);
+  c(1) = 2 / b + 1;
 
   l = (2:n)' - 1;
   l = 2 * pi * l / n;
 
-  retval(2:n) = sin ((2/b + 1) * l / 2) ./ sin (l / 2);
+  c(2:n) = sin ((2/b + 1) * l / 2) ./ sin (l / 2);
 
 endfunction
--- a/scripts/signal/private/triangle_lw.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/private/triangle_lw.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,14 +24,16 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} triangle_lw (@var{n}, @var{b})
-## Triangular lag window.  Subfunction used for spectral density
-## estimation.
+## @deftypefn {} {@var{c} =} triangle_lw (@var{n}, @var{b})
+## Triangular lag window.
+##
+## Subfunction used for spectral density estimation.
+## @seealso{spectral_adf}
 ## @end deftypefn
 
-function retval = triangle_lw (n, b)
+function c = triangle_lw (n, b)
 
-  retval = 1 - (0 : n-1)' * b;
-  retval = max ([retval'; (zeros (1, n))])';
+  c = 1 - (0 : n-1)' * b;
+  c = max ([c'; (zeros (1, n))])';
 
 endfunction
--- a/scripts/signal/sinc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/sinc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} sinc (@var{x})
+## @deftypefn {} {@var{y} =} sinc (@var{x})
 ## Compute the sinc function.
 ##
 ## Return
@@ -36,19 +36,19 @@
 ## @end ifnottex
 ## @end deftypefn
 
-function result = sinc (x)
+function y = sinc (x)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
-  result = ones (size (x));
+  y = ones (size (x));
 
   i = (x != 0);
 
   if (any (i(:)))
     t = pi * x(i);
-    result(i) = sin (t) ./ t;
+    y(i) = sin (t) ./ t;
   endif
 
 endfunction
--- a/scripts/signal/sinetone.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/sinetone.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} sinetone (@var{freq}, @var{rate}, @var{sec}, @var{ampl})
+## @deftypefn {} {@var{y} =} sinetone (@var{freq}, @var{rate}, @var{sec}, @var{ampl})
 ## Return a sinetone of frequency @var{freq} with a length of @var{sec}
 ## seconds at sampling rate @var{rate} and with amplitude @var{ampl}.
 ##
@@ -34,7 +34,7 @@
 ## @seealso{sinewave}
 ## @end deftypefn
 
-function retval = sinetone (freq, rate = 8000, sec = 1, ampl = 64)
+function y = sinetone (freq, rate = 8000, sec = 1, ampl = 64)
 
   if (nargin < 1)
     print_usage ();
@@ -52,10 +52,10 @@
   n = length (freq);
   ns = round (rate * sec);
 
-  retval = zeros (ns, n);
+  y = zeros (ns, n);
 
   for k = 1:n
-    retval(:, k) = ampl(k) * sin (2 * pi * (1:ns) / rate * freq(k))';
+    y(:, k) = ampl(k) * sin (2 * pi * (1:ns) / rate * freq(k))';
   endfor
 
 endfunction
--- a/scripts/signal/sinewave.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/sinewave.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} sinewave (@var{m}, @var{n}, @var{d})
+## @deftypefn {} {@var{y} =} sinewave (@var{m}, @var{n}, @var{d})
 ## Return an @var{m}-element vector with @var{i}-th element given by
 ## @code{sin (2 * pi * (@var{i}+@var{d}-1) / @var{n})}.
 ##
@@ -33,7 +33,7 @@
 ## @seealso{sinetone}
 ## @end deftypefn
 
-function x = sinewave (m, n, d = 0)
+function y = sinewave (m, n, d = 0)
 
   if (nargin < 1)
     print_usage ();
@@ -47,7 +47,7 @@
     d = 0;
   endif
 
-  x = sin (((1 : m) + d - 1) * 2 * pi / n);
+  y = sin (((1 : m) + d - 1) * 2 * pi / n);
 
 endfunction
 
--- a/scripts/signal/spectral_adf.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/spectral_adf.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} spectral_adf (@var{c})
-## @deftypefnx {} {} spectral_adf (@var{c}, @var{win})
-## @deftypefnx {} {} spectral_adf (@var{c}, @var{win}, @var{b})
+## @deftypefn  {} {@var{sde} =} spectral_adf (@var{c})
+## @deftypefnx {} {@var{sde} =} spectral_adf (@var{c}, @var{win})
+## @deftypefnx {} {@var{sde} =} spectral_adf (@var{c}, @var{win}, @var{b})
 ## Return the spectral density estimator given a vector of autocovariances
 ## @var{c}, window name @var{win}, and bandwidth, @var{b}.
 ##
@@ -39,7 +39,7 @@
 ## @seealso{spectral_xdf}
 ## @end deftypefn
 
-function retval = spectral_adf (c, win, b)
+function sde = spectral_adf (c, win, b)
 
   if (nargin < 1)
     print_usage ();
@@ -66,9 +66,9 @@
 
   c .*= w;
 
-  retval = 2 * real (fft (c)) - c(1);
-  retval = [(zeros (cr, 1)), retval];
-  retval(:, 1) = (0 : cr-1)' / cr;
+  sde = 2 * real (fft (c)) - c(1);
+  sde = [(zeros (cr, 1)), sde];
+  sde(:, 1) = (0 : cr-1)' / cr;
 
 endfunction
 
--- a/scripts/signal/spectral_xdf.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/spectral_xdf.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} spectral_xdf (@var{x})
-## @deftypefnx {} {} spectral_xdf (@var{x}, @var{win})
-## @deftypefnx {} {} spectral_xdf (@var{x}, @var{win}, @var{b})
+## @deftypefn  {} {@var{sde} =} spectral_xdf (@var{x})
+## @deftypefnx {} {@var{sde} =} spectral_xdf (@var{x}, @var{win})
+## @deftypefnx {} {@var{sde} =} spectral_xdf (@var{x}, @var{win}, @var{b})
 ## Return the spectral density estimator given a data vector @var{x}, window
 ## name @var{win}, and bandwidth, @var{b}.
 ##
@@ -39,7 +39,7 @@
 ## @seealso{spectral_adf}
 ## @end deftypefn
 
-function retval = spectral_xdf (x, win, b)
+function sde = spectral_xdf (x, win, b)
 
   if (nargin < 1)
     print_usage ();
@@ -66,11 +66,11 @@
 
   x -= sum (x) / xr;
 
-  retval = (abs (fft (x)) / xr).^2;
-  retval = real (ifft (fft (retval) .* fft (w)));
+  sde = (abs (fft (x)) / xr).^2;
+  sde = real (ifft (fft (sde) .* fft (w)));
 
-  retval = [(zeros (xr, 1)), retval];
-  retval(:, 1) = (0 : xr-1)' / xr;
+  sde = [(zeros (xr, 1)), sde];
+  sde(:, 1) = (0 : xr-1)' / xr;
 
 endfunction
 
--- a/scripts/signal/spencer.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/signal/spencer.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,14 +24,14 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} spencer (@var{x})
+## @deftypefn {} {@var{savg} =} spencer (@var{x})
 ## Return @nospell{Spencer's} 15-point moving average of each column of
 ## @var{x}.
 ## @end deftypefn
 
-function retval = spencer (x)
+function savg = spencer (x)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
@@ -48,9 +48,9 @@
 
   w = [-3, -6, -5, 3, 21, 46, 67, 74, 67, 46, 21, 3, -5, -6, -3] / 320;
 
-  retval = fftfilt (w, x);
-  retval = [zeros(7,c); retval(15:n,:); zeros(7,c);];
+  savg = fftfilt (w, x);
+  savg = [zeros(7,c); savg(15:n,:); zeros(7,c);];
 
-  retval = reshape (retval, xr, xc);
+  savg = reshape (savg, xr, xc);
 
 endfunction
--- a/scripts/sparse/bicg.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/bicg.m	Tue Nov 15 13:15:28 2022 -0800
@@ -43,9 +43,9 @@
 ##
 ## @item @var{A} is the matrix of the linear system and it must be square.
 ## @var{A} can be passed as a matrix, function handle, or inline function
-## @code{Afun} such that @w{@code{Afun (x, "notransp") = A * x}} and
-## @w{@code{Afun (x, "transp") = A' * x}}.  Additional parameters to
-## @code{Afun} may be passed after @var{x0}.
+## @code{Afcn} such that @w{@code{Afcn (x, "notransp") = A * x}} and
+## @w{@code{Afcn (x, "transp") = A' * x}}.  Additional parameters to
+## @code{Afcn} may be passed after @var{x0}.
 ##
 ## @item @var{b} is the right-hand side vector.  It must be a column vector
 ## with the same number of rows as @var{A}.
@@ -84,7 +84,7 @@
 ## @end itemize
 ##
 ## Any arguments which follow @var{x0} are treated as parameters, and passed in
-## an appropriate manner to any of the functions (@var{Afun} or @var{Mfun}) or
+## an appropriate manner to any of the functions (@var{Afcn} or @var{Mfcn}) or
 ## that have been given to @code{bicg}.
 ##
 ## The output parameters are:
@@ -140,13 +140,13 @@
 ## restart = 5;
 ## [M1, M2] = ilu (A);  # in this tridiag case, it corresponds to lu (A)
 ## M = M1 * M2;
-## Afun = @@(x, string) strcmp (string, "notransp") * (A * x) + ...
+## Afcn = @@(x, string) strcmp (string, "notransp") * (A * x) + ...
 ##                      strcmp (string, "transp") * (A' * x);
-## Mfun = @@(x, string) strcmp (string, "notransp") * (M \ x) + ...
+## Mfcn = @@(x, string) strcmp (string, "notransp") * (M \ x) + ...
 ##                      strcmp (string, "transp") * (M' \ x);
-## M1fun = @@(x, string) strcmp (string, "notransp") * (M1 \ x) + ...
+## M1fcn = @@(x, string) strcmp (string, "notransp") * (M1 \ x) + ...
 ##                      strcmp (string, "transp") * (M1' \ x);
-## M2fun = @@(x, string) strcmp (string, "notransp") * (M2 \ x) + ...
+## M2fcn = @@(x, string) strcmp (string, "notransp") * (M2 \ x) + ...
 ##                      strcmp (string, "transp") * (M2' \ x);
 ## @end group
 ## @end example
@@ -161,7 +161,7 @@
 ## @code{@var{A}*@var{x}} and @code{@var{A'}*@var{x}}
 ##
 ## @example
-## x = bicg (Afun, b, [], n)
+## x = bicg (Afcn, b, [], n)
 ## @end example
 ##
 ## @sc{Example 3:} @code{bicg} with a preconditioner matrix @var{M}
@@ -173,7 +173,7 @@
 ## @sc{Example 4:} @code{bicg} with a function as preconditioner
 ##
 ## @example
-## x = bicg (Afun, b, 1e-6, n, Mfun)
+## x = bicg (Afcn, b, 1e-6, n, Mfcn)
 ## @end example
 ##
 ## @sc{Example 5:} @code{bicg} with preconditioner matrices @var{M1}
@@ -186,7 +186,7 @@
 ## @sc{Example 6:} @code{bicg} with functions as preconditioners
 ##
 ## @example
-## x = bicg (Afun, b, 1e-6, n, M1fun, M2fun)
+## x = bicg (Afcn, b, 1e-6, n, M1fcn, M2fcn)
 ## @end example
 ##
 ## @sc{Example 7:} @code{bicg} with as input a function requiring an argument
@@ -207,8 +207,8 @@
 ##   endif
 ## endfunction
 ##
-## Apfun = @@(x, string, p) Ap (A, x, string, p);
-## x = bicg (Apfun, b, [], [], [], [], [], 2);
+## Apfcn = @@(x, string, p) Ap (A, x, string, p);
+## x = bicg (Apfcn, b, [], [], [], [], [], 2);
 ## @end group
 ## @end example
 ##
@@ -223,7 +223,7 @@
 function [x_min, flag, relres, iter_min, resvec] = ...
          bicg (A, b, tol = [], maxit = [], M1 = [], M2 = [], x0 = [], varargin)
 
-  [Afun, M1fun, M2fun] =  __alltohandles__ (A, b, M1, M2, "bicg");
+  [Afcn, M1fcn, M2fcn] =  __alltohandles__ (A, b, M1, M2, "bicg");
 
   [tol, maxit, x0] = __default__input__ ({1e-06, min(rows(b), 20), ...
                                           zeros(rows (b),1)}, tol, maxit, x0);
@@ -253,17 +253,17 @@
   iter = iter_min = 0;
   flag = 1;  # Default flag is "maximum number of iterations reached"
   resvec = zeros (maxit + 1, 1);
-  r0 = b - Afun (x, "notransp", varargin{:});  # Residual of the system
-  s0 = c - Afun (x, "transp", varargin{:});    # Res. of the "dual system"
+  r0 = b - Afcn (x, "notransp", varargin{:});  # Residual of the system
+  s0 = c - Afcn (x, "transp", varargin{:});    # Res. of the "dual system"
   resvec(1) = norm (r0, 2);
 
   try
     warning ("error", "Octave:singular-matrix", "local");
-    prec_r0 = M1fun (r0, "notransp", varargin{:});  # r0 preconditioned
+    prec_r0 = M1fcn (r0, "notransp", varargin{:});  # r0 preconditioned
     prec_s0 = s0;
-    prec_r0 = M2fun (prec_r0, "notransp", varargin{:});
-    prec_s0 = M2fun (prec_s0, "transp", varargin{:});
-    prec_s0 = M1fun (prec_s0, "transp", varargin{:});  # s0 preconditioned
+    prec_r0 = M2fcn (prec_r0, "notransp", varargin{:});
+    prec_s0 = M2fcn (prec_s0, "transp", varargin{:});
+    prec_s0 = M1fcn (prec_s0, "transp", varargin{:});  # s0 preconditioned
     p = prec_r0;  # Direction of the system
     q = prec_s0;  # Direction of the "dual system"
   catch
@@ -271,7 +271,7 @@
   end_try_catch
 
   while ((flag != 2) && (iter < maxit) && (resvec(iter+1) >= norm_b * tol))
-    v = Afun (p, "notransp", varargin{:});
+    v = Afcn (p, "notransp", varargin{:});
     prod_qv = q' * v;
     alpha = (s0' * prec_r0);
     if (abs (prod_qv) <= eps * abs (alpha))
@@ -282,18 +282,18 @@
     x += alpha * p;
     prod_rs = (s0' * prec_r0);  # Product between r0 and s0
     r0 -= alpha * v;
-    s0 -= conj (alpha) * Afun (q, "transp", varargin{:});
-    prec_r0 = M1fun (r0, "notransp", varargin{:});
+    s0 -= conj (alpha) * Afcn (q, "transp", varargin{:});
+    prec_r0 = M1fcn (r0, "notransp", varargin{:});
     prec_s0 = s0;
-    prec_r0 = M2fun (prec_r0, "notransp", varargin{:});
+    prec_r0 = M2fcn (prec_r0, "notransp", varargin{:});
     beta = s0' * prec_r0;
     if (abs (prod_rs) <= abs (beta))
       flag = 4;
       break;
     endif
     beta ./= prod_rs;
-    prec_s0 = M2fun (prec_s0, "transp", varargin{:});
-    prec_s0 = M1fun (prec_s0, "transp", varargin{:});
+    prec_s0 = M2fcn (prec_s0, "transp", varargin{:});
+    prec_s0 = M1fcn (prec_s0, "transp", varargin{:});
     iter += 1;
     resvec(iter+1) = norm (r0);
     if (resvec(iter+1) <= resvec(iter_min+1))
@@ -378,11 +378,11 @@
 %!   endif
 %! endfunction
 %!
-%! Afun = @(x, string) Ap (A, x, string, 1);
-%! x = bicg (Afun, b, [], n);
+%! Afcn = @(x, string) Ap (A, x, string, 1);
+%! x = bicg (Afcn, b, [], n);
 %! x = bicg (A, b, 1e-6, n, M);
 %! x = bicg (A, b, 1e-6, n, M1, M2);
-%! function y = Mfun (M, x, string)
+%! function y = Mfcn (M, x, string)
 %!   if (strcmp (string, "notransp"))
 %!     y = M \ x;
 %!   else
@@ -390,14 +390,14 @@
 %!   endif
 %! endfunction
 %!
-%! M1fun = @(x, string) Mfun (M, x, string);
-%! x = bicg (Afun, b, 1e-6, n, M1fun);
-%! M1fun = @(x, string) Mfun (M1, x, string);
-%! M2fun = @(x, string) Mfun (M2, x, string);
-%! x = bicg (Afun, b, 1e-6, n, M1fun, M2fun);
-%! Afun = @(x, string, p) Ap (A, x, string, p);
+%! M1fcn = @(x, string) Mfcn (M, x, string);
+%! x = bicg (Afcn, b, 1e-6, n, M1fcn);
+%! M1fcn = @(x, string) Mfcn (M1, x, string);
+%! M2fcn = @(x, string) Mfcn (M2, x, string);
+%! x = bicg (Afcn, b, 1e-6, n, M1fcn, M2fcn);
+%! Afcn = @(x, string, p) Ap (A, x, string, p);
 %! ## Solution of A^2 * x = b
-%! x = bicg (Afun, b, [], 2*n, [], [], [], 2);
+%! x = bicg (Afcn, b, [], 2*n, [], [], [], 2);
 
 %!test
 %! ## Check that all type of inputs work
@@ -405,31 +405,31 @@
 %! b = A * ones (5, 1);
 %! M1 = diag (sqrt (diag (A)));
 %! M2 = M1;
-%! Afun = @(z, string) strcmp (string, "notransp") * (A * z) + ...
+%! Afcn = @(z, string) strcmp (string, "notransp") * (A * z) + ...
 %!                     strcmp (string, "transp") * (A' * z);
-%! M1_fun = @(z, string) strcmp (string,"notransp") * (M1 \ z) + ...
+%! M1_fcn = @(z, string) strcmp (string,"notransp") * (M1 \ z) + ...
 %!                         strcmp (string, "transp") * (M1' \ z);
-%! M2_fun = @(z, string) strcmp (string, "notransp") * (M2 \ z) + ...
+%! M2_fcn = @(z, string) strcmp (string, "notransp") * (M2 \ z) + ...
 %!                         strcmp (string, "transp") * (M2' \ z);
 %! [x, flag] = bicg (A, b);
 %! assert (flag, 0);
 %! [x, flag] = bicg (A, b, [], [], M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = bicg (A, b, [], [], M1_fun, M2_fun);
+%! [x, flag] = bicg (A, b, [], [], M1_fcn, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = bicg (A, b,[], [], M1_fun, M2);
+%! [x, flag] = bicg (A, b,[], [], M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = bicg (A, b,[], [], M1, M2_fun);
+%! [x, flag] = bicg (A, b,[], [], M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = bicg (Afun, b);
+%! [x, flag] = bicg (Afcn, b);
 %! assert (flag, 0);
-%! [x, flag] = bicg (Afun, b,[], [], M1, M2);
+%! [x, flag] = bicg (Afcn, b,[], [], M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = bicg (Afun, b,[], [], M1_fun, M2);
+%! [x, flag] = bicg (Afcn, b,[], [], M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = bicg (Afun, b,[], [], M1, M2_fun);
+%! [x, flag] = bicg (Afcn, b,[], [], M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = bicg (Afun, b,[], [], M1_fun, M2_fun);
+%! [x, flag] = bicg (Afcn, b,[], [], M1_fcn, M2_fcn);
 %! assert (flag, 0);
 
 %!test
@@ -443,7 +443,7 @@
 %! [x, flag, relres, iter, resvec] = bicg (A, b, tol, maxit, M1, M2);
 %! assert (norm (b - A*x) / norm (b), 0, tol);
 
-%!function y = afun (x, t, a)
+%!function y = afcn (x, t, a)
 %!  switch (t)
 %!    case "notransp"
 %!      y = a * x;
@@ -461,7 +461,7 @@
 %! M1 = spdiags ([ones(n,1)/(-2) ones(n,1)],-1:0, n, n);
 %! M2 = spdiags ([4*ones(n,1) -ones(n,1)], 0:1, n, n);
 %!
-%! [x, flag, relres, iter, resvec] = bicg (@(x, t) afun (x, t, A),
+%! [x, flag, relres, iter, resvec] = bicg (@(x, t) afcn (x, t, A),
 %!                                         b, tol, maxit, M1, M2);
 %! assert (x, ones (size (b)), 1e-7);
 
@@ -516,7 +516,7 @@
 %! assert (class (x), "single");
 
 %!test
-%!function y = Afun (x, trans)
+%!function y = Afcn (x, trans)
 %!  A = sparse (toeplitz ([2, 1, 0, 0], [2, -1, 0, 0]));
 %!  if (strcmp (trans, "notransp"))
 %!     y = A * x;
@@ -525,7 +525,7 @@
 %!  endif
 %!endfunction
 %!
-%! [x, flag] = bicg ("Afun", [1; 2; 2; 3]);
+%! [x, flag] = bicg ("Afcn", [1; 2; 2; 3]);
 %! assert (x, ones (4, 1), 1e-6);
 
 %!test
--- a/scripts/sparse/bicgstab.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/bicgstab.m	Tue Nov 15 13:15:28 2022 -0800
@@ -36,8 +36,8 @@
 ##
 ## @item @var{A} is the matrix of the linear system and it must be square.
 ## @var{A} can be passed as a matrix, function handle, or inline
-## function @code{Afun} such that @code{Afun(x) = A * x}.  Additional
-## parameters to @code{Afun} are passed after @var{x0}.
+## function @code{Afcn} such that @code{Afcn(x) = A * x}.  Additional
+## parameters to @code{Afcn} are passed after @var{x0}.
 ##
 ## @item @var{b} is the right hand side vector.  It must be a column vector
 ## with the same number of rows as @var{A}.
@@ -118,10 +118,10 @@
 ## restart = 5;
 ## [M1, M2] = ilu (A); # in this tridiag case, it corresponds to lu (A)
 ## M = M1 * M2;
-## Afun = @@(x) A * x;
-## Mfun = @@(x) M \ x;
-## M1fun = @@(x) M1 \ x;
-## M2fun = @@(x) M2 \ x;
+## Afcn = @@(x) A * x;
+## Mfcn = @@(x) M \ x;
+## M1fcn = @@(x) M1 \ x;
+## M2fcn = @@(x) M2 \ x;
 ## @end group
 ## @end example
 ##
@@ -135,7 +135,7 @@
 ## @code{@var{A} * @var{x}}
 ##
 ## @example
-## x = bicgstab (Afun, b, [], n)
+## x = bicgstab (Afcn, b, [], n)
 ## @end example
 ##
 ## @sc{Example 3:} @code{bicgstab} with a preconditioner matrix @var{M}
@@ -147,7 +147,7 @@
 ## @sc{Example 4:} @code{bicgstab} with a function as preconditioner
 ##
 ## @example
-## x = bicgstab (Afun, b, 1e-6, n, Mfun)
+## x = bicgstab (Afcn, b, 1e-6, n, Mfcn)
 ## @end example
 ##
 ## @sc{Example 5:} @code{bicgstab} with preconditioner matrices @var{M1}
@@ -160,7 +160,7 @@
 ## @sc{Example 6:} @code{bicgstab} with functions as preconditioners
 ##
 ## @example
-## x = bicgstab (Afun, b, 1e-6, n, M1fun, M2fun)
+## x = bicgstab (Afcn, b, 1e-6, n, M1fcn, M2fcn)
 ## @end example
 ##
 ## @sc{Example 7:} @code{bicgstab} with as input a function requiring
@@ -174,8 +174,8 @@
 ##      y = A * y;
 ##    endfor
 ##  endfunction
-## Apfun = @@(x, string, p) Ap (A, x, string, p);
-## x = bicgstab (Apfun, b, [], [], [], [], [], 2);
+## Apfcn = @@(x, string, p) Ap (A, x, string, p);
+## x = bicgstab (Apfcn, b, [], [], [], [], [], 2);
 ## @end group
 ## @end example
 ##
@@ -211,7 +211,7 @@
                    x0 = [], varargin)
 
   ## Check consistency and  type of A, M1, M2
-  [Afun, M1fun, M2fun] =  __alltohandles__ (A, b, M1, M2, "bicgstab");
+  [Afcn, M1fcn, M2fcn] =  __alltohandles__ (A, b, M1, M2, "bicgstab");
 
   ## Check if input tol are empty (set them to default if necessary)
   [tol, maxit, x0] = __default__input__ ({1e-06, min(rows(b), 20), ...
@@ -240,7 +240,7 @@
   ## default setting of flag is 1 (i.e. max number of iterations reached)
   flag = 1;
 
-  res = b - feval (Afun, x, varargin{:});
+  res = b - feval (Afcn, x, varargin{:});
   rr = p = res; # rr is r_star
   rho_1 = rr' * res;
   resvec (1) = norm (res,2);
@@ -249,14 +249,14 @@
   ## To check if the preconditioners are singular or they have some NaN
   try
     warning ("error", "Octave:singular-matrix", "local");
-    p_hat = feval (M1fun, p, varargin{:});
-    p_hat = feval (M2fun, p_hat, varargin{:});
+    p_hat = feval (M1fcn, p, varargin{:});
+    p_hat = feval (M2fcn, p_hat, varargin{:});
   catch
     flag = 2;
   end_try_catch
 
   while (flag !=2) && (iter < d_maxit) && (resvec (iter + 1) >= real_tol)
-    v = feval (Afun, p_hat, varargin{:});
+    v = feval (Afcn, p_hat, varargin{:});
     prod_tmp = (rr' * v);
     if (prod_tmp == 0)
       flag = 4;
@@ -275,9 +275,9 @@
       x_min = x;
       iter_min = iter;
     endif
-    s_hat = feval (M1fun, s, varargin{:});
-    s_hat = feval (M2fun, s_hat, varargin{:});
-    t = feval (Afun, s_hat, varargin{:});
+    s_hat = feval (M1fcn, s, varargin{:});
+    s_hat = feval (M2fcn, s_hat, varargin{:});
+    t = feval (Afcn, s_hat, varargin{:});
     omega = (t' * s) / (t' * t);
     if (omega == 0) # x and residual don't change and the next it will be NaN
       flag = 4;
@@ -304,8 +304,8 @@
     endif
     beta = (rho_1 / rho_2) * (alpha / omega);
     p = res + beta * (p - omega*  v);
-    p_hat = feval (M1fun, p, varargin{:});
-    p_hat = feval (M2fun, p_hat, varargin{:});
+    p_hat = feval (M1fcn, p, varargin{:});
+    p_hat = feval (M2fcn, p_hat, varargin{:});
   endwhile
   resvec = resvec (1:iter+1,1);
 
@@ -362,15 +362,15 @@
 %! [M1, M2] = ilu (A + 0.1 * eye (n));
 %! M = M1 * M2;
 %! x = bicgstab (A, b, [], n);
-%! Afun = @(x) A * x;
-%! x = bicgstab (Afun, b, [], n);
+%! Afcn = @(x) A * x;
+%! x = bicgstab (Afcn, b, [], n);
 %! x = bicgstab (A, b, 1e-6, n, M);
 %! x = bicgstab (A, b, 1e-6, n, M1, M2);
-%! Mfun = @(z) M \ z;
-%! x = bicgstab (Afun, b, 1e-6, n, Mfun);
-%! M1fun = @(z) M1 \ z;
-%! M2fun = @(z) M2 \ z;
-%! x = bicgstab (Afun, b, 1e-6, n, M1fun, M2fun);
+%! Mfcn = @(z) M \ z;
+%! x = bicgstab (Afcn, b, 1e-6, n, Mfcn);
+%! M1fcn = @(z) M1 \ z;
+%! M2fcn = @(z) M2 \ z;
+%! x = bicgstab (Afcn, b, 1e-6, n, M1fcn, M2fcn);
 %! function y = Ap (A, x, z)
 %!   ## compute A^z * x or (A^z)' * x
 %!   y = x;
@@ -378,8 +378,8 @@
 %!     y = A * y;
 %!   endfor
 %! endfunction
-%! Afun = @(x, p) Ap (A, x, p);
-%! x = bicgstab (Afun, b, [], 2 * n, [], [], [], 2); # solution of A^2 * x = b
+%! Afcn = @(x, p) Ap (A, x, p);
+%! x = bicgstab (Afcn, b, [], 2 * n, [], [], [], 2); # solution of A^2 * x = b
 
 %!demo
 %! n = 10;
@@ -406,28 +406,28 @@
 %! M1 = diag (sqrt (diag (A)));
 %! M2 = M1;
 %! maxit = 20;
-%! Afun = @(z) A*z;
-%! M1_fun = @(z) M1 \ z;
-%! M2_fun = @(z) M2 \ z;
+%! Afcn = @(z) A*z;
+%! M1_fcn = @(z) M1 \ z;
+%! M2_fcn = @(z) M2 \ z;
 %! [x, flag] = bicgstab (A,b );
 %! assert (flag, 0);
 %! [x, flag] = bicgstab (A, b, [], maxit, M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = bicgstab (A, b, [], maxit, M1_fun, M2_fun);
+%! [x, flag] = bicgstab (A, b, [], maxit, M1_fcn, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = bicgstab (A, b, [], maxit, M1_fun, M2);
+%! [x, flag] = bicgstab (A, b, [], maxit, M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = bicgstab (A, b, [], maxit, M1, M2_fun);
+%! [x, flag] = bicgstab (A, b, [], maxit, M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = bicgstab (Afun, b);
+%! [x, flag] = bicgstab (Afcn, b);
 %! assert (flag, 0);
-%! [x, flag] = bicgstab (Afun, b, [], maxit, M1, M2);
+%! [x, flag] = bicgstab (Afcn, b, [], maxit, M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = bicgstab (Afun, b, [], maxit, M1_fun, M2);
+%! [x, flag] = bicgstab (Afcn, b, [], maxit, M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = bicgstab (Afun, b, [], maxit, M1, M2_fun);
+%! [x, flag] = bicgstab (Afcn, b, [], maxit, M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = bicgstab (Afun, b, [], maxit, M1_fun, M2_fun);
+%! [x, flag] = bicgstab (Afcn, b, [], maxit, M1_fcn, M2_fcn);
 %! assert (flag, 0);
 
 %!shared n, A, b, tol, maxit, M1, M2
@@ -443,12 +443,12 @@
 %! [x, flag, relres, iter, resvec] = bicgstab (A, b, tol, maxit, M1, M2);
 %! assert (norm (b - A*x) / norm (b), 0, tol);
 
-%!function y = afun (x, a)
+%!function y = afcn (x, a)
 %!  y = a * x;
 %!endfunction
 %!
 %!test
-%! [x, flag, relres, iter, resvec] = bicgstab (@(x) afun (x, A), b,
+%! [x, flag, relres, iter, resvec] = bicgstab (@(x) afcn (x, A), b,
 %!                                             tol, maxit, M1, M2);
 %! assert (norm (b - A*x) / norm (b), 0, tol);
 
@@ -501,13 +501,13 @@
 %! assert (class (x), "single");
 
 %!test
-%!function y = Afun (x)
+%!function y = Afcn (x)
 %!  A = sparse (toeplitz ([2, 1, 0, 0], [2, -1, 0, 0]));
 %!  y = A * x;
 %!endfunction
 %!
 %! b = [1; 2; 2; 3];
-%! [x, flag] = bicgstab ("Afun", b);
+%! [x, flag] = bicgstab ("Afcn", b);
 %! assert (norm (b - A*x) / norm (b), 0, 1e-6);
 
 %!test
--- a/scripts/sparse/cgs.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/cgs.m	Tue Nov 15 13:15:28 2022 -0800
@@ -36,8 +36,8 @@
 ##
 ## @item @var{A} is the matrix of the linear system and it must be square.
 ## @var{A} can be passed as a matrix, function handle, or inline
-## function @code{Afun} such that @code{Afun(x) = A * x}.  Additional
-## parameters to @code{Afun} are passed after @var{x0}.
+## function @code{Afcn} such that @code{Afcn(x) = A * x}.  Additional
+## parameters to @code{Afcn} are passed after @var{x0}.
 ##
 ## @item @var{b} is the right hand side vector.  It must be a column vector
 ## with same number of rows of @var{A}.
@@ -107,10 +107,10 @@
 ## restart = 5;
 ## [M1, M2] = ilu (A); # in this tridiag case it corresponds to chol (A)'
 ## M = M1 * M2;
-## Afun = @@(x) A * x;
-## Mfun = @@(x) M \ x;
-## M1fun = @@(x) M1 \ x;
-## M2fun = @@(x) M2 \ x;
+## Afcn = @@(x) A * x;
+## Mfcn = @@(x) M \ x;
+## M1fcn = @@(x) M1 \ x;
+## M2fcn = @@(x) M2 \ x;
 ## @end group
 ## @end example
 ##
@@ -124,7 +124,7 @@
 ## @code{@var{A} * @var{x}}
 ##
 ## @example
-## x = cgs (Afun, b, [], n)
+## x = cgs (Afcn, b, [], n)
 ## @end example
 ##
 ## @sc{Example 3:} @code{cgs} with a preconditioner matrix @var{M}
@@ -136,7 +136,7 @@
 ## @sc{Example 4:} @code{cgs} with a function as preconditioner
 ##
 ## @example
-## x = cgs (Afun, b, 1e-6, n, Mfun)
+## x = cgs (Afcn, b, 1e-6, n, Mfcn)
 ## @end example
 ##
 ## @sc{Example 5:} @code{cgs} with preconditioner matrices @var{M1}
@@ -149,7 +149,7 @@
 ## @sc{Example 6:} @code{cgs} with functions as preconditioners
 ##
 ## @example
-## x = cgs (Afun, b, 1e-6, n, M1fun, M2fun)
+## x = cgs (Afcn, b, 1e-6, n, M1fcn, M2fcn)
 ## @end example
 ##
 ## @sc{Example 7:} @code{cgs} with as input a function requiring an argument
@@ -162,8 +162,8 @@
 ##      y = A * y;
 ##    endfor
 ##  endfunction
-## Apfun = @@(x, string, p) Ap (A, x, string, p);
-## x = cgs (Apfun, b, [], [], [], [], [], 2);
+## Apfcn = @@(x, string, p) Ap (A, x, string, p);
+## x = cgs (Apfcn, b, [], [], [], [], [], 2);
 ## @end group
 ## @end example
 ##
@@ -196,7 +196,7 @@
 function [x_min, flag, relres, iter_min, resvec] = ...
          cgs (A, b, tol = [], maxit = [], M1 = [] , M2 = [], x0 = [], varargin)
 
-  [Afun, M1fun, M2fun] = __alltohandles__ (A, b, M1, M2, "cgs");
+  [Afcn, M1fcn, M2fcn] = __alltohandles__ (A, b, M1, M2, "cgs");
 
   [tol, maxit, x0] = __default__input__ ({1e-06, min( rows(b), 20), ...
                                           zeros(size (b))}, tol, maxit, x0);
@@ -224,21 +224,21 @@
   ## x_min approximation with the minimum residual
   ## x_pr approximation at the previous iteration (to check stagnation)
 
-  r0 = rr = u = p = b - feval (Afun, x, varargin{:});
+  r0 = rr = u = p = b - feval (Afcn, x, varargin{:});
   resvec (1) = norm (r0, 2);
   rho_1 = rr' * r0;
 
   try
     warning ("error","Octave:singular-matrix","local");
-    p_hat = feval (M1fun, p, varargin{:});
-    p_hat = feval (M2fun, p_hat, varargin {:});
+    p_hat = feval (M1fcn, p, varargin{:});
+    p_hat = feval (M2fcn, p_hat, varargin {:});
   catch
     flag = 2;
   end_try_catch
 
   while ((flag != 2) && (iter < maxit) && ...
          (resvec (iter + 1) >= tol * norm_b))
-    v = feval (Afun, p_hat, varargin{:});
+    v = feval (Afcn, p_hat, varargin{:});
     prod_tmp = (rr' * v);
     if (prod_tmp == 0)
       flag = 4;
@@ -246,10 +246,10 @@
     endif
     alpha = rho_1 / prod_tmp;
     q = u - alpha * v;
-    u_hat = feval(M1fun, u + q, varargin{:});
-    u_hat = feval (M2fun, u_hat, varargin{:});
+    u_hat = feval(M1fcn, u + q, varargin{:});
+    u_hat = feval (M2fcn, u_hat, varargin{:});
     x += alpha*u_hat;
-    r0 -= alpha* feval (Afun, u_hat, varargin{:});
+    r0 -= alpha* feval (Afcn, u_hat, varargin{:});
     iter += 1;
     resvec (iter + 1) = norm (r0, 2);
     if (norm (x - x_pr, 2) <= norm (x, 2) * eps) # Stagnation
@@ -270,8 +270,8 @@
     beta = rho_1 / rho_2;
     u = r0 + beta * q;
     p = u + beta * (q + beta * p);
-    p_hat = feval (M1fun, p, varargin {:});
-    p_hat = feval (M2fun, p_hat, varargin{:});
+    p_hat = feval (M1fcn, p, varargin {:});
+    p_hat = feval (M2fcn, p_hat, varargin{:});
   endwhile
   resvec = resvec (1: (iter + 1));
 
@@ -331,15 +331,15 @@
 %! [M1, M2] = ilu (A + 0.1 * eye (n));
 %! M = M1 * M2;
 %! x = cgs (A, b, [], n);
-%! Afun = @(x) A * x;
-%! x = cgs (Afun, b, [], n);
+%! Afcn = @(x) A * x;
+%! x = cgs (Afcn, b, [], n);
 %! x = cgs (A, b, 1e-6, n, M);
 %! x = cgs (A, b, 1e-6, n, M1, M2);
-%! Mfun = @(z) M \ z;
-%! x = cgs (Afun, b, 1e-6, n, Mfun);
-%! M1fun = @(z) M1 \ z;
-%! M2fun = @(z) M2 \ z;
-%! x = cgs (Afun, b, 1e-6, n, M1fun, M2fun);
+%! Mfcn = @(z) M \ z;
+%! x = cgs (Afcn, b, 1e-6, n, Mfcn);
+%! M1fcn = @(z) M1 \ z;
+%! M2fcn = @(z) M2 \ z;
+%! x = cgs (Afcn, b, 1e-6, n, M1fcn, M2fcn);
 %! function y = Ap (A, x, z)
 %!   ## compute A^z * x or (A^z)' * x
 %!   y = x;
@@ -347,8 +347,8 @@
 %!     y = A * y;
 %!   endfor
 %! endfunction
-%! Afun = @(x, p) Ap (A, x, p);
-%! x = cgs (Afun, b, [], 2*n, [], [], [], 2); # solution of A^2 * x = b
+%! Afcn = @(x, p) Ap (A, x, p);
+%! x = cgs (Afcn, b, [], 2*n, [], [], [], 2); # solution of A^2 * x = b
 
 %!demo
 %! n = 10;
@@ -375,28 +375,28 @@
 %! M1 = diag (sqrt (diag (A)));
 %! M2 = M1;
 %! maxit = 10;
-%! Afun = @(z) A * z;
-%! M1_fun = @(z) M1 \ z;
-%! M2_fun = @(z) M2 \ z;
+%! Afcn = @(z) A * z;
+%! M1_fcn = @(z) M1 \ z;
+%! M2_fcn = @(z) M2 \ z;
 %! [x, flag] = cgs (A,b);
 %! assert (flag, 0);
 %! [x, flag] = cgs (A, b, [], maxit, M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = cgs (A, b, [], maxit, M1_fun, M2_fun);
+%! [x, flag] = cgs (A, b, [], maxit, M1_fcn, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = cgs (A, b, [], maxit, M1_fun, M2);
+%! [x, flag] = cgs (A, b, [], maxit, M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = cgs (A, b, [], maxit, M1, M2_fun);
+%! [x, flag] = cgs (A, b, [], maxit, M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = cgs (Afun, b);
+%! [x, flag] = cgs (Afcn, b);
 %! assert (flag, 0);
-%! [x, flag] = cgs (Afun, b, [], maxit, M1, M2);
+%! [x, flag] = cgs (Afcn, b, [], maxit, M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = cgs (Afun, b, [], maxit, M1_fun, M2);
+%! [x, flag] = cgs (Afcn, b, [], maxit, M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = cgs (Afun, b, [], maxit, M1, M2_fun);
+%! [x, flag] = cgs (Afcn, b, [], maxit, M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = cgs (Afun, b, [], maxit, M1_fun, M2_fun);
+%! [x, flag] = cgs (Afcn, b, [], maxit, M1_fcn, M2_fcn);
 %! assert (flag, 0);
 
 %!shared n, A, b, tol, maxit, M
@@ -451,11 +451,11 @@
 %! assert (class (x), "single");
 
 %!test
-%!function y = Afun (x)
+%!function y = Afcn (x)
 %!  A = toeplitz ([2, 1, 0, 0], [2, -1, 0, 0]);
 %!  y = A * x;
 %!endfunction
-%! [x, flag] = cgs ("Afun", [1; 2; 2; 3]);
+%! [x, flag] = cgs ("Afcn", [1; 2; 2; 3]);
 %! assert (norm (b - A*x) / norm (b), 0, 1e-6);
 
 %!test
--- a/scripts/sparse/eigs.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/eigs.m	Tue Nov 15 13:15:28 2022 -0800
@@ -534,25 +534,25 @@
 %!testif HAVE_ARPACK, HAVE_UMFPACK
 %! assert (eigs (A, k, 4.1), eigs (A, speye (n), k, 4.1), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A * x;
+%! fcn = @(x) A * x;
 %! opts.issym = 1;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, "lm", opts);
+%! d1 = eigs (fcn, n, k, "lm", opts);
 %! assert (d1, d0(end:-1:(end-k+1)), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A \ x;
+%! fcn = @(x) A \ x;
 %! opts.issym = 1;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, "sm", opts);
+%! d1 = eigs (fcn, n, k, "sm", opts);
 %! assert (d1, d0(k:-1:1), 1e-11);
 %!testif HAVE_ARPACK, HAVE_UMFPACK
-%! fn = @(x) (A - 4.1 * eye (n)) \ x;
+%! fcn = @(x) (A - 4.1 * eye (n)) \ x;
 %! opts.issym = 1;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, 4.1, opts);
+%! d1 = eigs (fcn, n, k, 4.1, opts);
 %! assert (d1, eigs (A, k, 4.1), 1e-11);
 %!testif HAVE_ARPACK, HAVE_UMFPACK, HAVE_CHOLMOD
 %! AA = speye (10);
-%! fn = @(x) AA * x;
+%! fcn = @(x) AA * x;
 %! opts.issym = 1;  opts.isreal = 1;
-%! assert (eigs (fn, 10, AA, 3, "lm", opts), [1; 1; 1], 10*eps);
+%! assert (eigs (fcn, 10, AA, 3, "lm", opts), [1; 1; 1], 10*eps);
 %!testif HAVE_ARPACK
 %! [v1,d1] = eigs (A, k, "lm");
 %! d1 = diag (d1);
@@ -662,19 +662,19 @@
 %! assert (sort (imag (eigs (A, k, 4.1))),
 %!         sort (imag (eigs (A, speye (n), k, 4.1))), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A * x;
+%! fcn = @(x) A * x;
 %! opts.issym = 0;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, "lm", opts);
+%! d1 = eigs (fcn, n, k, "lm", opts);
 %! assert (abs (d1), abs (d0(end:-1:(end-k+1))), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A \ x;
+%! fcn = @(x) A \ x;
 %! opts.issym = 0;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, "sm", opts);
+%! d1 = eigs (fcn, n, k, "sm", opts);
 %! assert (abs (d1), d0(1:k), 1e-11);
 %!testif HAVE_ARPACK, HAVE_UMFPACK
-%! fn = @(x) (A - 4.1 * eye (n)) \ x;
+%! fcn = @(x) (A - 4.1 * eye (n)) \ x;
 %! opts.issym = 0;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, 4.1, opts);
+%! d1 = eigs (fcn, n, k, 4.1, opts);
 %! assert (abs (d1), eigs (A, k, 4.1), 1e-11);
 %!testif HAVE_ARPACK
 %! [v1,d1] = eigs (A, k, "lm");
@@ -794,19 +794,19 @@
 %! assert (sort (imag (eigs (A, k, 4.1))),
 %!         sort (imag (eigs (A, speye (n), k, 4.1))), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A * x;
+%! fcn = @(x) A * x;
 %! opts.issym = 0;  opts.isreal = 0;
-%! d1 = eigs (fn, n, k, "lm", opts);
+%! d1 = eigs (fcn, n, k, "lm", opts);
 %! assert (abs (d1), abs (d0(end:-1:(end-k+1))), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A \ x;
+%! fcn = @(x) A \ x;
 %! opts.issym = 0;  opts.isreal = 0;
-%! d1 = eigs (fn, n, k, "sm", opts);
+%! d1 = eigs (fcn, n, k, "sm", opts);
 %! assert (abs (d1), d0(1:k), 1e-11);
 %!testif HAVE_ARPACK, HAVE_UMFPACK
-%! fn = @(x) (A - 4.1 * eye (n)) \ x;
+%! fcn = @(x) (A - 4.1 * eye (n)) \ x;
 %! opts.issym = 0;  opts.isreal = 0;
-%! d1 = eigs (fn, n, k, 4.1, opts);
+%! d1 = eigs (fcn, n, k, 4.1, opts);
 %! assert (abs (d1), eigs (A, k, 4.1), 1e-11);
 %!testif HAVE_ARPACK
 %! [v1,d1] = eigs (A, k, "lm");
@@ -1033,19 +1033,19 @@
 %!testif HAVE_ARPACK
 %! assert (eigs (A, k, 4.1), eigs (A, eye (n), k, 4.1), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A * x;
+%! fcn = @(x) A * x;
 %! opts.issym = 1;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, "lm", opts);
+%! d1 = eigs (fcn, n, k, "lm", opts);
 %! assert (d1, d0(end:-1:(end-k+1)), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A \ x;
+%! fcn = @(x) A \ x;
 %! opts.issym = 1;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, "sm", opts);
+%! d1 = eigs (fcn, n, k, "sm", opts);
 %! assert (d1, d0(k:-1:1), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) (A - 4.1 * eye (n)) \ x;
+%! fcn = @(x) (A - 4.1 * eye (n)) \ x;
 %! opts.issym = 1;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, 4.1, opts);
+%! d1 = eigs (fcn, n, k, 4.1, opts);
 %! assert (d1, eigs (A, k, 4.1), 1e-11);
 %!testif HAVE_ARPACK
 %! [v1,d1] = eigs (A, k, "lm");
@@ -1156,19 +1156,19 @@
 %! assert (sort (imag (eigs (A, k, 4.1))),
 %!         sort (imag (eigs (A, eye (n), k, 4.1))), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A * x;
+%! fcn = @(x) A * x;
 %! opts.issym = 0;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, "lm", opts);
+%! d1 = eigs (fcn, n, k, "lm", opts);
 %! assert (abs (d1), abs (d0(end:-1:(end-k+1))), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A \ x;
+%! fcn = @(x) A \ x;
 %! opts.issym = 0;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, "sm", opts);
+%! d1 = eigs (fcn, n, k, "sm", opts);
 %! assert (abs (d1), d0(1:k), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) (A - 4.1 * eye (n)) \ x;
+%! fcn = @(x) (A - 4.1 * eye (n)) \ x;
 %! opts.issym = 0;  opts.isreal = 1;
-%! d1 = eigs (fn, n, k, 4.1, opts);
+%! d1 = eigs (fcn, n, k, 4.1, opts);
 %! assert (abs (d1), eigs (A, k, 4.1), 1e-11);
 %!testif HAVE_ARPACK
 %! [v1,d1] = eigs (A, k, "lm");
@@ -1287,19 +1287,19 @@
 %! assert (sort (imag (eigs (A, k, 4.1))),
 %!         sort (imag (eigs (A, eye (n), k, 4.1))), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A * x;
+%! fcn = @(x) A * x;
 %! opts.issym = 0;  opts.isreal = 0;
-%! d1 = eigs (fn, n, k, "lm", opts);
+%! d1 = eigs (fcn, n, k, "lm", opts);
 %! assert (abs (d1), abs (d0(end:-1:(end-k+1))), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) A \ x;
+%! fcn = @(x) A \ x;
 %! opts.issym = 0;  opts.isreal = 0;
-%! d1 = eigs (fn, n, k, "sm", opts);
+%! d1 = eigs (fcn, n, k, "sm", opts);
 %! assert (abs (d1), d0(1:k), 1e-11);
 %!testif HAVE_ARPACK
-%! fn = @(x) (A - 4.1 * eye (n)) \ x;
+%! fcn = @(x) (A - 4.1 * eye (n)) \ x;
 %! opts.issym = 0;  opts.isreal = 0;
-%! d1 = eigs (fn, n, k, 4.1, opts);
+%! d1 = eigs (fcn, n, k, 4.1, opts);
 %! assert (abs (d1), eigs (A, k, 4.1), 1e-11);
 %!testif HAVE_ARPACK
 %! [v1,d1] = eigs (A, k, "lm");
@@ -1452,12 +1452,12 @@
 %!testif HAVE_ARPACK
 %! A = toeplitz ([-2, 1, zeros(1, 8)]);
 %! A = kron (A, eye (10)) + kron (eye (10), A);
-%! Afun = @(x) A * x;
+%! Afcn = @(x) A * x;
 %! opts.v0 = (1:100)';
 %! opts.maxit = 3;
 %! opts.issym = true;
 %! warning ("off", "Octave:eigs:UnconvergedEigenvalues", "local");
-%! d = eigs (Afun, 100, 4, "sm", opts);
+%! d = eigs (Afcn, 100, 4, "sm", opts);
 %! assert (d(3:4), [NaN; NaN]);
 %!testif HAVE_ARPACK
 %! A = toeplitz ([-2, 1, zeros(1, 8)]);
@@ -1510,11 +1510,11 @@
 %!testif HAVE_ARPACK
 %! A = toeplitz ([0, 1, zeros(1, 8)], [0, -1, zeros(1, 8)]);
 %! A = kron (A, eye (10)) + kron (eye (10), A);
-%! Afun = @(x) A * x;
+%! Afcn = @(x) A * x;
 %! opts.v0 = (1:100)';
 %! opts.maxit = 4;
 %! warning ("off", "Octave:eigs:UnconvergedEigenvalues", "local");
-%! d = eigs (Afun, 100, 4, "lm", opts);
+%! d = eigs (Afcn, 100, 4, "lm", opts);
 %! assert (d(3:4), [NaN+1i*NaN; NaN+1i*NaN]);
 %!testif HAVE_ARPACK
 %! A = 1i * magic (100);
@@ -1532,12 +1532,12 @@
 %! assert (d(9:10), [NaN+1i*NaN; NaN+1i*NaN]);
 %!testif HAVE_ARPACK
 %! A = 1i * magic (100);
-%! Afun = @(x) A * x;
+%! Afcn = @(x) A * x;
 %! opts.v0 = (1:100)';
 %! opts.maxit = 1;
 %! opts.isreal = false;
 %! warning ("off", "Octave:eigs:UnconvergedEigenvalues", "local");
-%! d = eigs (Afun, 100, 6, "lm", opts);
+%! d = eigs (Afcn, 100, 6, "lm", opts);
 %! assert (d(6), NaN+1i*NaN);
 %!testif HAVE_ARPACK, HAVE_CHOLMOD
 %! A = sparse (magic (10));
@@ -1567,8 +1567,8 @@
 %! B = B * B';
 %! opts.v0 = (1:10)';
 %! [Evector, Evalues] = eigs (A, B, 4, "LM", opts);
-%! Afun = @(x) A * x;
-%! [Evector_f Evalues_f] = eigs (Afun, 10, B, 4, "LM", opts);
+%! Afcn = @(x) A * x;
+%! [Evector_f Evalues_f] = eigs (Afcn, 10, B, 4, "LM", opts);
 %! assert (Evector, Evector_f);
 %! assert (Evalues, Evalues_f);
 %!testif HAVE_ARPACK
@@ -1579,8 +1579,8 @@
 %! opts.v0 = (1:10)';
 %! [Evector, Evalues] = eigs (A, B, 4, "SM", opts);
 %! [L, U, P] = lu (A);
-%! Afun = @(x) U \ (L \ (P * x));
-%! [Evector_f Evalues_f] = eigs (Afun, 10, B, 4, "SM", opts);
+%! Afcn = @(x) U \ (L \ (P * x));
+%! [Evector_f Evalues_f] = eigs (Afcn, 10, B, 4, "SM", opts);
 %! assert (Evector, Evector_f);
 %! assert (Evalues, Evalues_f);
 %!testif HAVE_ARPACK
@@ -1591,9 +1591,9 @@
 %! B = B * B';
 %! opts.v0 = (1:10)';
 %! [Evector, Evalues] = eigs (A, B, 4, "LM", opts);
-%! Afun = @(x) A * x;
+%! Afcn = @(x) A * x;
 %! opts.issym = true;
-%! [Evector_f Evalues_f] = eigs (Afun, 10, B, 4, "LM", opts);
+%! [Evector_f Evalues_f] = eigs (Afcn, 10, B, 4, "LM", opts);
 %! assert (Evector, Evector_f);
 %! assert (Evalues, Evalues_f);
 %!testif HAVE_ARPACK
@@ -1605,9 +1605,9 @@
 %! opts.v0 = (1:10)';
 %! [Evector, Evalues] = eigs (A, B, 4, "SM", opts);
 %! [L, U, P] = lu (A);
-%! Afun = @(x) U \ (L \ (P * x));
+%! Afcn = @(x) U \ (L \ (P * x));
 %! opts.issym = true;
-%! [Evector_f Evalues_f] = eigs (Afun, 10, B, 4, "SM", opts);
+%! [Evector_f Evalues_f] = eigs (Afcn, 10, B, 4, "SM", opts);
 %! assert (Evector, Evector_f);
 %! assert (Evalues, Evalues_f);
 %!testif HAVE_ARPACK
@@ -1617,9 +1617,9 @@
 %! B = B * B';
 %! opts.v0 = (1:10)';
 %! [Evector, Evalues] = eigs (A, B, 4, "LM", opts);
-%! Afun = @(x) A * x;
+%! Afcn = @(x) A * x;
 %! opts.isreal = false;
-%! [Evector_f Evalues_f] = eigs (Afun, 10, B, 4, "LM", opts);
+%! [Evector_f Evalues_f] = eigs (Afcn, 10, B, 4, "LM", opts);
 %! assert (Evector, Evector_f);
 %! assert (Evalues, Evalues_f);
 %!testif HAVE_ARPACK
@@ -1630,9 +1630,9 @@
 %! opts.v0 = (1:10)';
 %! [Evector, Evalues] = eigs (A, B, 4, "SM", opts);
 %! [L, U, P] = lu (A);
-%! Afun = @(x) U \ (L \ (P *x));
+%! Afcn = @(x) U \ (L \ (P *x));
 %! opts.isreal = false;
-%! [Evector_f, Evalues_f] = eigs (Afun, 10, B, 4, "SM", opts);
+%! [Evector_f, Evalues_f] = eigs (Afcn, 10, B, 4, "SM", opts);
 %! assert (Evector, Evector_f);
 %! assert (Evalues, Evalues_f);
 
--- a/scripts/sparse/gmres.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/gmres.m	Tue Nov 15 13:15:28 2022 -0800
@@ -36,8 +36,8 @@
 ##
 ## @item @var{A} is the matrix of the linear system and it must be square.
 ## @var{A} can be passed as a matrix, function handle, or inline
-## function @code{Afun} such that @code{Afun(x) = A * x}.  Additional
-## parameters to @code{Afun} are passed after @var{x0}.
+## function @code{Afcn} such that @code{Afcn(x) = A * x}.  Additional
+## parameters to @code{Afcn} are passed after @var{x0}.
 ##
 ## @item @var{b} is the right hand side vector.  It must be a column vector
 ## with the same numbers of rows as @var{A}.
@@ -141,10 +141,10 @@
 ## restart = 5;
 ## [M1, M2] = ilu (A); # in this tridiag case, it corresponds to lu (A)
 ## M = M1 * M2;
-## Afun = @@(x) A * x;
-## Mfun = @@(x) M \ x;
-## M1fun = @@(x) M1 \ x;
-## M2fun = @@(x) M2 \ x;
+## Afcn = @@(x) A * x;
+## Mfcn = @@(x) M \ x;
+## M1fcn = @@(x) M1 \ x;
+## M2fcn = @@(x) M2 \ x;
 ## @end group
 ## @end example
 ##
@@ -158,7 +158,7 @@
 ## @code{@var{A} * @var{x}}
 ##
 ## @example
-## x = gmres (Afun, b, [], [], n)
+## x = gmres (Afcn, b, [], [], n)
 ## @end example
 ##
 ## @sc{Example 3:} usage of @code{gmres} with the restart
@@ -180,7 +180,7 @@
 ## @sc{Example 5:} @code{gmres} with a function as preconditioner
 ##
 ## @example
-## x = gmres (Afun, b, [], 1e-6, n, Mfun)
+## x = gmres (Afcn, b, [], 1e-6, n, Mfcn)
 ## @end example
 ##
 ## @sc{Example 6:} @code{gmres} with preconditioner matrices @var{M1}
@@ -193,7 +193,7 @@
 ## @sc{Example 7:} @code{gmres} with functions as preconditioners
 ##
 ## @example
-## x = gmres (Afun, b, 1e-6, n, M1fun, M2fun)
+## x = gmres (Afcn, b, 1e-6, n, M1fcn, M2fcn)
 ## @end example
 ##
 ## @sc{Example 8:} @code{gmres} with as input a function requiring an argument
@@ -206,8 +206,8 @@
 ##        y = A * y;
 ##      endfor
 ##   endfunction
-## Apfun = @@(x, p) Ap (A, x, p);
-## x = gmres (Apfun, b, [], [], [], [], [], [], 2);
+## Apfcn = @@(x, p) Ap (A, x, p);
+## x = gmres (Apfcn, b, [], [], [], [], [], [], 2);
 ## @end group
 ## @end example
 ##
@@ -248,7 +248,7 @@
     class_name = "double";
   endif
 
-  [Afun, M1fun, M2fun] = __alltohandles__ (A, b, M1, M2, "gmres");
+  [Afcn, M1fcn, M2fcn] = __alltohandles__ (A, b, M1, M2, "gmres");
 
   ## Check if the inputs are empty, and in case set them
   [tol, x0] = __default__input__ ({1e-06, zeros(size (b))}, tol, x0);
@@ -329,15 +329,15 @@
   flag = 1; # Default flag is maximum # of iterations exceeded
 
   ## begin loop
-  u = feval (Afun, x_old, varargin{:});
+  u = feval (Afcn, x_old, varargin{:});
   try
     warning ("error", "Octave:singular-matrix", "local");
-    prec_res = feval (M1fun, b - u, varargin{:});  # M1*(b-u)
-    prec_res = feval (M2fun, prec_res, varargin{:});
+    prec_res = feval (M1fcn, b - u, varargin{:});  # M1*(b-u)
+    prec_res = feval (M2fcn, prec_res, varargin{:});
     presn = norm (prec_res, 2);
     resvec(1) = presn;
-    z = feval (M1fun, b, varargin{:});
-    z = feval (M2fun, z, varargin{:});
+    z = feval (M1fcn, b, varargin{:});
+    z = feval (M2fcn, z, varargin{:});
     prec_b_norm = norm (z, 2);
     B (1) = presn;
     V(:, 1) = prec_res / presn;
@@ -352,18 +352,18 @@
       restart_it = 1;
       outer_it += 1;
       x_old = x;
-      u = feval (Afun, x_old, varargin{:});
-      prec_res = feval (M1fun, b - u, varargin{:});
-      prec_res = feval (M2fun, prec_res, varargin{:});
+      u = feval (Afcn, x_old, varargin{:});
+      prec_res = feval (M1fcn, b - u, varargin{:});
+      prec_res = feval (M2fcn, prec_res, varargin{:});
       presn = norm (prec_res, 2);
       B(1) = presn;
       H(:) = 0;
       V(:, 1) = prec_res / presn;
     endif
     ## basic iteration
-    u = feval (Afun, V(:, restart_it), varargin{:});
-    tmp = feval (M1fun, u, varargin{:});
-    tmp = feval (M2fun, tmp, varargin{:});
+    u = feval (Afcn, V(:, restart_it), varargin{:});
+    tmp = feval (M1fcn, u, varargin{:});
+    tmp = feval (M2fcn, tmp, varargin{:});
     [V(:,restart_it + 1), H(1:restart_it + 1, restart_it)] = ...
       mgorth (tmp, V(:,1:restart_it));
     Y = (H(1:restart_it + 1, 1:restart_it) \ B(1:restart_it + 1));
@@ -469,23 +469,23 @@
 %! M = M1 * M2;
 %! x = gmres (A, b, [], [], n);
 %! x = gmres (A, b, restart, [], n);  # gmres with restart
-%! Afun = @(x) A * x;
-%! x = gmres (Afun, b, [], [], n);
+%! Afcn = @(x) A * x;
+%! x = gmres (Afcn, b, [], [], n);
 %! x = gmres (A, b, [], 1e-6, n, M);  # gmres without restart
 %! x = gmres (A, b, [], 1e-6, n, M1, M2);
-%! Mfun = @(x) M \ x;
-%! x = gmres (Afun, b, [], 1e-6, n, Mfun);
-%! M1fun = @(x) M1 \ x;
-%! M2fun = @(x) M2 \ x;
-%! x = gmres (Afun, b, [], 1e-6, n, M1fun, M2fun);
+%! Mfcn = @(x) M \ x;
+%! x = gmres (Afcn, b, [], 1e-6, n, Mfcn);
+%! M1fcn = @(x) M1 \ x;
+%! M2fcn = @(x) M2 \ x;
+%! x = gmres (Afcn, b, [], 1e-6, n, M1fcn, M2fcn);
 %! function y = Ap (A, x, p)  # compute A^p * x
 %!    y = x;
 %!    for i = 1:p
 %!      y = A * y;
 %!    endfor
 %!  endfunction
-%! Afun = @(x, p) Ap (A, x, p);
-%! x = gmres (Afun, b, [], [], n, [], [], [], 2);  # solution of A^2 * x = b
+%! Afcn = @(x, p) Ap (A, x, p);
+%! x = gmres (Afcn, b, [], [], n, [], [], [], 2);  # solution of A^2 * x = b
 
 %!demo
 %! n = 10;
@@ -510,28 +510,28 @@
 %! b = sum (A, 2);
 %! M1 = diag (sqrt (diag (A)));
 %! M2 = M1;
-%! Afun = @(z) A * z;
-%! M1_fun = @(z) M1 \ z;
-%! M2_fun = @(z) M2 \ z;
+%! Afcn = @(z) A * z;
+%! M1_fcn = @(z) M1 \ z;
+%! M2_fcn = @(z) M2 \ z;
 %! [x, flag] = gmres (A, b);
 %! assert (flag, 0);
 %! [x, flag] = gmres (A, b, [], [], [], M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = gmres (A, b, [], [], [], M1_fun, M2_fun);
+%! [x, flag] = gmres (A, b, [], [], [], M1_fcn, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = gmres (A, b, [], [], [], M1_fun, M2);
+%! [x, flag] = gmres (A, b, [], [], [], M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = gmres (A, b, [], [], [], M1, M2_fun);
+%! [x, flag] = gmres (A, b, [], [], [], M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = gmres (Afun, b);
+%! [x, flag] = gmres (Afcn, b);
 %! assert (flag, 0);
-%! [x, flag] = gmres (Afun, b, [],[],[], M1, M2);
+%! [x, flag] = gmres (Afcn, b, [],[],[], M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = gmres (Afun, b, [],[],[], M1_fun, M2);
+%! [x, flag] = gmres (Afcn, b, [],[],[], M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = gmres (Afun, b, [],[],[], M1, M2_fun);
+%! [x, flag] = gmres (Afcn, b, [],[],[], M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = gmres (Afun, b, [],[],[], M1_fun, M2_fun);
+%! [x, flag] = gmres (Afcn, b, [],[],[], M1_fcn, M2_fcn);
 %! assert (flag, 0);
 
 %!test
@@ -634,11 +634,11 @@
 %! assert (class (x), "single");
 
 %!test
-%!function y = Afun (x)
+%!function y = Afcn (x)
 %!   A = toeplitz ([2, 1, 0, 0], [2, -1, 0, 0]);
 %!   y = A * x;
 %!endfunction
-%! [x, flag] = gmres ("Afun", [1; 2; 2; 3]);
+%! [x, flag] = gmres ("Afcn", [1; 2; 2; 3]);
 %! assert (x, ones (4, 1), 1e-6);
 
 %!test # preconditioned residual
--- a/scripts/sparse/ichol.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/ichol.m	Tue Nov 15 13:15:28 2022 -0800
@@ -364,7 +364,7 @@
 
 ## ICHOLT tests
 
-#%!test
+%!#test
 %! opts.type = "ict";
 %! opts.droptol = 1e-1;
 %! opts.michol = "off";
@@ -376,8 +376,8 @@
 %! opts.shape = "lower";
 %! L = ichol (A1, opts);
 %! assert (norm (A1 - L * L', "fro") / norm (A1, "fro"), 0.2065, 1e-4);
-%!
-#%!test
+
+%!#test
 %! opts.type = "ict";
 %! opts.droptol = 1e-1;
 %! opts.michol = "on";
@@ -390,7 +390,7 @@
 %! opts.diagcomp = 3e-3;
 %! L = ichol (A1, opts);
 %! assert (norm (A1 - L * L', "fro") / norm (A1, "fro"), 0.3266, 1e-4);
-%!
+
 %!test
 %! opts.type = "ict";
 %! opts.droptol = 1e-1;
@@ -400,7 +400,7 @@
 %! opts.michol = "on";
 %! L = ichol (A2, opts);
 %! assert (norm (A2 - L*L', "fro") / norm (A2, "fro"), 0.2377, 1e-4);
-%!
+
 %!test
 %! opts.type = "ict";
 %! opts.droptol = 1e-1;
@@ -410,7 +410,7 @@
 %! opts.michol = "on";
 %! L = ichol (A3, opts);
 %! assert (norm (A3 - L*L', "fro") / norm (A3, "fro"), eps, eps);
-%!
+
 %!test
 %! opts.type = "ict";
 %! opts.droptol = 1e-1;
@@ -420,7 +420,7 @@
 %! opts.michol = "on";
 %! L = ichol (A4, opts);
 %! assert (norm (A4 - L*L', "fro") / norm (A4, "fro"), 0.2118, 1e-4);
-%!
+
 %!test
 %! opts.type = "ict";
 %! opts.droptol = 1e-1;
--- a/scripts/sparse/ilu.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/ilu.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} ilu (@var{A})
-## @deftypefnx {} {} ilu (@var{A}, @var{opts})
+## @deftypefn  {} {@var{LUA} =} ilu (@var{A})
+## @deftypefnx {} {@var{LUA} =} ilu (@var{A}, @var{opts})
 ## @deftypefnx {} {[@var{L}, @var{U}] =} ilu (@dots{})
 ## @deftypefnx {} {[@var{L}, @var{U}, @var{P}] =} ilu (@dots{})
 ##
--- a/scripts/sparse/pcg.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/pcg.m	Tue Nov 15 13:15:28 2022 -0800
@@ -36,8 +36,8 @@
 ## @itemize
 ## @item @var{A} is the matrix of the linear system and it must be square.
 ## @var{A} can be passed as a matrix, function handle, or inline function
-## @code{Afun} such that @code{Afun(x) = A * x}.  Additional parameters to
-## @code{Afun} may be passed after @var{x0}.
+## @code{Afcn} such that @code{Afcn(x) = A * x}.  Additional parameters to
+## @code{Afcn} may be passed after @var{x0}.
 ##
 ## @var{A} has to be Hermitian and Positive Definite (@nospell{HPD})@.  If
 ## @code{pcg} detects @var{A} not to be positive definite, a warning is printed
@@ -163,10 +163,10 @@
 ## M1 = ichol (A); # in this tridiagonal case it corresponds to chol (A)'
 ## M2 = M1';
 ## M = M1 * M2;
-## Afun = @@(x) A * x;
-## Mfun = @@(x) M \ x;
-## M1fun = @@(x) M1 \ x;
-## M2fun = @@(x) M2 \ x;
+## Afcn = @@(x) A * x;
+## Mfcn = @@(x) M \ x;
+## M1fcn = @@(x) M1 \ x;
+## M2fcn = @@(x) M2 \ x;
 ## @end group
 ## @end example
 ##
@@ -180,7 +180,7 @@
 ## @code{@var{A} * @var{x}}
 ##
 ## @example
-## x = pcg (Afun, b)
+## x = pcg (Afcn, b)
 ## @end example
 ##
 ## @sc{Example 3:} @code{pcg} with a preconditioner matrix @var{M}
@@ -192,7 +192,7 @@
 ## @sc{Example 4:} @code{pcg} with a function as preconditioner
 ##
 ## @example
-## x = pcg (Afun, b, 1e-6, 100, Mfun)
+## x = pcg (Afcn, b, 1e-6, 100, Mfcn)
 ## @end example
 ##
 ## @sc{Example 5:} @code{pcg} with preconditioner matrices @var{M1}
@@ -205,7 +205,7 @@
 ## @sc{Example 6:} @code{pcg} with functions as preconditioners
 ##
 ## @example
-## x = pcg (Afun, b, 1e-6, 100, M1fun, M2fun)
+## x = pcg (Afcn, b, 1e-6, 100, M1fcn, M2fcn)
 ## @end example
 ##
 ## @sc{Example 7:} @code{pcg} with as input a function requiring an argument
@@ -218,8 +218,8 @@
 ##        y = A * y;
 ##      endfor
 ##   endfunction
-## Apfun = @@(x, p) Ap (A, x, p);
-## x = pcg (Apfun, b, [], [], [], [], [], 2);
+## Apfcn = @@(x, p) Ap (A, x, p);
+## x = pcg (Apfcn, b, [], [], [], [], [], 2);
 ## @end group
 ## @end example
 ##
@@ -275,7 +275,7 @@
   ## Check if the input data A,b,m1,m2 are consistent (i.e. if they are
   ## matrix or function handle)
 
-  [Afun, M1fun, M2fun] = __alltohandles__ (A, b, M1, M2, "pcg");
+  [Afcn, M1fcn, M2fcn] = __alltohandles__ (A, b, M1, M2, "pcg");
 
   maxit += 2;
   n_arg_out = nargout;
@@ -301,7 +301,7 @@
   ## x_pr (x previous) needs to check the stagnation
   ## x_min needs to save the iterated with minimum residual
 
-  r = b - feval (Afun, x, varargin{:});
+  r = b - feval (Afcn, x, varargin{:});
   iter = 2;
   iter_min = 0;
   flag = 1;
@@ -320,15 +320,15 @@
     if (iter == 2) # Check whether M1 or M2 are singular
       try
         warning ("error","Octave:singular-matrix","local");
-        z = feval (M1fun, r, varargin{:});
-        z = feval (M2fun, z, varargin{:});
+        z = feval (M1fcn, r, varargin{:});
+        z = feval (M2fcn, z, varargin{:});
       catch
         flag = 2;
         break;
       end_try_catch
     else
-      z = feval (M1fun, r, varargin{:});
-      z = feval (M2fun, z, varargin{:});
+      z = feval (M1fcn, r, varargin{:});
+      z = feval (M2fcn, z, varargin{:});
     endif
 
     tau = z' * r;
@@ -336,7 +336,7 @@
     beta = tau / old_tau;
     old_tau = tau;
     p = z + beta * p;
-    w = feval (Afun, p, varargin{:});
+    w = feval (Afcn, p, varargin{:});
 
     ## Needed only for eigest.
 
@@ -378,8 +378,8 @@
   if (n_arg_out > 5)
   ## Apply the preconditioner once more and finish with the precond
   ## residual.
-    z = feval (M1fun, r, varargin{:});
-    z = feval (M2fun, z, varargin{:});
+    z = feval (M1fcn, r, varargin{:});
+    z = feval (M2fcn, z, varargin{:});
   endif
 
   ## (Eventually) computes the eigenvalue of inv(m2)*inv(m1)*A
@@ -466,24 +466,24 @@
 %! M2 = M1';
 %! M = M1 * M2;
 %! x = pcg (A, b);
-%! Afun = @(x) A * x;
-%! x = pcg (Afun, b);
+%! Afcn = @(x) A * x;
+%! x = pcg (Afcn, b);
 %! x = pcg (A, b, 1e-6, 100, M);
 %! x = pcg (A, b, 1e-6, 100, M1, M2);
-%! Mfun = @(x) M \ x;
-%! x = pcg (Afun, b, 1e-6, 100, Mfun);
-%! M1fun = @(x) M1 \ x;
-%! M2fun = @(x) M2 \ x;
-%! x = pcg (Afun, b, 1e-6, 100, M1fun, M2fun);
+%! Mfcn = @(x) M \ x;
+%! x = pcg (Afcn, b, 1e-6, 100, Mfcn);
+%! M1fcn = @(x) M1 \ x;
+%! M2fcn = @(x) M2 \ x;
+%! x = pcg (Afcn, b, 1e-6, 100, M1fcn, M2fcn);
 %! function y = Ap (A, x, p)  # compute A^p * x
 %!    y = x;
 %!    for i = 1:p
 %!      y = A * y;
 %!    endfor
 %!  endfunction
-%! Afun = @(x, p) Ap (A, x, p);
+%! Afcn = @(x, p) Ap (A, x, p);
 %! ## solution of A^2 * x = b
-%! x = pcg (Afun, b, [], [], [], [], [], 2);
+%! x = pcg (Afcn, b, [], [], [], [], [], 2);
 
 %!demo
 %! n = 10;
@@ -506,32 +506,32 @@
 %! b = A * ones (5, 1);
 %! M1 = diag (sqrt (diag (A)));
 %! M2 = M1;  # M1 * M2 is the Jacobi preconditioner
-%! Afun = @(z) A*z;
-%! M1_fun = @(z) M1 \ z;
-%! M2_fun = @(z) M2 \ z;
+%! Afcn = @(z) A*z;
+%! M1_fcn = @(z) M1 \ z;
+%! M2_fcn = @(z) M2 \ z;
 %! [x, flag, ~, iter] = pcg (A,b);
 %! assert (flag, 0);
 %! [x, flag, ~ , iter] = pcg (A, b, [], [], M1 * M2);
 %! assert (flag, 0);
 %! [x, flag, ~ , iter] = pcg (A, b, [], [], M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = pcg (A, b, [], [], M1_fun, M2_fun);
+%! [x, flag] = pcg (A, b, [], [], M1_fcn, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = pcg (A, b,[],[], M1_fun, M2);
+%! [x, flag] = pcg (A, b,[],[], M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = pcg (A, b,[],[], M1, M2_fun);
+%! [x, flag] = pcg (A, b,[],[], M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = pcg (Afun, b);
+%! [x, flag] = pcg (Afcn, b);
 %! assert (flag, 0);
-%! [x, flag] = pcg (Afun, b,[],[], M1 * M2);
+%! [x, flag] = pcg (Afcn, b,[],[], M1 * M2);
 %! assert (flag, 0);
-%! [x, flag] = pcg (Afun, b,[],[], M1, M2);
+%! [x, flag] = pcg (Afcn, b,[],[], M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = pcg (Afun, b,[],[], M1_fun, M2);
+%! [x, flag] = pcg (Afcn, b,[],[], M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = pcg (Afun, b,[],[], M1, M2_fun);
+%! [x, flag] = pcg (Afcn, b,[],[], M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = pcg (Afun, b,[],[], M1_fun, M2_fun);
+%! [x, flag] = pcg (Afcn, b,[],[], M1_fcn, M2_fcn);
 %! assert (flag, 0);
 
 %!test
@@ -658,11 +658,11 @@
 %! assert (class (x), "single");
 
 %!test
-%!function y = Afun (x)
+%!function y = Afcn (x)
 %!   A = toeplitz ([2, 1, 0, 0]);
 %!   y = A * x;
 %!endfunction
-%! [x, flag] = pcg ("Afun", [3; 4; 4; 3]);
+%! [x, flag] = pcg ("Afcn", [3; 4; 4; 3]);
 %! assert (x, ones (4, 1), 1e-6);
 
 %!test
--- a/scripts/sparse/private/__alltohandles__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/private/__alltohandles__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {[@var{Afun}, @var{M1fun}, @var{M2fun}] =} __alltohandles__ (@var{A}, @var{b}, @var{M1}, @var{M2}, @var{solver_name})
+## @deftypefn {} {[@var{Afcn}, @var{M1fcn}, @var{M2fcn}] =} __alltohandles__ (@var{A}, @var{b}, @var{M1}, @var{M2}, @var{solver_name})
 ##
 ## Check if the parameters @var{A} (matrix of our linear system), @var{b}
 ## (right hand side vector), @var{M1}, @var{M2} (preconditioner matrices) are
@@ -47,13 +47,13 @@
 ##
 ## @itemize
 ##
-## @item @var{Afun}, @var{M1fun}, @var{M2fun} are the corresponding
+## @item @var{Afcn}, @var{M1fcn}, @var{M2fcn} are the corresponding
 ## function handles.
 ##
 ## @end itemize
 ## @end deftypefn
 
-function [Afun, M1fun, M2fun] = __alltohandles__ (A, b, M1, M2, solver_name)
+function [Afcn, M1fcn, M2fcn] = __alltohandles__ (A, b, M1, M2, solver_name)
 
   A_is_numeric = false;
   M1_is_numeric = false;
@@ -61,9 +61,9 @@
 
   ## Check A and set its type
   if (is_function_handle (A))
-     Afun = A;
+     Afcn = A;
   elseif (ischar (A))
-    Afun = str2func (A);
+    Afcn = str2func (A);
   elseif (! isnumeric (A) || ! issquare (A))
     error ([solver_name, ": A must be a square matrix or a function handle"]);
   else
@@ -78,18 +78,18 @@
     switch (solver_name)
       case {"pcg", "gmres", "bicgstab", "cgs", "tfqmr"}
         ## methods which do not require the transpose
-        M1fun = @(x) x;
+        M1fcn = @(x) x;
       case {"bicg"}
         ## methods which do require the transpose
-        M1fun = @(x, ~) x;
+        M1fcn = @(x, ~) x;
       otherwise
         error (["__alltohandles__: unknown method: ", solver_name]);
     endswitch
   else # M1 not empty
     if (is_function_handle (M1))
-      M1fun = M1;
+      M1fcn = M1;
     elseif (ischar (M1))
-      M1fun = str2func (M1);
+      M1fcn = str2func (M1);
     elseif (! isnumeric (M1) || ! issquare (M1))
       error ([solver_name, ": M1 must be a square matrix or a function handle"]);
     else
@@ -101,18 +101,18 @@
     switch (solver_name)
       case {"pcg", "gmres", "bicgstab", "cgs", "tfqmr"}
         ## methods which do not require the transpose
-        M2fun = @(x) x;
+        M2fcn = @(x) x;
       case {"bicg"}
         ## methods which do require the transpose
-        M2fun = @(x, ~) x;
+        M2fcn = @(x, ~) x;
       otherwise
         error (["__alltohandles__: unknown method: ", solver_name]);
     endswitch
   else # M2 not empty
     if (is_function_handle (M2))
-      M2fun = M2;
+      M2fcn = M2;
     elseif (ischar (M2))
-      M2fun = str2func (M2);
+      M2fcn = str2func (M2);
     elseif (! isnumeric (M2) || ! issquare (M2))
       error ([solver_name, ": M2 must be a square matrix or a function handle"]);
     else
@@ -124,24 +124,24 @@
     case {"pcg", "gmres", "bicgstab", "cgs", "tfqmr"}
       ## methods which do not require the transpose
       if (A_is_numeric)
-        Afun = @(x) A * x;
+        Afcn = @(x) A * x;
       endif
       if (M1_is_numeric)
-        M1fun = @(x) M1 \ x;
+        M1fcn = @(x) M1 \ x;
       endif
       if (M2_is_numeric)
-        M2fun = @(x) M2 \ x;
+        M2fcn = @(x) M2 \ x;
       endif
     case {"bicg"}
       ## methods which do require the transpose
       if (A_is_numeric)
-        Afun = @(x, trans) A_sub (A, x, trans);
+        Afcn = @(x, trans) A_sub (A, x, trans);
       endif
       if (M1_is_numeric)
-        M1fun = @(x, trans) M_sub (M1, x, trans);
+        M1fcn = @(x, trans) M_sub (M1, x, trans);
       endif
       if (M2_is_numeric)
-        M2fun = @(x, trans) M_sub (M2, x, trans);
+        M2fcn = @(x, trans) M_sub (M2, x, trans);
       endif
     otherwise
       error (["__alltohandles__: unknown method: ", solver_name]);
--- a/scripts/sparse/private/__sprand__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/private/__sprand__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,9 +27,9 @@
 ## public domain.
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} __sprand__ (@var{s}, @var{randfun})
-## @deftypefnx {} {} __sprand__ (@var{m}, @var{n}, @var{d}, @var{fcnname}, @var{randfun})
-## @deftypefnx {} {} __sprand__ (@var{m}, @var{n}, @var{d}, @var{rc}, @var{fcnname}, @var{randfun})
+## @deftypefn  {} {@var{S} =} __sprand__ (@var{s}, @var{randfcn})
+## @deftypefnx {} {@var{S} =} __sprand__ (@var{m}, @var{n}, @var{d}, @var{fcnname}, @var{randfcn})
+## @deftypefnx {} {@var{S} =} __sprand__ (@var{m}, @var{n}, @var{d}, @var{rc}, @var{fcnname}, @var{randfcn})
 ## Undocumented internal function.
 ## @end deftypefn
 
@@ -38,15 +38,15 @@
 function S = __sprand__ (varargin)
 
   if (nargin == 2)
-    [m, randfun] = deal (varargin{1:2});
+    [m, randfcn] = deal (varargin{1:2});
     [i, j] = find (m);
     [nr, nc] = size (m);
-    S = sparse (i, j, randfun (size (i)), nr, nc);
+    S = sparse (i, j, randfcn (size (i)), nr, nc);
   else
     if (nargin == 5)
-      [m, n, d, fcnname, randfun] = deal (varargin{:});
+      [m, n, d, fcnname, randfcn] = deal (varargin{:});
     else
-      [m, n, d, rc, fcnname, randfun] = deal (varargin{:});
+      [m, n, d, rc, fcnname, randfcn] = deal (varargin{:});
     endif
 
     if (! (isscalar (m) && m == fix (m) && m >= 0))
@@ -87,7 +87,7 @@
         [i, j] = ind2sub ([m, n], idx);
       endif
 
-      S = sparse (i, j, randfun (k, 1), m, n);
+      S = sparse (i, j, randfcn (k, 1), m, n);
 
     elseif (nargin == 6)
       ## Create a matrix with specified reciprocal condition number.
--- a/scripts/sparse/qmr.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/qmr.m	Tue Nov 15 13:15:28 2022 -0800
@@ -97,9 +97,9 @@
   if (nargin >= 2 && isvector (full (b)))
 
     if (ischar (A))
-      fun = str2func (A);
-      Ax  = @(x) feval (fun, x, "notransp");
-      Atx = @(x) feval (fun, x, "transp");
+      fcn = str2func (A);
+      Ax  = @(x) feval (fcn, x, "notransp");
+      Atx = @(x) feval (fcn, x, "transp");
     elseif (is_function_handle (A))
       Ax  = @(x) feval (A, x, "notransp");
       Atx = @(x) feval (A, x, "transp");
@@ -124,9 +124,9 @@
       M1m1x = @(x, ignore) x;
       M1tm1x = M1m1x;
     elseif (ischar (M1))
-      fun = str2func (M1);
-      M1m1x  = @(x) feval (fun, x, "notransp");
-      M1tm1x = @(x) feval (fun, x, "transp");
+      fcn = str2func (M1);
+      M1m1x  = @(x) feval (fcn, x, "notransp");
+      M1tm1x = @(x) feval (fcn, x, "transp");
     elseif (is_function_handle (M1))
       M1m1x  = @(x) feval (M1, x, "notransp");
       M1tm1x = @(x) feval (M1, x, "transp");
@@ -141,9 +141,9 @@
       M2m1x = @(x, ignore) x;
       M2tm1x = M2m1x;
     elseif (ischar (M2))
-      fun = str2func (M2);
-      M2m1x  = @(x) feval (fun, x, "notransp");
-      M2tm1x = @(x) feval (fun, x, "transp");
+      fcn = str2func (M2);
+      M2m1x  = @(x) feval (fcn, x, "notransp");
+      M2tm1x = @(x) feval (fcn, x, "transp");
     elseif (is_function_handle (M2))
       M2m1x  = @(x) feval (M2, x, "notransp");
       M2tm1x = @(x) feval (M2, x, "transp");
@@ -290,7 +290,7 @@
 %! [x, flag, relres, iter, resvec] = qmr (A, b, rtol, maxit, M1, M2);
 %! assert (x, ones (size (b)), 1e-7);
 
-%!function y = afun (x, t, a)
+%!function y = afcn (x, t, a)
 %!  switch (t)
 %!    case "notransp"
 %!      y = a * x;
@@ -308,7 +308,7 @@
 %! M1 = spdiags ([ones(n,1)/(-2) ones(n,1)],-1:0, n, n);
 %! M2 = spdiags ([4*ones(n,1) -ones(n,1)], 0:1, n, n);
 %!
-%! [x, flag, relres, iter, resvec] = qmr (@(x, t) afun (x, t, A),
+%! [x, flag, relres, iter, resvec] = qmr (@(x, t) afcn (x, t, A),
 %!                                         b, rtol, maxit, M1, M2);
 %! assert (x, ones (size (b)), 1e-7);
 
--- a/scripts/sparse/sprand.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/sprand.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,9 +27,9 @@
 ## public domain.
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} sprand (@var{m}, @var{n}, @var{d})
-## @deftypefnx {} {} sprand (@var{m}, @var{n}, @var{d}, @var{rc})
-## @deftypefnx {} {} sprand (@var{s})
+## @deftypefn  {} {@var{s} =} sprand (@var{m}, @var{n}, @var{d})
+## @deftypefnx {} {@var{s} =} sprand (@var{m}, @var{n}, @var{d}, @var{rc})
+## @deftypefnx {} {@var{s} =} sprand (@var{s})
 ## Generate a sparse matrix with uniformly distributed random values.
 ##
 ## The size of the matrix is @var{m}x@var{n} with a density of values @var{d}.
--- a/scripts/sparse/sprandn.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/sprandn.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,9 +27,9 @@
 ## public domain.
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} sprandn (@var{m}, @var{n}, @var{d})
-## @deftypefnx {} {} sprandn (@var{m}, @var{n}, @var{d}, @var{rc})
-## @deftypefnx {} {} sprandn (@var{s})
+## @deftypefn  {} {@var{s} =} sprandn (@var{m}, @var{n}, @var{d})
+## @deftypefnx {} {@var{s} =} sprandn (@var{m}, @var{n}, @var{d}, @var{rc})
+## @deftypefnx {} {@var{s} =} sprandn (@var{s})
 ## Generate a sparse matrix with normally distributed random values.
 ##
 ## The size of the matrix is @var{m}x@var{n} with a density of values @var{d}.
--- a/scripts/sparse/sprandsym.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/sprandsym.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} sprandsym (@var{n}, @var{d})
-## @deftypefnx {} {} sprandsym (@var{s})
+## @deftypefn  {} {@var{S} =} sprandsym (@var{n}, @var{d})
+## @deftypefnx {} {@var{S} =} sprandsym (@var{s})
 ## Generate a symmetric random sparse matrix.
 ##
 ## The size of the matrix will be @var{n}x@var{n}, with a density of values
--- a/scripts/sparse/tfqmr.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/tfqmr.m	Tue Nov 15 13:15:28 2022 -0800
@@ -35,8 +35,8 @@
 ##
 ## @item @var{A} is the matrix of the linear system and it must be square.
 ## @var{A} can be passed as a matrix, function handle, or inline
-## function @code{Afun} such that @code{Afun(x) = A * x}.  Additional
-## parameters to @code{Afun} are passed after @var{x0}.
+## function @code{Afcn} such that @code{Afcn(x) = A * x}.  Additional
+## parameters to @code{Afcn} are passed after @var{x0}.
 ##
 ## @item @var{b} is the right hand side vector.  It must be a column vector
 ## with the same number of rows as @var{A}.
@@ -115,10 +115,10 @@
 ## restart = 5;
 ## [M1, M2] = ilu (A); # in this tridiag case it corresponds to chol (A)'
 ## M = M1 * M2;
-## Afun = @@(x) A * x;
-## Mfun = @@(x) M \ x;
-## M1fun = @@(x) M1 \ x;
-## M2fun = @@(x) M2 \ x;
+## Afcn = @@(x) A * x;
+## Mfcn = @@(x) M \ x;
+## M1fcn = @@(x) M1 \ x;
+## M2fcn = @@(x) M2 \ x;
 ## @end group
 ## @end example
 ##
@@ -132,7 +132,7 @@
 ## @code{@var{A} * @var{x}}
 ##
 ## @example
-## x = tfqmr (Afun, b, [], n)
+## x = tfqmr (Afcn, b, [], n)
 ## @end example
 ##
 ## @sc{Example 3:} @code{tfqmr} with a preconditioner matrix @var{M}
@@ -144,7 +144,7 @@
 ## @sc{Example 4:} @code{tfqmr} with a function as preconditioner
 ##
 ## @example
-## x = tfqmr (Afun, b, 1e-6, n, Mfun)
+## x = tfqmr (Afcn, b, 1e-6, n, Mfcn)
 ## @end example
 ##
 ## @sc{Example 5:} @code{tfqmr} with preconditioner matrices @var{M1}
@@ -157,7 +157,7 @@
 ## @sc{Example 6:} @code{tfmqr} with functions as preconditioners
 ##
 ## @example
-## x = tfqmr (Afun, b, 1e-6, n, M1fun, M2fun)
+## x = tfqmr (Afcn, b, 1e-6, n, M1fcn, M2fcn)
 ## @end example
 ##
 ## @sc{Example 7:} @code{tfqmr} with as input a function requiring an argument
@@ -170,8 +170,8 @@
 ##      y = A * y;
 ##    endfor
 ##  endfunction
-## Apfun = @@(x, string, p) Ap (A, x, string, p);
-## x = tfqmr (Apfun, b, [], [], [], [], [], 2);
+## Apfcn = @@(x, string, p) Ap (A, x, string, p);
+## x = tfqmr (Apfcn, b, [], [], [], [], [], 2);
 ## @end group
 ## @end example
 ##
@@ -206,7 +206,7 @@
          tfqmr (A, b, tol = [], maxit = [], M1 = [], M2 = [], ...
                 x0 = [], varargin)
 
-  [Afun, M1fun, M2fun] = __alltohandles__ (A, b, M1, M2, "tfqmr");
+  [Afcn, M1fcn, M2fcn] = __alltohandles__ (A, b, M1, M2, "tfqmr");
 
   [tol, maxit, x0] = __default__input__ ({1e-06, 2 * min(20, rows (b)), ...
                                           zeros(rows (b), 1)}, tol, ...
@@ -233,7 +233,7 @@
   resvec = zeros (maxit, 1);
   flag = 1;
 
-  w = u = r = r_star = b - feval (Afun, x0, varargin{:});
+  w = u = r = r_star = b - feval (Afcn, x0, varargin{:});
   rho_1 = (r_star' * r);
   d = 0;
   tau = norm (r, 2);
@@ -243,9 +243,9 @@
 
   try
     warning ("error", "Octave:singular-matrix", "local");
-    u_hat = feval (M1fun, u, varargin{:});
-    u_hat = feval (M2fun, u_hat, varargin{:});
-    v = feval (Afun, u_hat, varargin{:});
+    u_hat = feval (M1fcn, u, varargin{:});
+    u_hat = feval (M2fcn, u_hat, varargin{:});
+    v = feval (Afcn, u_hat, varargin{:});
   catch
     flag = 2;
   end_try_catch
@@ -262,16 +262,16 @@
       alpha = rho_1 / v_r;
       u_1 = u - alpha * v;  # u at the after iteration
     endif
-    u_hat = feval (M1fun, u, varargin{:});
-    u_hat = feval (M2fun, u_hat, varargin{:});
-    w -= alpha * feval (Afun, u_hat, varargin{:});
+    u_hat = feval (M1fcn, u, varargin{:});
+    u_hat = feval (M2fcn, u_hat, varargin{:});
+    w -= alpha * feval (Afcn, u_hat, varargin{:});
     d = u_hat + ((theta * theta) / alpha) * eta * d;
     theta = norm (w, 2) / tau;
     c = 1 / sqrt (1 + theta * theta);
     tau *= theta * c;
     eta = (c * c) * alpha;
     x += eta * d;
-    r -= eta * feval (Afun, d, varargin{:});
+    r -= eta * feval (Afcn, d, varargin{:});
     if (it < 0) # iter is odd
       rho_2 = rho_1;
       rho_1 = (r_star' * w);
@@ -283,10 +283,10 @@
       endif
       beta = rho_1 / rho_2;
       u_1 = w + beta * u; # u at the after iteration
-      u1_hat = feval (M1fun, u_1, varargin{:});
-      u1_hat = feval (M2fun, u1_hat, varargin{:});
-      v = feval (Afun, u1_hat, varargin{:}) + ...
-          beta * (feval (Afun, u_hat, varargin{:}) + beta * v);
+      u1_hat = feval (M1fcn, u_1, varargin{:});
+      u1_hat = feval (M2fcn, u1_hat, varargin{:});
+      v = feval (Afcn, u1_hat, varargin{:}) + ...
+          beta * (feval (Afcn, u_hat, varargin{:}) + beta * v);
     endif
     u = u_1;
     iter += 1;
@@ -355,28 +355,28 @@
 %! M1 = diag (sqrt (diag (A)));
 %! M2 = M1;
 %! maxit = 10;
-%! Afun = @(z) A * z;
-%! M1_fun = @(z) M1 \ z;
-%! M2_fun = @(z) M2 \ z;
+%! Afcn = @(z) A * z;
+%! M1_fcn = @(z) M1 \ z;
+%! M2_fcn = @(z) M2 \ z;
 %! [x, flag] = tfqmr (A,b);
 %! assert (flag, 0);
 %! [x, flag] = tfqmr (A, b, [], maxit, M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = tfqmr (A, b, [], maxit, M1_fun, M2_fun);
+%! [x, flag] = tfqmr (A, b, [], maxit, M1_fcn, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = tfqmr (A, b, [], maxit, M1_fun, M2);
+%! [x, flag] = tfqmr (A, b, [], maxit, M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = tfqmr (A, b, [], maxit, M1, M2_fun);
+%! [x, flag] = tfqmr (A, b, [], maxit, M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = tfqmr (Afun, b);
+%! [x, flag] = tfqmr (Afcn, b);
 %! assert (flag, 0);
-%! [x, flag] = tfqmr (Afun, b, [], maxit, M1, M2);
+%! [x, flag] = tfqmr (Afcn, b, [], maxit, M1, M2);
 %! assert (flag, 0);
-%! [x, flag] = tfqmr (Afun, b, [], maxit, M1_fun, M2);
+%! [x, flag] = tfqmr (Afcn, b, [], maxit, M1_fcn, M2);
 %! assert (flag, 0);
-%! [x, flag] = tfqmr (Afun, b, [], maxit, M1, M2_fun);
+%! [x, flag] = tfqmr (Afcn, b, [], maxit, M1, M2_fcn);
 %! assert (flag, 0);
-%! [x, flag] = tfqmr (Afun, b, [], maxit, M1_fun, M2_fun);
+%! [x, flag] = tfqmr (Afcn, b, [], maxit, M1_fcn, M2_fcn);
 %! assert (flag, 0);
 
 %!shared A, b, n, M1, M2
@@ -393,15 +393,15 @@
 %! assert (x, ones (size (b)), 1e-7);
 %!
 %!test
-%!function y = afun (x, a)
+%!function y = afcn (x, a)
 %!  y = a * x;
 %!endfunction
 %!
 %! tol = 1e-8;
 %! maxit = 15;
 %!
-%! [x, flag, relres, iter, resvec] = tfqmr (@(x) afun (x, A), b,
-%!                                             tol, maxit, M1, M2);
+%! [x, flag, relres, iter, resvec] = tfqmr (@(x) afcn (x, A), b,
+%!                                          tol, maxit, M1, M2);
 %! assert (x, ones (size (b)), 1e-7);
 
 %!test
@@ -458,11 +458,11 @@
 %! assert (class (x), "single");
 
 %!test
-%!function y = Afun (x)
+%!function y = Afcn (x)
 %!  A = toeplitz ([2, 1, 0, 0], [2, -1, 0, 0]);
 %!  y = A * x;
 %!endfunction
-%! [x, flag] = tfqmr ("Afun", [1; 2; 2; 3]);
+%! [x, flag] = tfqmr ("Afcn", [1; 2; 2; 3]);
 %! assert (x, ones (4, 1), 1e-6);
 
 %!test # unpreconditioned residual
@@ -481,23 +481,23 @@
 %! [M1, M2] = ilu (A + 0.1 * eye (n));
 %! M = M1 * M2;
 %! x = tfqmr (A, b, [], n);
-%! Afun = @(x) A * x;
-%! x = tfqmr (Afun, b, [], n);
+%! Afcn = @(x) A * x;
+%! x = tfqmr (Afcn, b, [], n);
 %! x = tfqmr (A, b, 1e-6, n, M);
 %! x = tfqmr (A, b, 1e-6, n, M1, M2);
-%! Mfun = @(z) M \ z;
-%! x = tfqmr (Afun, b, 1e-6, n, Mfun);
-%! M1fun = @(z) M1 \ z;
-%! M2fun = @(z) M2 \ z;
-%! x = tfqmr (Afun, b, 1e-6, n, M1fun, M2fun);
+%! Mfcn = @(z) M \ z;
+%! x = tfqmr (Afcn, b, 1e-6, n, Mfcn);
+%! M1fcn = @(z) M1 \ z;
+%! M2fcn = @(z) M2 \ z;
+%! x = tfqmr (Afcn, b, 1e-6, n, M1fcn, M2fcn);
 %! function y = Ap (A, x, z) # compute A^z * x or (A^z)' * x
 %!    y = x;
 %!    for i = 1:z
 %!      y = A * y;
 %!    endfor
 %!  endfunction
-%! Afun = @(x, p) Ap (A, x, p);
-%! x = tfqmr (Afun, b, [], 2*n, [], [], [], 2); # solution of A^2 * x = b
+%! Afcn = @(x, p) Ap (A, x, p);
+%! x = tfqmr (Afcn, b, [], 2*n, [], [], [], 2); # solution of A^2 * x = b
 
 %!demo
 %! n = 10;
--- a/scripts/sparse/treelayout.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/treelayout.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,21 +24,21 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} treelayout (@var{tree})
-## @deftypefnx {} {} treelayout (@var{tree}, @var{permutation})
+## @deftypefn  {} {[@var{x}, @var{y}] =} treelayout (@var{tree})
+## @deftypefnx {} {[@var{x}, @var{y}] =} treelayout (@var{tree}, @var{permutation})
+## @deftypefnx {} {[@var{x}, @var{y}, @var{h}, @var{s}] =} treelayout (@dots{})
 ## treelayout lays out a tree or a forest.
 ##
 ## The first argument @var{tree} is a vector of predecessors.
 ##
-## The parameter @var{permutation} is an optional postorder permutation.
+## The optional parameter @var{permutation} is a postorder permutation.
 ##
 ## The complexity of the algorithm is O(n) in terms of time and memory
 ## requirements.
 ## @seealso{etreeplot, gplot, treeplot}
 ## @end deftypefn
 
-function [x_coordinate, y_coordinate, height, s] = ...
-                                                 treelayout (tree, permutation)
+function [x, y, h, s] = treelayout (tree, permutation)
 
   if (nargin < 1)
     print_usage ();
@@ -162,16 +162,16 @@
     ## If there is not any descendant of "parent node":
     if (stk(end,2) != par_number)
      left_most += 1;
-     x_coordinate_r(par_number) = left_most;
+     x_r(par_number) = left_most;
      max_ht = min (max_ht, level);
-     if (length (stk) > 1 && find ((shift (stk,1) - stk) == 0) > 1
+     if (length (stk) > 1 && find ((circshift (stk,1) - stk) == 0) > 1
          && stk(end,2) != stk(end-1,2))
         ## Return to the nearest branching the position to return
         ## position is the position on the stack, where should be
         ## started further search (there are two nodes which has the
         ## same parent node).
 
-        position = (find ((shift (stk(:,2), 1) - stk(:,2)) == 0))(end) + 1;
+        position = (find ((circshift (stk(:,2), 1) - stk(:,2)) == 0))(end) + 1;
         par_number_vec = stk(position:end,2);
 
         ## The vector of removed nodes (the content of stack form
@@ -181,7 +181,7 @@
 
         ## The level have to be decreased.
 
-        x_coordinate_r(par_number_vec) = left_most;
+        x_r(par_number_vec) = left_most;
         stk(position:end,:) = [];
       endif
 
@@ -192,8 +192,8 @@
       par_number = stk(end,1);
       ## If there is another branch start to search it.
       if (par_number != -1)
-        y_coordinate(par_number) = level;
-        x_coordinate_l(par_number) = left_most + 1;
+        y(par_number) = level;
+        x_l(par_number) = left_most + 1;
       endif
     else
 
@@ -201,16 +201,16 @@
       ## them and go on through it.
       level -= 1;
       par_number = stk(end,1);
-      y_coordinate(par_number) = level;
-      x_coordinate_l(par_number) = left_most + 1;
+      y(par_number) = level;
+      x_l(par_number) = left_most + 1;
     endif
   endwhile
 
   ## Calculate the x coordinates (the known values are the position
   ## of most left and most right descendants).
-  x_coordinate = (x_coordinate_l + x_coordinate_r) / 2;
+  x = (x_l + x_r) / 2;
 
-  height = num_nodes - max_ht - 1;
+  h = num_nodes - max_ht - 1;
 
 endfunction
 
--- a/scripts/sparse/treeplot.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/sparse/treeplot.m	Tue Nov 15 13:15:28 2022 -0800
@@ -127,13 +127,13 @@
       left_most += 1;
       x_coordinate_r(par_number) = left_most;
       max_ht = min (max_ht, level);
-      if (length (stk) > 1 && find ((shift (stk,1) - stk) == 0) > 1
+      if (length (stk) > 1 && find ((circshift (stk,1) - stk) == 0) > 1
           && stk(end,2) != stk(end-1,2))
         ## Return to the nearest branching the position to return
         ## position is the position on the stack, where should be
         ## started further search (there are two nodes which has the
         ## same parent node).
-        position = (find ((shift (stk(:,2),1) - stk(:,2)) == 0))(end) + 1;
+        position = (find ((circshift (stk(:,2),1) - stk(:,2)) == 0))(end) + 1;
         par_number_vec = stk(position:end,2);
         ## The vector of removed nodes (the content of stack form
         ## position to end).
--- a/scripts/specfun/beta.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/beta.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} beta (@var{a}, @var{b})
+## @deftypefn {} {@var{y} =} beta (@var{a}, @var{b})
 ## Compute the Beta function for real inputs @var{a} and @var{b}.
 ##
 ## The Beta function definition is
@@ -48,7 +48,7 @@
 ## @seealso{betaln, betainc, betaincinv}
 ## @end deftypefn
 
-function retval = beta (a, b)
+function y = beta (a, b)
 
   if (nargin != 2)
     print_usage ();
@@ -60,7 +60,7 @@
     error ("beta: A and B must have consistent sizes");
   endif
 
-  retval = real (exp (gammaln (a) + gammaln (b) - gammaln (a+b)));
+  y = real (exp (gammaln (a) + gammaln (b) - gammaln (a+b)));
 
 endfunction
 
--- a/scripts/specfun/betainc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/betainc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} betainc (@var{x}, @var{a}, @var{b})
-## @deftypefnx {} {} betainc (@var{x}, @var{a}, @var{b}, @var{tail})
+## @deftypefn  {} {@var{I} =} betainc (@var{x}, @var{a}, @var{b})
+## @deftypefnx {} {@var{I} =} betainc (@var{x}, @var{a}, @var{b}, @var{tail})
 ## Compute the incomplete beta function.
 ##
 ## This is defined as
@@ -72,7 +72,7 @@
 ## @seealso{beta, betaincinv, betaln}
 ## @end deftypefn
 
-function y = betainc (x, a, b, tail = "lower")
+function I = betainc (x, a, b, tail = "lower")
 
   if (nargin < 3)
     print_usage ();
@@ -115,7 +115,7 @@
 
   ## Convert to floating point if necessary
   if (isinteger (x))
-    y = double (x);
+    I = double (x);
   endif
   if (isinteger (a))
     a = double (a);
@@ -125,7 +125,7 @@
   endif
 
   ## Initialize output array
-  y = zeros (size (x), class (x));
+  I = zeros (size (x), class (x));
 
   ## Trivial cases (long code here trades memory for speed)
   a_one = (a == 1);
@@ -138,17 +138,17 @@
   b_one &= a_not_one;
 
   if (strcmpi (tail, "lower"))
-    y(a_b_one) = x(a_b_one);
+    I(a_b_one) = x(a_b_one);
     ## See bug #62329.
     ## equivalent to "1 - (1 - x(a_one)) .^ b(a_one)", but less roundoff error
-    y(a_one) = - expm1 (log1p (- x(a_one)) .* b(a_one));
-    y(b_one) = x(b_one) .^ a(b_one);
+    I(a_one) = - expm1 (log1p (- x(a_one)) .* b(a_one));
+    I(b_one) = x(b_one) .^ a(b_one);
   elseif (strcmpi (tail, "upper"))
-    y(a_b_one) = 1 - x(a_b_one);
+    I(a_b_one) = 1 - x(a_b_one);
     ## equivalent to "(1 - x(a_one)) .^ b(a_one)", but less roundoff error
-    y(a_one) = exp (log1p (- x(a_one)) .* b(a_one));
+    I(a_one) = exp (log1p (- x(a_one)) .* b(a_one));
     ## equivalent to "1 - x(b_one) .^ a(b_one)", but less roundoff error
-    y(b_one) = - expm1 (log (x(b_one)) .* a(b_one));
+    I(b_one) = - expm1 (log (x(b_one)) .* a(b_one));
   endif
 
   ## Non-Trivial cases
@@ -187,10 +187,10 @@
   y_nt = real (exp (y_nt));
   y_nt(fflag) = 1 - y_nt(fflag);
 
-  y(non_trivial) = y_nt;
+  I(non_trivial) = y_nt;
 
   ## Restore original shape
-  y = reshape (y, orig_sz);
+  I = reshape (I, orig_sz);
 
 endfunction
 
--- a/scripts/specfun/betaincinv.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/betaincinv.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} betaincinv (@var{y}, @var{a}, @var{b})
-## @deftypefnx {} {} betaincinv (@var{y}, @var{a}, @var{b}, "lower")
-## @deftypefnx {} {} betaincinv (@var{y}, @var{a}, @var{b}, "upper")
+## @deftypefn  {} {@var{x} =} betaincinv (@var{y}, @var{a}, @var{b})
+## @deftypefnx {} {@var{x} =} betaincinv (@var{y}, @var{a}, @var{b}, "lower")
+## @deftypefnx {} {@var{x} =} betaincinv (@var{y}, @var{a}, @var{b}, "upper")
 ## Compute the inverse of the normalized incomplete beta function.
 ##
 ## The normalized incomplete beta function is defined as
--- a/scripts/specfun/betaln.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/betaln.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} betaln (@var{a}, @var{b})
+## @deftypefn {} {@var{lnb} =} betaln (@var{a}, @var{b})
 ## Compute the natural logarithm of the Beta function for real inputs @var{a}
 ## and @var{b}.
 ##
@@ -48,7 +48,7 @@
 ## @seealso{beta, betainc, betaincinv, gammaln}
 ## @end deftypefn
 
-function retval = betaln (a, b)
+function lnb = betaln (a, b)
 
   if (nargin != 2)
     print_usage ();
@@ -60,7 +60,7 @@
     error ("betaln: A and B must have consistent sizes");
   endif
 
-  retval = gammaln (a) + gammaln (b) - gammaln (a + b);
+  lnb = gammaln (a) + gammaln (b) - gammaln (a + b);
 
 endfunction
 
--- a/scripts/specfun/cosint.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/cosint.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} cosint (@var{x})
+## @deftypefn {} {@var{y} =} cosint (@var{x})
 ## Compute the cosine integral function:
 ## @tex
 ## $$
@@ -76,7 +76,7 @@
 
 function y = cosint (x)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
--- a/scripts/specfun/expint.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/expint.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} expint (@var{x})
+## @deftypefn {} {@var{y} =} expint (@var{x})
 ## Compute the exponential integral.
 ##
 ## The exponential integral is defined as:
--- a/scripts/specfun/factor.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/factor.m	Tue Nov 15 13:15:28 2022 -0800
@@ -36,8 +36,28 @@
 ## their multiplicities.  That is,
 ## @code{prod (@var{pf} .^ @var{n}) == @var{q}}.
 ##
-## Implementation Note: The input @var{q} must be less than @code{flintmax}
-## when the input is a floating-point class (double or single).
+## Implementation Note: If the input @var{q} is @code{single} or @code{double},
+## then it must not exceed the corresponding @code{flintmax}.  For larger
+## inputs, cast them to @code{uint64} if they're less than 2^64:
+##
+## @example
+## @group
+## factor (uint64 (18446744073709011493))
+##    @result{}     571111    761213  42431951
+## @end group
+## @end example
+##
+## For even larger inputs, use @code{sym} if you have the Symbolic package
+## installed and loaded:
+##
+## @example
+## @group
+## factor (sym ('9444733049654361449941'))
+##    @result{} (sym)
+##               1           1
+##  1099511627689 â‹…8589934669
+## @end group
+## @end example
 ## @seealso{gcd, lcm, isprime, primes}
 ## @end deftypefn
 
@@ -67,77 +87,19 @@
     error ("factor: Q too large to factor (> flintmax)");
   endif
 
-  ## The basic idea is to divide by the prime numbers from 1 to sqrt(q).
-  ## But primes(sqrt(q)) can be very time-consuming to compute for q > 1e16,
-  ## so we divide by smaller primes first.
-  ##
-  ## This won't make a difference for prime q, but it makes a big (100x)
-  ## difference for large composite q.  Since there are many more composites
-  ## than primes, this leads overall to a speedup.
-  ##
-  ## There is at most one prime greater than sqrt(q), and if it exists,
-  ## it has multiplicity 1, so no need to consider any factors greater
-  ## than sqrt(q) directly.  If there were two factors p1, p2 > sqrt(q), then
-  ##
-  ##   q >= p1*p2 > sqrt(q)*sqrt(q) == q,
-  ##
-  ## which is a contradiction.
-  ##
-  ## The following calculation of transition and number of divisors to use
-  ## was determined empirically.  As of now (October 2021) it gives the best
-  ## overall performance over the range of 1 <= q <= intmax ("uint64").
-  ##
-  ## For future programmers: check periodically for performance improvements
-  ## and tune this transition as required.  Trials that didn't yield success
-  ## in (October 2021):
-  ##
-  ## 1.) persistent smallprimes = primes (FOO)
-  ##
-  ##     For various fixed FOO in the range 10 <= FOO <= 10e6.
-  ##     (FOO is independent of q.)  The thought had been that making it
-  ##     persistent would cache it so it didn't need to be recomputed for
-  ##     subsequent calls, but it slowed it down overall.  It seems calling
-  ##     primes twice with smaller q is still faster than one persistent
-  ##     call for a large q.
-  ##
-  ## 2.) smallprimes = primes (q ^ FOO)
-  ##
-  ##     For various values of FOO.  For FOO >= 0.25 or FOO <= 0.16, the
-  ##     performance is very poor.  FOO needs to be in the 0.17 to 0.24 range,
-  ##     somewhat.  Benchmark experiments indicate it should increase gently
-  ##     from 0.18 to 0.21 as q goes from 10^11 to 10^18.
-  ##
-  ##     But putting in such an expression would require calculating the log
-  ##     of q, which defeats any performance improvement.  Or a step-wise
-  ##     approximation like:
-  ##
-  ##     foo = 0.18 + 0.01 * (q > 1e12) + 0.01 * (q > 1e14) ...
-  ##                                    + 0.01 * (q > 1e16);
-  ##     smallprimes = primes (feval (cls, q^foo));
-  ##
-  ##     where the RHS of foo would go from 0.18 to 0.21 over several orders
-  ##     of magnitude without calling the log.  Obviously that is overly
-  ##     empirical, so putting in q^0.2 seems to be the most robust overall
-  ##     for 64-bit q.
+  ## The overall flow is this:
+  ## 1. Divide by small primes smaller than q^0.2, if any.
+  ## 2. Use Pollard Rho to reduce the value below 1e10 if possible.
+  ## 3. Divide by primes smaller than sqrt (q), if any.
+  ## 4. At all stages, stop if the remaining value is prime.
 
-  ## Lookup table for sufficiently small values for q.
-  if (q < 10e9)
-    ## Lookup, rather calling up to primes(100) is about 3% faster, than the
-    ## previous value of primes(30).  Same for very small q < 1e6.
-    ##
-    ## For 1e9 < q < 10e9 the lookup approach is about 7% faster.
-
+  ## First divide by primes (q ^ 0.2).
+  ## For q < 1e10, we can hard-code the primes.
+  if (q < 1e10)
     smallprimes = feval (cls, ...
       [2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97]);
-
-    ## Only for really small values of q, statements like
-    ##
-    ##   smallprimes(smallprimes > q) = [];
-    ##
-    ## are relevant and slow down significantly for large values of q.
   else
-    ## For sufficiently large q, go up to the 5th root of q for now.
-    smallprimes = primes (feval (cls, q^0.2));
+    smallprimes = primes (feval (cls, q ^ 0.2));
   endif
 
   ## pf is the list of prime factors returned with type of input class.
@@ -147,37 +109,50 @@
   ## pf now contains all prime factors of q within smallprimes, including
   ## repetitions, in ascending order.
   ##
-  ## q itself will be divided by those prime factors to become smaller,
+  ## q itself has been divided by those prime factors to become smaller,
   ## unless q was prime to begin with.
 
+  sortflag = false;
   if (isprime (q))
-    ## This is an optimization for numbers like 18446744073709551566
-    ## == 2 * 9223372036854775783, where the small factors can be pulled
-    ## out easily and the remaining is prime.  This optimization reduces
-    ## 14.3 s to 1.8 ms (8000X faster) for such cases.
     pf(end+1) = q;
-  else
-    ## Now go all the way to sqrt(q), where q is smaller than the original q in
-    ## most cases.
-    ##
-    ## Note: Do not try to weed out the smallprimes inside largeprimes, whether
-    ## using length(smallprimes) or max(smallprimes) -- it slows it down!
-    largeprimes = primes (sqrt (q));
-    [pf, q] = reducefactors (q, pf, largeprimes);
+  elseif (q > 1)
+    ## Use Pollard Rho technique to pull factors one at a time.
+    while (q > 1e10 && ! isprime (q))
+      pr = feval (cls, __pollardrho__ (q));  # pr is a factor of q.
+
+      ## There is a small chance (13 in 1e5) that pr is not actually prime.
+      ## To guard against that, factorize pr, which will force smaller factors
+      ## to be found.  The use of isprime above guards against infinite
+      ## recursion.
+      if (! isprime (pr))
+        pr = factor (pr);
+      end
+
+      [pf, q] = reducefactors (q, pf, pr);
+      ## q is now divided by all occurrences of factor(s) pr.
+      sortflag = true;
+    endwhile
 
-    ## At this point, all prime factors <= the sqrt of the original q have been
-    ## pulled out in ascending order.
-    ##
-    ## If q = 1, then no further primes are left.
-    ## If q > 1, then q itself must be prime, and it must be the single prime
-    ## factor that was larger than the sqrt of the original q.
-    if (q > 1)
+    if (isprime (q))
       pf(end+1) = q;
-    endif
-  end
+    elseif (q > 1)
+      ## If we are here, then q is composite but less than 1e10,
+      ## and that is fast enough to test by division.
+      largeprimes = primes (feval (cls, sqrt (q)));
+      [pf, q] = reducefactors (q, pf, largeprimes);
 
-  ## At this point, all prime factors have been pulled out of q in ascending
-  ## order.  There is no need to sort(pf).
+      ## If q is still not 1, then it must be a prime of power 1.
+      if (q > 1)
+        pf(end+1) = q;
+      endif
+    endif
+  endif
+
+  ## The Pollard Rho technique can give factors in arbitrary order,
+  ## so we need to sort pf if that was used.
+  if (sortflag)
+    pf = sort (pf);
+  endif
 
   ## Determine multiplicity.
   if (nargout > 1)
@@ -192,16 +167,11 @@
 
   pf = pfin;
   q = qin;
-  ## The following line is a few milliseconds faster than
-  ## divisors (mod (q, divisors) ~= 0) = [];
   divisors = divisors (mod (q, divisors) == 0);
 
   for pp = divisors  # for each factor in turn
     ## Keep extracting all occurrences of that factor before going to larger
     ## factors.
-    ##
-    ## Note: mod() was marginally faster than rem(), when assessed over 10e6
-    ##       trials of the whole factor() function.
     while (mod (q, pp) == 0)
       pf(end+1) = pp;
       q /= pp;
@@ -226,6 +196,22 @@
 %!   assert (all ([0,pf] != [pf,0]));
 %! endfor
 
+## Make sure that all factors returned are indeed prime, even when
+## __pollardrho__ returns a composite factor.
+%!assert (all (isprime (factor (uint64 (18446744073707633197)))))
+%!assert (all (isprime (factor (uint64 (18446744073707551733)))))
+%!assert (all (isprime (factor (uint64 (18446744073709427857)))))
+%!assert (all (isprime (factor (uint64 (18446744073709396891)))))
+%!assert (all (isprime (factor (uint64 (18446744073708666563)))))
+%!assert (all (isprime (factor (uint64 (18446744073708532009)))))
+%!assert (all (isprime (factor (uint64 (18446744073708054211)))))
+%!assert (all (isprime (factor (uint64 (18446744073707834741)))))
+%!assert (all (isprime (factor (uint64 (18446744073707298053)))))
+%!assert (all (isprime (factor (uint64 (18446744073709407383)))))
+%!assert (all (isprime (factor (uint64 (18446744073708730121)))))
+%!assert (all (isprime (factor (uint64 (18446744073708104447)))))
+%!assert (all (isprime (factor (uint64 (18446744073709011493)))))
+
 %!assert (factor (uint8 (8)), uint8 ([2 2 2]))
 %!assert (factor (single (8)), single ([2 2 2]))
 %!test
--- a/scripts/specfun/factorial.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/factorial.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,12 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} factorial (@var{n})
+## @deftypefn {} {@var{f} =} factorial (@var{n})
 ## Return the factorial of @var{n} where @var{n} is a real non-negative
 ## integer.
 ##
+## @c FIXME: This documentation is wrong.  Apparently gamma() is used for
+## @c        calculations rather than prod().
 ## If @var{n} is a scalar, this is equivalent to @code{prod (1:@var{n})}.  For
 ## vector or matrix arguments, return the factorial of each element in the
 ## array.
@@ -39,7 +41,7 @@
 ## @seealso{prod, gamma, gammaln}
 ## @end deftypefn
 
-function x = factorial (n)
+function f = factorial (n)
 
   if (nargin < 1)
     print_usage ();
@@ -47,14 +49,14 @@
     error ("factorial: all N must be real non-negative integers");
   endif
 
-  x = round (gamma (n+1));
+  f = round (gamma (n+1));
 
   ## FIXME: Matlab returns an output of the same type as the input.
   ## This doesn't seem particularly worth copying--for example uint8 would
   ## saturate for n > 5.  If desired, however, the following code could be
   ## uncommented.
-  ## if (! isfloat (x))
-  ##   x = cast (x, class (n));
+  ## if (! isfloat (f))
+  ##   f = cast (f, class (n));
   ## endif
 
 endfunction
--- a/scripts/specfun/gammainc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/gammainc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} gammainc (@var{x}, @var{a})
-## @deftypefnx {} {} gammainc (@var{x}, @var{a}, @var{tail})
+## @deftypefn  {} {@var{y} =} gammainc (@var{x}, @var{a})
+## @deftypefnx {} {@var{y} =} gammainc (@var{x}, @var{a}, @var{tail})
 ## Compute the normalized incomplete gamma function.
 ##
 ## This is defined as
--- a/scripts/specfun/gammaincinv.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/gammaincinv.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} gammaincinv (@var{y}, @var{a})
-## @deftypefnx {} {} gammaincinv (@var{y}, @var{a}, @var{tail})
+## @deftypefn  {} {@var{x} =} gammaincinv (@var{y}, @var{a})
+## @deftypefnx {} {@var{x} =} gammaincinv (@var{y}, @var{a}, @var{tail})
 ## Compute the inverse of the normalized incomplete gamma function.
 ##
 ## The normalized incomplete gamma function is defined as
--- a/scripts/specfun/isprime.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/isprime.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isprime (@var{x})
+## @deftypefn {} {@var{tf} =} isprime (@var{x})
 ## Return a logical array which is true where the elements of @var{x} are prime
 ## numbers and false where they are not.
 ##
@@ -72,7 +72,7 @@
 ## @seealso{primes, factor, gcd, lcm}
 ## @end deftypefn
 
-function t = isprime (x)
+function tf = isprime (x)
 
   if (nargin < 1)
     print_usage ();
@@ -81,12 +81,12 @@
   endif
 
   if (isempty (x))
-    t = x;
+    tf = x;
     return;
   endif
 
   if (iscomplex (x))
-    t = isgaussianprime (x);
+    tf = isgaussianprime (x);
     return;
   endif
 
@@ -101,7 +101,7 @@
   ## because of the method used by __isprimelarge__ below.
   maxp = 37;
   pr = [2 3 5 7 11 13 17 19 23 29 31 37];
-  t = lookup (pr, x, "b");  # quick search for table matches.
+  tf = lookup (pr, x, "b");  # quick search for table matches.
 
   THRESHOLD = 195e8;
   ## FIXME: THRESHOLD is the input value at which Miller-Rabin
@@ -141,7 +141,7 @@
     ## Start by dividing through by the small primes until the remaining list
     ## of entries is small (and most likely prime themselves).
     pr2 = primes (sqrt (max (m)));
-    t |= lookup (pr2, x, "b");
+    tf |= lookup (pr2, x, "b");
     for p = pr2
       m = m(rem (m, p) != 0);
       if (numel (m) < numel (pr) / 10)
@@ -158,20 +158,20 @@
 
     ## Add any remaining entries, which are truly prime, to the results.
     if ( ! isempty (m))
-      t |= lookup (sort (m), x, "b");
+      tf |= lookup (sort (m), x, "b");
     endif
   endif
 
   ## Process remaining entries (everything above THRESHOLD) with Miller-Rabin
   ii = (x(:)' > THRESHOLD);
-  t(ii) = __isprimelarge__ (x(ii));
+  tf(ii) = __isprimelarge__ (x(ii));
 
 endfunction
 
-function t = isgaussianprime (z)
+function tf = isgaussianprime (z)
 
   ## Assume prime unless proven otherwise
-  t = true (size (z));
+  tf = true (size (z));
 
   x = real (z);
   y = imag (z);
@@ -181,13 +181,13 @@
   xidx = y==0 & mod (x, 4) == 3;
   yidx = x==0 & mod (y, 4) == 3;
 
-  t(xidx) &= isprime (x(xidx));
-  t(yidx) &= isprime (y(yidx));
+  tf(xidx) &= isprime (x(xidx));
+  tf(yidx) &= isprime (y(yidx));
 
   ## Otherwise, prime if x^2 + y^2 is prime
   zidx = ! (xidx | yidx);          # Skip entries that were already evaluated
   zabs = x(zidx).^2 + y(zidx).^2;
-  t(zidx) &= isprime (zabs);
+  tf(zidx) &= isprime (zabs);
 
 endfunction
 
--- a/scripts/specfun/lcm.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/lcm.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} lcm (@var{x}, @var{y})
-## @deftypefnx {} {} lcm (@var{x}, @var{y}, @dots{})
+## @deftypefn  {} {@var{l} =} lcm (@var{x}, @var{y})
+## @deftypefnx {} {@var{l} =} lcm (@var{x}, @var{y}, @dots{})
 ## Compute the least common multiple of @var{x} and @var{y}, or of the list of
 ## all arguments.
 ##
@@ -53,6 +53,14 @@
     l(msk) = 0;
   endfor
 
+  if (isfloat (l) && l > flintmax (l))
+    warning ("Octave:lcm:large-output-float", ...
+             "lcm: possible loss of precision");
+  elseif (isinteger (l) && l == intmax (l))
+    warning ("Octave:lcm:large-output-integer", ...
+             "lcm: result may have saturated at intmax");
+  endif
+
 endfunction
 
 
@@ -63,3 +71,13 @@
 %!error <Invalid call> lcm (1)
 %!error <same size or scalar> lcm ([1 2], [1 2 3])
 %!error <arguments must be numeric> lcm ([1 2], {1 2})
+%!warning <loss of precision>   lcm (num2cell (double (1:47)){:});
+%!warning <loss of precision>   lcm (num2cell (single (1:47)){:});
+%!warning <result .* saturated> lcm (num2cell (uint64 (1:47)){:});
+%!warning <result .* saturated> lcm (num2cell (uint32 (1:47)){:});
+%!warning <result .* saturated> lcm (num2cell (uint16 (1:47)){:});
+%!warning <result .* saturated> lcm (num2cell ( uint8 (1:47)){:});
+%!warning <result .* saturated> lcm (num2cell ( int64 (1:47)){:});
+%!warning <result .* saturated> lcm (num2cell ( int32 (1:47)){:});
+%!warning <result .* saturated> lcm (num2cell ( int16 (1:47)){:});
+%!warning <result .* saturated> lcm (num2cell (  int8 (1:47)){:});
--- a/scripts/specfun/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -19,7 +19,6 @@
   %reldir%/nchoosek.m \
   %reldir%/nthroot.m \
   %reldir%/perms.m \
-  %reldir%/pow2.m \
   %reldir%/primes.m \
   %reldir%/reallog.m \
   %reldir%/realpow.m \
--- a/scripts/specfun/nthroot.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/nthroot.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,7 +27,7 @@
 ## public domain.
 
 ## -*- texinfo -*-
-## @deftypefn {} {} nthroot (@var{x}, @var{n})
+## @deftypefn {} {@var{y} =} nthroot (@var{x}, @var{n})
 ##
 ## Compute the real (non-complex) @var{n}-th root of @var{x}.
 ##
--- a/scripts/specfun/perms.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/perms.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,15 +24,19 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} perms (@var{v})
+## @deftypefn  {} {@var{P} =} perms (@var{v})
+## @deftypefnx {} {@var{P} =} perms (@var{v}, "unique")
 ## Generate all permutations of vector @var{v} with one row per permutation.
 ##
 ## Results are returned in inverse lexicographic order.  The result has size
 ## @code{factorial (@var{n}) * @var{n}}, where @var{n} is the length of
-## @var{v}.  Any repetitions are included in the output.  To generate just the
-## unique permutations use @code{unique (perms (@var{v}), "rows")(end:-1:1,:)}.
+## @var{v}.  Any repeated elements are included in the output.
 ##
-## Example
+## If the optional argument @qcode{"unique"} is given then only unique
+## permutations are returned, using less memory and generally taking less time
+## than calling @code{unique (perms (@var{v}), "rows")}.
+##
+## Example 1
 ##
 ## @example
 ## @group
@@ -47,8 +51,25 @@
 ## @end group
 ## @end example
 ##
-## Programming Note: The maximum length of @var{v} should be less than or
-## equal to 10 to limit memory consumption.
+## Example 2
+##
+## @example
+## @group
+## perms ([1, 1, 2, 2], "unique")
+## @result{}
+##   1   1   2   2
+##   1   2   1   2
+##   1   2   2   1
+##   2   1   1   2
+##   2   1   2   1
+##   2   2   1   1
+## @end group
+## @end example
+##
+## Programming Note: If the @qcode{"unique"} option is not used, the length of
+## @var{v} should be no more than 10-12 to limit memory consumption.  Even with
+## @qcode{"unique"}, there should be no more than 10-12 unique elements in
+## @var{v}.
 ## @seealso{permute, randperm, nchoosek}
 ## @end deftypefn
 
@@ -56,32 +77,45 @@
 ## type.  However, benchmarking shows doubles are faster.  If this changes in
 ## a later version of Octave the index variables here can be made uint8.
 
-function A = perms (v)
+function P = perms (v, opt)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  v = v(:).';
+  unique_v = false;
+  if (nargin == 2)
+    if (! strcmpi (opt, "unique"))
+      error ('perms: option must be the string "unique"');
+    endif
+    unique_v = true;
+  endif
+
+  v = v(:).';  # convert to row vector
   if (isnumeric (v) || ischar (v))
     ## Order of output is only dependent on the actual values for
     ## character and numeric arrays.
     v = sort (v, "ascend");
   endif
+
   n = numel (v);
-
   if (n < 4)    # special cases for small n
     switch (n)
       case 0
-        A = reshape (v, 1, 0);
+        P = reshape (v, 1, 0);
       case 1
-        A = v;
+        P = v;
       case 2
-        A = [v([2 1]);v];
+        P = [v([2 1]);v];
       case 3
-        A = v([3 2 1; 3 1 2; 2 3 1; 2 1 3; 1 3 2; 1 2 3]);
+        P = v([3 2 1; 3 1 2; 2 3 1; 2 1 3; 1 3 2; 1 2 3]);
     endswitch
-  else
+    if (unique_v)
+      P = unique (P, "rows");
+    endif
+
+  elseif (! unique_v)
+    ## FIXME: Brief explanation of the algorithm being used would be useful.
     v = v(end:-1:1);
     n-= 1;
 
@@ -93,7 +127,7 @@
       f *= j;
       perm = idx(1:f, n-(j-1):n);
       idx(1:(j+1)*f, n-j) = (n-j:n)(ones (f, 1),:)(:);
-      for i=0:j
+      for i = 0:j
         b(i+n-j) -= 1;
         idx((1:f)+i*f, n-(j-1):n) = b(perm);
       endfor
@@ -101,13 +135,45 @@
 
     n += 1;
     f *= n-1;
-    A = v(1)(ones (factorial (n), n));
-    A(:,1) = v(ones (f, 1),:)(:);
+    P = v(1)(ones (factorial (n), n));
+    P(:,1) = v(ones (f, 1),:)(:);
 
     for i = 1:n
       b = v([1:i-1 i+1:n]);
-      A((1:f)+(i-1)*f, 2:end) = b(idx);
+      P((1:f)+(i-1)*f, 2:end) = b(idx);
     endfor
+
+  else  # unique permutations
+    [v, ~, j] = unique (v);
+    h = accumarray (j, 1)';
+    idx = m_perms (h);
+    P = v(sortrows (idx'));
+  endif
+
+endfunction
+
+function out_perms = m_perms (multis)
+  ## FIXME: Brief explanation of the algorithm being used would be useful.
+
+  l = numel (multis);
+  if (l == 1)
+    out_perms = uint8 (ones (multis, 1));
+  else
+    p1 = m_perms (multis (1:floor (l/2)));
+    p2 = m_perms (multis (floor (l/2+1):l)) + max (p1(:, 1));
+    l1 = rows (p1);
+    l2 = rows (p2);
+    cp1 = columns (p1);
+    cp2 = columns (p2);
+
+    p = nchoosek (1:l1+l2, l1);
+    rp = rows (p);
+
+    ii = false (l1+l2, rp);
+    ii(p + (0:rp - 1)' * (l1 + l2)) = true;
+    out_perms = zeros (l1 + l2, cp1 * cp2 * rp, "uint8");
+    out_perms(repmat ( ii, cp1 * cp2, 1)(:)) = repmat (p1, cp2, rp)(:);
+    out_perms(repmat (!ii, cp1 * cp2, 1)(:)) = repmat (p2, 1, cp1 * rp)(:);
   endif
 
 endfunction
@@ -123,10 +189,12 @@
 %!assert (unique (perms (1:5)(:))', 1:5)
 %!assert (perms (int8 (1:4)), int8 (perms (1:4)))
 
-%!error <Invalid call> perms ()
+%!assert (sortrows (perms ("abb", "unique")), ["abb"; "bab"; "bba"]);
+%!assert (size (perms ([1 1 1 1 2 2 2 3 3], "unique")), [1260 9])
+%!assert (size (perms (int8([1 1 1 1 1 2 2 2 2 3 3 3]), "unique")), [27720 12])
 
-## Should work for any array type, such as cells and structs, and not
-## only for numeric data.
+## Should work for any array type, such as cells and structs,
+## and not only for numeric data.
 
 %!assert <*52431> (perms ({1}), {1})
 %!assert <*52431> (perms ({0.1, "foo"}), {"foo", 0.1; 0.1, "foo"})
@@ -162,3 +230,9 @@
 %! s(1) = [];
 %! assert (perms (reshape (s, 0, 0)), reshape (s, 1, 0));
 %! assert (perms (reshape (s, 0, 1)), reshape (s, 1, 0));
+
+## Test input validation
+%!error <Invalid call> perms ()
+%!error <option must be the string "unique"> perms (1:5, "foobar")
+%!error <option must be the string "unique"> perms (1:5, {"foo"})
+
--- a/scripts/specfun/pow2.m	Tue Nov 15 13:25:31 2022 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-########################################################################
-##
-## Copyright (C) 1995-2022 The Octave Project Developers
-##
-## See the file COPYRIGHT.md in the top-level directory of this
-## distribution or <https://octave.org/copyright/>.
-##
-## This file is part of Octave.
-##
-## Octave is free software: you can redistribute it and/or modify it
-## under the terms of the GNU General Public License as published by
-## the Free Software Foundation, either version 3 of the License, or
-## (at your option) any later version.
-##
-## Octave is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with Octave; see the file COPYING.  If not, see
-## <https://www.gnu.org/licenses/>.
-##
-########################################################################
-
-## -*- texinfo -*-
-## @deftypefn  {} {} pow2 (@var{x})
-## @deftypefnx {} {} pow2 (@var{f}, @var{e})
-## With one input argument, compute
-## @tex
-## $2^x$
-## @end tex
-## @ifnottex
-## 2 .^ x
-## @end ifnottex
-## for each element of @var{x}.
-##
-## With two input arguments, return
-## @tex
-## $f \cdot 2^e$.
-## @end tex
-## @ifnottex
-## f .* (2 .^ e).
-## @end ifnottex
-## @seealso{log2, nextpow2, power}
-## @end deftypefn
-
-function y = pow2 (f, e)
-
-  if (nargin < 1)
-    print_usage ();
-  endif
-
-  if (nargin == 1)
-    y = 2 .^ f;
-  else
-    y = f .* (2 .^ e);
-  endif
-
-endfunction
-
-
-%!test
-%! x = [3, 0, -3];
-%! v = [8, 1, .125];
-%! assert (pow2 (x), v, sqrt (eps));
-
-%!test
-%! x = [3, 0, -3, 4, 0, -4, 5, 0, -5];
-%! y = [-2, -2, -2, 1, 1, 1, 3, 3, 3];
-%! z = x .* (2 .^ y);
-%! assert (pow2 (x,y), z, sqrt (eps));
-
-%!error <Invalid call> pow2 ()
--- a/scripts/specfun/reallog.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/reallog.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} reallog (@var{x})
+## @deftypefn {} {@var{y} =} reallog (@var{x})
 ## Return the real-valued natural logarithm of each element of @var{x}.
 ##
 ## If any element results in a complex return value @code{reallog} aborts and
--- a/scripts/specfun/realpow.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/realpow.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} realpow (@var{x}, @var{y})
+## @deftypefn {} {@var{z} =} realpow (@var{x}, @var{y})
 ## Compute the real-valued, element-by-element power operator.
 ##
 ## This is equivalent to @w{@code{@var{x} .^ @var{y}}}, except that
--- a/scripts/specfun/realsqrt.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/realsqrt.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} realsqrt (@var{x})
+## @deftypefn {} {@var{y} =} realsqrt (@var{x})
 ## Return the real-valued square root of each element of @var{x}.
 ##
 ## If any element results in a complex return value @code{realsqrt} aborts and
--- a/scripts/specfun/sinint.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/specfun/sinint.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} sinint (@var{x})
+## @deftypefn {} {@var{y} =} sinint (@var{x})
 ## Compute the sine integral function:
 ## @tex
 ## $$
--- a/scripts/special-matrix/hadamard.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/hadamard.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,7 +27,7 @@
 ## public domain.
 
 ## -*- texinfo -*-
-## @deftypefn {} {} hadamard (@var{n})
+## @deftypefn {} {@var{h} =} hadamard (@var{n})
 ## Construct a Hadamard matrix (@nospell{Hn}) of size @var{n}-by-@var{n}.
 ##
 ## The size @var{n} must be of the form @math{2^k * p} in which p is one of
--- a/scripts/special-matrix/hankel.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/hankel.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} hankel (@var{c})
-## @deftypefnx {} {} hankel (@var{c}, @var{r})
+## @deftypefn  {} {@var{h} =} hankel (@var{c})
+## @deftypefnx {} {@var{h} =} hankel (@var{c}, @var{r})
 ## Return the Hankel matrix constructed from the first column @var{c}, and
 ## (optionally) the last row @var{r}.
 ##
@@ -54,7 +54,7 @@
 ## @seealso{hadamard, toeplitz}
 ## @end deftypefn
 
-function retval = hankel (c, r)
+function h = hankel (c, r)
 
   if (nargin < 1)
     print_usage ();
@@ -85,7 +85,7 @@
   endif
 
   slices = cellslices (data, 1:nc, nr:1:nc+nr-1);
-  retval = horzcat (slices{:});
+  h = horzcat (slices{:});
 
 endfunction
 
--- a/scripts/special-matrix/hilb.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/hilb.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} hilb (@var{n})
+## @deftypefn {} {@var{h} =} hilb (@var{n})
 ## Return the Hilbert matrix of order @var{n}.
 ##
 ## The @math{i,j} element of a Hilbert matrix is defined as
@@ -58,9 +58,9 @@
 ## @seealso{invhilb}
 ## @end deftypefn
 
-function retval = hilb (n)
+function h = hilb (n)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   elseif (! isscalar (n))
     error ("hilb: N must be a scalar integer");
@@ -69,7 +69,7 @@
   ## Very elegant solution by N. Higham
   ## https://nhigham.com/2020/06/30/what-is-the-hilbert-matrix/
   j = 1:n;
-  retval = 1 ./ (j' + j - 1);
+  h = 1 ./ (j' + j - 1);
 
 endfunction
 
--- a/scripts/special-matrix/invhilb.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/invhilb.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} invhilb (@var{n})
+## @deftypefn {} {@var{hinv} =} invhilb (@var{n})
 ## Return the inverse of the Hilbert matrix of order @var{n}.
 ##
 ## This can be computed exactly using
@@ -79,7 +79,7 @@
 ## @seealso{hilb}
 ## @end deftypefn
 
-function retval = invhilb (n)
+function hinv = invhilb (n)
 
   if (nargin < 1)
     print_usage ();
@@ -101,17 +101,17 @@
   ## However, it rounds the answer to the nearest integer, which
   ## justifies the claim about exactness made above.
 
-  retval = zeros (n);
+  hinv = zeros (n);
   k = [1:n];
   p = k .* bincoeff (k+n-1, k-1) .* bincoeff (n, k);
   p(2:2:n) = -p(2:2:n);
   if (n < 203)
     for l = 1:n
-      retval(l,:) = (p(l) * p) ./ [l:l+n-1];
+      hinv(l,:) = (p(l) * p) ./ [l:l+n-1];
     endfor
   else
     for l = 1:n
-      retval(l,:) = p(l) * (p ./ [l:l+n-1]);
+      hinv(l,:) = p(l) * (p ./ [l:l+n-1]);
     endfor
   endif
 
--- a/scripts/special-matrix/magic.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/magic.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} magic (@var{n})
+## @deftypefn {} {@var{M} =} magic (@var{n})
 ##
 ## Create an @var{n}-by-@var{n} magic square.
 ##
@@ -36,7 +36,7 @@
 ## degenerate magic squares 1 and [].
 ## @end deftypefn
 
-function A = magic (n)
+function M = magic (n)
 
   if (nargin < 1)
     print_usage ();
@@ -46,40 +46,40 @@
   if (n < 0)
     error ("magic: N must be non-negative");
   elseif (n < 1)
-    A = [];
+    M = [];
   elseif (mod (n, 2) == 1)
 
     shift = floor ((0:n*n-1)/n);
     c = mod ([1:n*n] - shift + (n-3)/2, n);
     r = mod ([n*n:-1:1] + 2*shift, n);
-    A(c*n+r+1) = 1:n*n;
-    A = reshape (A, n, n);
+    M(c*n+r+1) = 1:n*n;
+    M = reshape (M, n, n);
 
   elseif (mod (n, 4) == 0)
 
-    A = reshape (1:n*n, n, n)';
+    M = reshape (1:n*n, n, n)';
     I = [1:4:n, 4:4:n];
     J = fliplr (I);
-    A(I,I) = A(J,J);
+    M(I,I) = M(J,J);
     I = [2:4:n, 3:4:n];
     J = fliplr (I);
-    A(I,I) = A(J,J);
+    M(I,I) = M(J,J);
 
   elseif (mod (n, 4) == 2)
 
     m = n/2;
-    A = magic (m);
-    A = [A, A+2*m*m; A+3*m*m, A+m*m];
+    M = magic (m);
+    M = [M, M+2*m*m; M+3*m*m, M+m*m];
     k = (m-1)/2;
     if (k > 1)
       I = 1:m;
       J = [2:k, n-k+2:n];
-      A([I,I+m],J) = A([I+m,I],J);
+      M([I,I+m],J) = M([I+m,I],J);
     endif
     I = [1:k, k+2:m];
-    A([I,I+m],1) = A([I+m,I],1);
+    M([I,I+m],1) = M([I+m,I],1);
     I = k + 1;
-    A([I,I+m],I) = A([I+m,I],I);
+    M([I,I+m],I) = M([I+m,I],I);
 
   endif
 
--- a/scripts/special-matrix/pascal.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/pascal.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} pascal (@var{n})
-## @deftypefnx {} {} pascal (@var{n}, @var{t})
+## @deftypefn  {} {@var{P} =} pascal (@var{n})
+## @deftypefnx {} {@var{P} =} pascal (@var{n}, @var{t})
 ## Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}.
 ##
 ## The default value of @var{t} is 0.
@@ -45,7 +45,7 @@
 ## @seealso{chol}
 ## @end deftypefn
 
-function retval = pascal (n, t = 0)
+function P = pascal (n, t = 0)
 
   if (nargin < 1)
     print_usage ();
@@ -55,27 +55,27 @@
     error ("pascal: T must be -1, 0, 1, or 2, found %d", t);
   endif
 
-  retval = zeros (n);
+  P = zeros (n);
   if (n > 0)
-    retval(:,1) = 1;
+    P(:,1) = 1;
   endif
 
   if (t == -1)
     for j = 2:n
-      retval(j:n,j) = cumsum (retval(j-1:n-1,j-1));
+      P(j:n,j) = cumsum (P(j-1:n-1,j-1));
     endfor
   else
     for j = 2:n
-      retval(j:n,j) = -cumsum (retval(j-1:n-1,j-1));
+      P(j:n,j) = -cumsum (P(j-1:n-1,j-1));
     endfor
   endif
 
   if (t == 0)
-    retval = retval*retval';
+    P = P*P';
   elseif (t == 2)
-    retval = rot90 (retval, 3);
+    P = rot90 (P, 3);
     if (rem (n,2) != 1)
-      retval *= -1;
+      P *= -1;
     endif
   endif
 
--- a/scripts/special-matrix/rosser.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/rosser.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,23 +24,23 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} rosser ()
+## @deftypefn {} {@var{R} =} rosser ()
 ## Return the @nospell{Rosser} matrix.
 ##
 ## This is a difficult test case used to evaluate eigenvalue algorithms.
 ## @seealso{wilkinson, eig}
 ## @end deftypefn
 
-function retval = rosser ()
+function R = rosser ()
 
-  retval = [611,   196,  -192,   407,    -8,   -52,   -49,    29;
-            196,   899,   113,  -192,   -71,   -43,    -8,   -44;
-           -192,   113,   899,   196,    61,    49,     8,    52;
-            407,  -192,   196,   611,     8,    44,    59,   -23;
-             -8,   -71,    61,     8,   411,  -599,   208,   208;
-            -52,   -43,    49,    44,  -599,   411,   208,   208;
-            -49,    -8,     8,    59,   208,   208,    99,  -911;
-             29,   -44,    52,   -23,   208,   208,  -911,    99];
+  R = [611,   196,  -192,   407,    -8,   -52,   -49,    29;
+       196,   899,   113,  -192,   -71,   -43,    -8,   -44;
+      -192,   113,   899,   196,    61,    49,     8,    52;
+       407,  -192,   196,   611,     8,    44,    59,   -23;
+        -8,   -71,    61,     8,   411,  -599,   208,   208;
+       -52,   -43,    49,    44,  -599,   411,   208,   208;
+       -49,    -8,     8,    59,   208,   208,    99,  -911;
+        29,   -44,    52,   -23,   208,   208,  -911,    99];
 
 endfunction
 
--- a/scripts/special-matrix/toeplitz.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/toeplitz.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} toeplitz (@var{c})
-## @deftypefnx {} {} toeplitz (@var{c}, @var{r})
+## @deftypefn  {} {@var{T} =} toeplitz (@var{c})
+## @deftypefnx {} {@var{T} =} toeplitz (@var{c}, @var{r})
 ## Return the Toeplitz matrix constructed from the first column @var{c},
 ## and optionally the first row @var{r}.
 ##
@@ -63,7 +63,7 @@
 ## @seealso{hankel}
 ## @end deftypefn
 
-function retval = toeplitz (c, r)
+function T = toeplitz (c, r)
 
   if (nargin < 1)
     print_usage ();
@@ -90,7 +90,7 @@
 
   if (nr == 0 || nc == 0)
     ## Empty matrix.
-    retval = zeros (nr, nc, class (c));
+    T = zeros (nr, nc, class (c));
     return;
   endif
 
@@ -112,8 +112,8 @@
     ridx = ridx(ridx > 1);
 
     ## Form matrix.
-    retval = spdiags (repmat (c(cidx),nr,1),1-cidx,nr,nc) + ...
-             spdiags (repmat (r(ridx),nr,1),ridx-1,nr,nc);
+    T = spdiags (repmat (c(cidx),nr,1),1-cidx,nr,nc) + ...
+                 spdiags (repmat (r(ridx),nr,1),ridx-1,nr,nc);
   else
     ## Concatenate data into a single column vector.
     data = [r(end:-1:2)(:); c(:)];
@@ -122,7 +122,7 @@
     slices = cellslices (data, nc:-1:1, nc+nr-1:-1:nr);
 
     ## Form matrix.
-    retval = horzcat (slices{:});
+    T = horzcat (slices{:});
   endif
 
 endfunction
--- a/scripts/special-matrix/vander.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/vander.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} vander (@var{c})
-## @deftypefnx {} {} vander (@var{c}, @var{n})
+## @deftypefn  {} {@var{V} =} vander (@var{c})
+## @deftypefnx {} {@var{V} =} vander (@var{c}, @var{n})
 ## Return the @nospell{Vandermonde} matrix whose next to last column is
 ## @var{c}.
 ##
@@ -58,11 +58,9 @@
 ## @seealso{polyfit}
 ## @end deftypefn
 
-function retval = vander (c, n)
+function V = vander (c, n)
 
-  if (nargin == 1)
-    n = length (c);
-  elseif (nargin != 2)
+  if (nargin < 1)
     print_usage ();
   endif
 
@@ -70,12 +68,18 @@
     error ("vander: polynomial C must be a vector");
   endif
 
+  if (nargin == 1)
+    n = length (c);
+  elseif (! isscalar (n))
+    error ("vander: N must be a positive scalar integer");
+  endif
+
   ## avoiding many ^s appears to be faster for n >= 100.
-  retval = zeros (length (c), n, class (c));
+  V = zeros (numel (c), n, class (c));
+  c = c(:);
   d = 1;
-  c = c(:);
   for i = n:-1:1
-    retval(:,i) = d;
+    V(:,i) = d;
     d .*= c;
   endfor
 
@@ -95,5 +99,7 @@
 %!assert (vander (2, 3), [4, 2, 1])
 %!assert (vander ([2, 3], 3), [4, 2, 1; 9, 3, 1])
 
+## Test input validation
 %!error <Invalid call> vander ()
 %!error <polynomial C must be a vector> vander ([1, 2; 3, 4])
+%!error <N must be a positive scalar integer> vander (1, [1, 2])
--- a/scripts/special-matrix/wilkinson.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/special-matrix/wilkinson.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} wilkinson (@var{n})
+## @deftypefn {} {@var{W} =} wilkinson (@var{n})
 ## Return the Wilkinson matrix of order @var{n}.
 ##
 ## Wilkinson matrices are symmetric and tridiagonal with pairs of nearly, but
@@ -34,7 +34,7 @@
 ## @seealso{rosser, eig}
 ## @end deftypefn
 
-function retval = wilkinson (n)
+function W = wilkinson (n)
 
   if (nargin < 1)
     print_usage ();
@@ -46,7 +46,7 @@
 
   side = ones (n-1, 1);
   center = abs (-(n-1)/2:(n-1)/2);
-  retval = diag (side, -1) + diag (center) + diag (side, 1);
+  W = diag (side, -1) + diag (center) + diag (side, 1);
 
 endfunction
 
--- a/scripts/statistics/center.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/center.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} center (@var{x})
-## @deftypefnx {} {} center (@var{x}, @var{dim})
+## @deftypefn  {} {@var{y} =} center (@var{x})
+## @deftypefnx {} {@var{y} =} center (@var{x}, @var{dim})
 ## Center data by subtracting its mean.
 ##
 ## If @var{x} is a vector, subtract its mean.
@@ -42,7 +42,7 @@
 ## @seealso{zscore}
 ## @end deftypefn
 
-function retval = center (x, dim)
+function y = center (x, dim)
 
   if (nargin < 1)
     print_usage ();
@@ -70,12 +70,12 @@
   n = size (x, dim);
 
   if (n == 0)
-    retval = x;
+    y = x;
   else
     ## FIXME: Use bsxfun, rather than broadcasting, until broadcasting
     ##        supports diagonal and sparse matrices (Bugs #41441, #35787).
-    retval = bsxfun (@minus, x, mean (x, dim));
-    ## retval = x - mean (x, dim);   # automatic broadcasting
+    y = bsxfun (@minus, x, mean (x, dim));
+    ## y = x - mean (x, dim);   # automatic broadcasting
   endif
 
 endfunction
--- a/scripts/statistics/corr.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/corr.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} corr (@var{x})
-## @deftypefnx {} {} corr (@var{x}, @var{y})
+## @deftypefn  {} {@var{r} =} corr (@var{x})
+## @deftypefnx {} {@var{r} =} corr (@var{x}, @var{y})
 ## Compute matrix of correlation coefficients.
 ##
 ## If each row of @var{x} and @var{y} is an observation and each column is
@@ -49,7 +49,7 @@
 ## @seealso{cov}
 ## @end deftypefn
 
-function retval = corr (x, y = [])
+function r = corr (x, y = [])
 
   if (nargin < 1)
     print_usage ();
@@ -60,9 +60,9 @@
   ## Special case, scalar is always 100% correlated with itself
   if (isscalar (x))
     if (isa (x, "single"))
-      retval = single (1);
+      r = single (1);
     else
-      retval = 1;
+      r = 1;
     endif
     return;
   endif
@@ -72,11 +72,11 @@
   if (nargin == 2)
     c = cov (x, y);
     s = std (x)' * std (y);
-    retval = c ./ s;
+    r = c ./ s;
   else
     c = cov (x);
     s = sqrt (diag (c));
-    retval = c ./ (s * s');
+    r = c ./ (s * s');
   endif
 
 endfunction
--- a/scripts/statistics/cov.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/cov.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} cov (@var{x})
-## @deftypefnx {} {} cov (@var{x}, @var{opt})
-## @deftypefnx {} {} cov (@var{x}, @var{y})
-## @deftypefnx {} {} cov (@var{x}, @var{y}, @var{opt})
+## @deftypefn  {} {@var{c} =} cov (@var{x})
+## @deftypefnx {} {@var{c} =} cov (@var{x}, @var{opt})
+## @deftypefnx {} {@var{c} =} cov (@var{x}, @var{y})
+## @deftypefnx {} {@var{c} =} cov (@var{x}, @var{y}, @var{opt})
 ## Compute the covariance matrix.
 ##
 ## If each row of @var{x} and @var{y} is an observation, and each column is
--- a/scripts/statistics/discrete_cdf.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/discrete_cdf.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} discrete_cdf (@var{x}, @var{v}, @var{p})
+## @deftypefn {} {@var{cdf} =} discrete_cdf (@var{x}, @var{v}, @var{p})
 ## For each element of @var{x}, compute the cumulative distribution function
 ## (CDF) at @var{x} of a univariate discrete distribution which assumes the
 ## values in @var{v} with probabilities @var{p}.
--- a/scripts/statistics/discrete_inv.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/discrete_inv.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,13 +24,13 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} discrete_inv (@var{x}, @var{v}, @var{p})
+## @deftypefn {} {@var{q} =} discrete_inv (@var{x}, @var{v}, @var{p})
 ## For each element of @var{x}, compute the quantile (the inverse of the CDF)
 ## at @var{x} of the univariate distribution which assumes the values in
 ## @var{v} with probabilities @var{p}.
 ## @end deftypefn
 
-function inv = discrete_inv (x, v, p)
+function q = discrete_inv (x, v, p)
 
   if (nargin != 3)
     print_usage ();
@@ -47,9 +47,9 @@
   endif
 
   if (isa (x, "single") || isa (v, "single") || isa (p, "single"))
-    inv = NaN (size (x), "single");
+    q = NaN (size (x), "single");
   else
-    inv = NaN (size (x));
+    q = NaN (size (x));
   endif
 
   ## FIXME: This isn't elegant.  But cumsum and lookup together produce
@@ -62,13 +62,13 @@
   p = cumsum (p(idx)(:)) / sum (p);  # Reshape and normalize probability vector
 
   k = (x == 0);
-  inv(k) = v(1);
+  q(k) = v(1);
 
   k = (x == 1);
-  inv(k) = v(end);
+  q(k) = v(end);
 
   k = (x > 0) & (x < 1);
-  inv(k) = v(length (p) - lookup (sort (p, "descend"), x(k)) + 1);
+  q(k) = v(length (p) - lookup (sort (p, "descend"), x(k)) + 1);
 
 endfunction
 
--- a/scripts/statistics/discrete_pdf.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/discrete_pdf.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} discrete_pdf (@var{x}, @var{v}, @var{p})
+## @deftypefn {} {@var{pdf} =} discrete_pdf (@var{x}, @var{v}, @var{p})
 ## For each element of @var{x}, compute the probability density function (PDF)
 ## at @var{x} of a univariate discrete distribution which assumes the values
 ## in @var{v} with probabilities @var{p}.
--- a/scripts/statistics/discrete_rnd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/discrete_rnd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} discrete_rnd (@var{v}, @var{p})
-## @deftypefnx {} {} discrete_rnd (@var{v}, @var{p}, @var{r})
-## @deftypefnx {} {} discrete_rnd (@var{v}, @var{p}, @var{r}, @var{c}, @dots{})
-## @deftypefnx {} {} discrete_rnd (@var{v}, @var{p}, [@var{sz}])
+## @deftypefn  {} {@var{rnd} =} discrete_rnd (@var{v}, @var{p})
+## @deftypefnx {} {@var{rnd} =} discrete_rnd (@var{v}, @var{p}, @var{r})
+## @deftypefnx {} {@var{rnd} =} discrete_rnd (@var{v}, @var{p}, @var{r}, @var{c}, @dots{})
+## @deftypefnx {} {@var{rnd} =} discrete_rnd (@var{v}, @var{p}, [@var{sz}])
 ## Return a matrix of random samples from the univariate distribution which
 ## assumes the values in @var{v} with probabilities @var{p}.
 ##
@@ -88,7 +88,7 @@
 %!assert (class (discrete_rnd (1:2, 1:2)), "double")
 %!assert (class (discrete_rnd (single (1:2), 1:2)), "single")
 ## FIXME: Maybe this should work, maybe it shouldn't.
-#%!assert (class (discrete_rnd (1:2, single(1:2))), "single")
+%!#assert (class (discrete_rnd (1:2, single(1:2))), "single")
 
 ## Test input validation
 %!error <Invalid call> discrete_rnd ()
--- a/scripts/statistics/empirical_cdf.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/empirical_cdf.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} empirical_cdf (@var{x}, @var{data})
+## @deftypefn {} {@var{cdf} =} empirical_cdf (@var{x}, @var{data})
 ## For each element of @var{x}, compute the cumulative distribution function
 ## (CDF) at @var{x} of the empirical distribution obtained from
 ## the univariate sample @var{data}.
--- a/scripts/statistics/empirical_inv.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/empirical_inv.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,13 +24,13 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} empirical_inv (@var{x}, @var{data})
+## @deftypefn {} {@var{q} =} empirical_inv (@var{x}, @var{data})
 ## For each element of @var{x}, compute the quantile (the inverse of the CDF)
 ## at @var{x} of the empirical distribution obtained from the
 ## univariate sample @var{data}.
 ## @end deftypefn
 
-function inv = empirical_inv (x, data)
+function q = empirical_inv (x, data)
 
   if (nargin != 2)
     print_usage ();
@@ -40,7 +40,7 @@
     error ("empirical_inv: DATA must be a vector");
   endif
 
-  inv = discrete_inv (x, data, ones (size (data)));
+  q = discrete_inv (x, data, ones (size (data)));
 
 endfunction
 
--- a/scripts/statistics/empirical_pdf.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/empirical_pdf.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} empirical_pdf (@var{x}, @var{data})
+## @deftypefn {} {@var{pdf} =} empirical_pdf (@var{x}, @var{data})
 ## For each element of @var{x}, compute the probability density function (PDF)
 ## at @var{x} of the empirical distribution obtained from the
 ## univariate sample @var{data}.
--- a/scripts/statistics/empirical_rnd.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/empirical_rnd.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,10 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} empirical_rnd (@var{data})
-## @deftypefnx {} {} empirical_rnd (@var{data}, @var{r})
-## @deftypefnx {} {} empirical_rnd (@var{data}, @var{r}, @var{c}, @dots{})
-## @deftypefnx {} {} empirical_rnd (@var{data}, [@var{sz}])
+## @deftypefn  {} {@var{rnd} =} empirical_rnd (@var{data})
+## @deftypefnx {} {@var{rnd} =} empirical_rnd (@var{data}, @var{r})
+## @deftypefnx {} {@var{rnd} =} empirical_rnd (@var{data}, @var{r}, @var{c}, @dots{})
+## @deftypefnx {} {@var{rnd} =} empirical_rnd (@var{data}, [@var{sz}])
 ## Return a matrix of random samples from the empirical distribution obtained
 ## from the univariate sample @var{data}.
 ##
--- a/scripts/statistics/iqr.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/iqr.m	Tue Nov 15 13:15:28 2022 -0800
@@ -95,7 +95,7 @@
         && all (dim > 0) && all (rem (dim, 1) == 0))
 
       if (((num_vecdims = numel (dim)) > 1) && all (diff (sort (dim))))
-        ## DIM must be 1D and non repeating.
+        ## DIM must be 1-D and non repeating.
 
         ## Detect trivial case of DIM being all dimensions (same as "all").
         highest_dim = (max (nd, max (dim)));
--- a/scripts/statistics/kendall.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/kendall.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} kendall (@var{x})
-## @deftypefnx {} {} kendall (@var{x}, @var{y})
+## @deftypefn  {} {@var{tau} =} kendall (@var{x})
+## @deftypefnx {} {@var{tau} =} kendall (@var{x}, @var{y})
 ## @cindex Kendall's Tau
 ## Compute Kendall's
 ## @tex
--- a/scripts/statistics/kurtosis.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/kurtosis.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} kurtosis (@var{x})
-## @deftypefnx {} {} kurtosis (@var{x}, @var{flag})
-## @deftypefnx {} {} kurtosis (@var{x}, @var{flag}, @var{dim})
+## @deftypefn  {} {@var{y} =} kurtosis (@var{x})
+## @deftypefnx {} {@var{y} =} kurtosis (@var{x}, @var{flag})
+## @deftypefnx {} {@var{y} =} kurtosis (@var{x}, @var{flag}, @var{dim})
 ## Compute the sample kurtosis of the elements of @var{x}.
 ##
 ## The sample kurtosis is defined as
--- a/scripts/statistics/mad.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/mad.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} mad (@var{x})
-## @deftypefnx {} {} mad (@var{x}, @var{opt})
-## @deftypefnx {} {} mad (@var{x}, @var{opt}, @var{dim})
+## @deftypefn  {} {@var{y} =} mad (@var{x})
+## @deftypefnx {} {@var{y} =} mad (@var{x}, @var{opt})
+## @deftypefnx {} {@var{y} =} mad (@var{x}, @var{opt}, @var{dim})
 ## Compute the mean or median absolute deviation of the elements of @var{x}.
 ##
 ## The mean absolute deviation is defined as
--- a/scripts/statistics/mean.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/mean.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,15 +24,18 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} mean (@var{x})
-## @deftypefnx {} {} mean (@var{x}, @var{dim})
-## @deftypefnx {} {} mean (@var{x}, @var{opt})
-## @deftypefnx {} {} mean (@var{x}, @var{dim}, @var{opt})
-## @deftypefnx {} {} mean (@dots{}, @var{outtype})
-## Compute the mean of the elements of the vector @var{x}.
+## @deftypefn  {} {@var{y} =} mean (@var{x})
+## @deftypefnx {} {@var{y} =} mean (@var{x}, "all")
+## @deftypefnx {} {@var{y} =} mean (@var{x}, @var{dim})
+## @deftypefnx {} {@var{y} =} mean (@var{x}, @var{vecdim})
+## @deftypefnx {} {@var{y} =} mean (@dots{}, @var{outtype})
+## @deftypefnx {} {@var{y} =} mean (@dots{}, @var{nanflag})
+## Compute the mean of the elements of @var{x}.
 ##
-## The mean is defined as
-##
+## @itemize
+## @item
+## If @var{x} is a vector, then @code{mean(@var{x})} returns the
+## mean of the elements in @var{x} defined as
 ## @tex
 ## $$ {\rm mean}(x) = \bar{x} = {1\over N} \sum_{i=1}^N x_i $$
 ## where $N$ is the number of elements of @var{x}.
@@ -48,136 +51,187 @@
 ## where @math{N} is the length of the @var{x} vector.
 ##
 ## @end ifnottex
-## If @var{x} is a matrix, compute the mean for each column and return them
-## in a row vector.
 ##
-## If the optional argument @var{dim} is given, operate along this dimension.
-##
-## The optional argument @var{opt} selects the type of mean to compute.
-## The following options are recognized:
+## @item
+## If @var{x} is a matrix, then @code{mean(@var{x})} returns a row vector
+## with the mean of each columns in @var{x}.
 ##
-## @table @asis
-## @item @qcode{"a"}
-## Compute the (ordinary) arithmetic mean.  [default]
+## @item
+## If @var{x} is a multidimensional array, then @code{mean(@var{x})}
+## operates along the first nonsingleton dimension of @var{x}.
+## @end itemize
 ##
-## @item @qcode{"g"}
-## Compute the geometric mean.
+## @code{mean(@var{x}, "all")} returns the mean of all the elements in @var{x}.
 ##
-## @item @qcode{"h"}
-## Compute the harmonic mean.
-## @end table
+## @code{mean(@var{x}, @var{dim})} returns the mean along the
+## operating dimension @var{dim} of @var{x}.
 ##
-## The optional argument @var{outtype} selects the data type of the
-## output value.  The following options are recognized:
-##
-## @table @asis
-## @item @qcode{"default"}
-## Output will be of class double unless @var{x} is of class single,
-## in which case the output will also be single.
+## @code{mean(@var{x}, @var{vecdim})} returns the mean over the
+## dimensions specified in the vector @var{vecdim}.  For example, if @var{x}
+## is a 2-by-3-by-4 array, then @code{mean(@var{x}, [1 2])} returns a 1-by-4
+## array.  Each element of the output array is the mean of the elements on
+## the corresponding page of @var{x}.  NOTE! @var{vecdim} MUST index at least
+## N-2 dimensions of @var{x}, where @code{N = length (size (@var{x}))} and
+## N < 8.  If @var{vecdim} indexes all dimensions of @var{x}, then it is
+## equivalent to @code{mean(@var{x}, "all")}.
 ##
-## @item @qcode{"double"}
-## Output will be of class double.
+## @code{mean(@dots{}, @var{outtype})} returns the mean with a specified data
+## type, using any of the input arguments in the previous syntaxes.
+## @var{outtype} can be "default", "double", or "native".
 ##
-## @item @qcode{"native"}
-## Output will be the same class as @var{x} unless @var{x} is of class
-## logical in which case it returns of class double.
+## @code{mean(@dots{}, @var{nanflag})} specifies whether to exclude NaN values
+## from the calculation, using any of the input argument combinations in
+## previous syntaxes.  By default, NaN values are included in the calculation
+## (@var{nanflag} has the value "includenan").  To exclude NaN values, set the
+## value of @var{nanflag} to "omitnan".
 ##
-## @end table
-##
-## Both @var{dim} and @var{opt} are optional.  If both are supplied, either
-## may appear first.
 ## @seealso{median, mode}
 ## @end deftypefn
 
 function y = mean (x, varargin)
 
-  if (nargin < 1 || nargin > 4)
+  if (nargin < 1 || nargin > 4 || any (cellfun (@isnumeric, varargin(2:end))))
+    print_usage ();
+  endif
+
+  ## Check all char arguments.
+  all_flag = false;
+  omitnan = false;
+  outtype = "default";
+
+  for i = 1:length (varargin)
+    if (ischar (varargin{i}))
+      switch (varargin{i})
+        case "all"
+          all_flag = true;
+        case "omitnan"
+          omitnan = true;
+        case "includenan"
+          omitnan = false;
+        case {"default", "double", "native"}
+          outtype = varargin{i};
+        otherwise
+          print_usage ();
+      endswitch
+    endif
+  endfor
+  varargin(cellfun (@ischar, varargin)) = [];
+
+  if (((length (varargin) == 1) && ! (isnumeric (varargin{1}))) ...
+      || (length (varargin) > 1))
     print_usage ();
   endif
 
   if (! (isnumeric (x) || islogical (x)))
-    error ("mean: X must be a numeric vector or matrix");
-  endif
-  nd = ndims (x);
-  sz = size (x);
-
-  ## We support too many options...
-
-  ## If OUTTYPE is set, it must be the last option.  If DIM and
-  ## MEAN_TYPE exist, they must be the first two options
-
-  out_type = "default";
-  if (numel (varargin))
-    maybe_out_type = tolower (varargin{end});
-    if (any (strcmpi (maybe_out_type, {"default", "double", "native"})))
-      out_type = maybe_out_type;
-      varargin(end) = [];
-    endif
-  endif
-
-  scalars = cellfun (@isscalar, varargin);
-  chars = cellfun (@ischar, varargin);
-  numerics = cellfun (@isnumeric, varargin);
-
-  dim_mask = numerics & scalars;
-  mean_type_mask = chars & scalars;
-  if (! all (dim_mask | mean_type_mask))
-    print_usage ();
+    error ("mean: X must be either a numeric or boolean vector or matrix");
   endif
 
-  switch (nnz (dim_mask))
-    case 0 # Find the first non-singleton dimension
-      (dim = find (sz > 1, 1)) || (dim = 1);
-    case 1
-      dim = varargin{dim_mask};
-      if (dim != fix (dim) || dim < 1)
-        error ("mean: DIM must be an integer and a valid dimension");
+  if (length (varargin) == 0)
+
+    ## Single numeric input argument, no dimensions given.
+    if (all_flag)
+      n = length (x(:));
+      if (omitnan)
+        n = length (x(! isnan (x)));
+        x(isnan (x)) = 0;
+      endif
+      y = sum (x(:), 1) ./ n;
+    else
+      sz = size (x);
+      dim = find (sz > 1, 1);
+      if length (dim) == 0
+        dim = 1;
+      endif
+      n = size (x, dim);
+      if (omitnan)
+        n = sum (! isnan (x), dim);
+        x(isnan (x)) = 0;
       endif
-    otherwise
-      print_usage ();
-  endswitch
+      y = sum (x, dim) ./ n;
+    endif
+
+  else
+
+    ## Two numeric input arguments, dimensions given.  Note scalar is vector!
+    vecdim = varargin{1};
+    if (! (isvector (vecdim) && all (vecdim)) || any (rem (vecdim, 1)))
+      error ("mean: Dimension must be a positive integer scalar or vector");
+    endif
+
+    if (isscalar (vecdim))
+
+      n = size (x, vecdim);
+      if (omitnan)
+        n = sum (! isnan (x), vecdim);
+        x(isnan (x)) = 0;
+      endif
+      y = sum (x, vecdim) ./ n;
+
+    else
+
+      sz = size (x);
+      ndims = length (sz);
+      misdim = [1:ndims];
 
-  switch (nnz (mean_type_mask))
-    case 0
-      mean_type = "a";
-    case 1
-      mean_type = varargin{mean_type_mask};
-    otherwise
-      print_usage ();
-  endswitch
+      ## keep remaining dimensions
+      for i = 1:length (vecdim)
+        misdim(misdim == vecdim(i)) = [];
+      endfor
+
+      switch (length (misdim))
+        ## if all dimensions are given, compute x(:)
+        case 0
+          n = length (x(:));
+          if (omitnan)
+            n = length (x(! isnan (x)));
+            x(isnan (x)) = 0;
+          endif
+          y = sum (x(:), 1) ./ n;
 
-  ## The actual mean computation
-  n = size (x, dim);
-  switch (mean_type)
-    case "a"
-      y = sum (x, dim) / n;
-    case "g"
-      if (! any (x(:) < 0))
-        y = exp (sum (log (x), dim) ./ n);
-      else
-        error ("mean: X must not contain any negative values");
-      endif
-    case "h"
-      y = n ./ sum (1 ./ x, dim);
-    otherwise
-      error ("mean: mean type '%s' not recognized", mean_type);
-  endswitch
+        ## for 1 dimension left, return column vector
+        case 1
+          x = permute (x, [misdim, vecdim]);
+          for i = 1:size (x, 1)
+            x_vec = x(i,:,:,:,:,:,:)(:);
+            if (omitnan)
+              x_vec = x_vec(! isnan (x_vec));
+            endif
+            y(i) = sum (x_vec, 1) ./ length (x_vec);
+          endfor
+
+        ## for 2 dimensions left, return matrix
+        case 2
+          x = permute (x, [misdim, vecdim]);
+          for i = 1:size (x, 1)
+            for j = 1:size (x, 2)
+              x_vec = x(i,j,:,:,:,:,:)(:);
+              if (omitnan)
+                x_vec = x_vec(! isnan (x_vec));
+              endif
+              y(i,j) = sum (x_vec, 1) ./ length (x_vec);
+            endfor
+          endfor
+
+        ## for more that 2 dimensions left, print usage
+        otherwise
+          error ("vecdim must index at least N-2 dimensions of X");
+      endswitch
+    endif
+
+  endif
 
   ## Convert output as requested
-  switch (out_type)
+  switch (outtype)
     case "default"
       ## do nothing, the operators already do the right thing
     case "double"
       y = double (y);
     case "native"
-      if (islogical (x))
-        ## ignore it, return double anyway
-      else
+      if (! islogical (x))
         y = cast (y, class (x));
       endif
     otherwise
-      ## this should have been filtered out during input check, but...
-      error ("mean: OUTTYPE '%s' not recognized", out_type);
+      error ("mean: OUTTYPE '%s' not recognized", outtype);
   endswitch
 
 endfunction
@@ -191,28 +245,26 @@
 %! assert (mean (y), 0);
 %! assert (mean (z), [0, 10]);
 
-## Test small numbers
-%!assert (mean (repmat (0.1,1,1000), "g"), 0.1, 20*eps)
-
 %!assert (mean (magic (3), 1), [5, 5, 5])
 %!assert (mean (magic (3), 2), [5; 5; 5])
-%!assert (mean ([2 8], "g"), 4)
-%!assert (mean ([4 4 2], "h"), 3)
 %!assert (mean (logical ([1 0 1 1])), 0.75)
 %!assert (mean (single ([1 0 1 1])), single (0.75))
 %!assert (mean ([1 2], 3), [1 2])
 
 ## Test input validation
 %!error <Invalid call to mean.  Correct usage is> mean ()
+%!error <Invalid call to mean.  Correct usage is> mean (1, 2, 3)
 %!error <Invalid call to mean.  Correct usage is> mean (1, 2, 3, 4)
-%!error <X must be a numeric> mean ({1:5})
-%!error <Invalid call to mean.  Correct usage is> mean (1, 2, 3)
-%!error <Invalid call to mean.  Correct usage is> mean (1, ones (2,2))
-%!error <DIM must be an integer> mean (1, 1.5)
-%!error <DIM must be .* a valid dimension> mean (1, 0)
-%!error <X must not contain any negative values> mean ([1 -1], "g")
-%!error <mean type 'b' not recognized> mean (1, "b")
+%!error <Invalid call to mean.  Correct usage is> mean (1, "all", 3)
+%!error <Invalid call to mean.  Correct usage is> mean (1, "b")
 %!error <Invalid call to mean.  Correct usage is> mean (1, 1, "foo")
+%!error <X must be either a numeric or boolean> mean ({1:5})
+%!error <X must be either a numeric or boolean> mean ("char")
+%!error <Dimension must be a positive integer> mean (1, ones (2,2))
+%!error <Dimension must be a positive integer> mean (1, 1.5)
+%!error <Dimension must be a positive integer> mean (1, 0)
+%!error <vecdim must index at least N-2 dimensions of X> ...
+%!  mean (repmat ([1:20;6:25], [5 2 6 3 5]), [1 2])
 
 ## Test outtype option
 %!test
@@ -240,3 +292,54 @@
 %! assert (mean (in, "default"), mean (in));
 %! assert (mean (in, "default"), out);
 %! assert (mean (in, "native"), out);  # logical ignores native option
+
+## Test single input and optional arguments "all", DIM, "omitnan")
+%!test
+%! x = [-10:10];
+%! y = [x;x+5;x-5];
+%! assert (mean (x), 0);
+%! assert (mean (y, 2), [0, 5, -5]');
+%! assert (mean (y, "all"), 0);
+%! y(2,4) = NaN;
+%! assert (mean (y', "omitnan"), [0 5.35 -5]);
+%! z = y + 20;
+%! assert (mean (z, "all"), NaN);
+%! m = [20 NaN 15];
+%! assert (mean (z'), m);
+%! assert (mean (z', "includenan"), m);
+%! m = [20 25.35 15];
+%! assert (mean (z', "omitnan"), m);
+%! assert (mean (z, 2, "omitnan"), m');
+%! assert (mean (z, 2, "native", "omitnan"), m');
+%! assert (mean (z, 2, "omitnan", "native"), m');
+
+## Test boolean input
+%!test
+%! assert (mean (true, "all"), 1);
+%! assert (mean (false), 0);
+%! assert (mean ([true false true]), 2/3, 4e-14);
+%! assert (mean ([true false true], 1), [1 0 1]);
+%! assert (mean ([true false NaN], 1), [1 0 NaN]);
+%! assert (mean ([true false NaN], 2), NaN);
+%! assert (mean ([true false NaN], 2, "omitnan"), 0.5);
+%! assert (mean ([true false NaN], 2, "omitnan", "native"), 0.5);
+
+## Test dimension indexing with vecdim in n-dimensional arrays
+%!test
+%! x = repmat ([1:20;6:25], [5 2 6 3]);
+%! assert (size (mean (x, [3 2])), [10 3]);
+%! assert (size (mean (x, [1 2])), [6 3]);
+%! assert (size (mean (x, [1 2 4])), [1 6]);
+%! assert (size (mean (x, [1 4 3])), [1 40]);
+%! assert (size (mean (x, [1 2 3 4])), [1 1]);
+
+## Test results with vecdim in n-dimensional arrays and "omitnan"
+%!test
+%! x = repmat ([1:20;6:25], [5 2 6 3]);
+%! m = repmat ([10.5;15.5], [5,3]);
+%! assert (mean (x, [3 2]), m, 4e-14);
+%! x(2,5,6,3) = NaN;
+%! m(2,3) = NaN;
+%! assert (mean (x, [3 2]), m, 4e-14);
+%! m(2,3) = 15.52301255230125;
+%! assert (mean (x, [3 2], "omitnan"), m, 4e-14);
--- a/scripts/statistics/meansq.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/meansq.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} meansq (@var{x})
-## @deftypefnx {} {} meansq (@var{x}, @var{dim})
+## @deftypefn  {} {@var{y} =} meansq (@var{x})
+## @deftypefnx {} {@var{y} =} meansq (@var{x}, @var{dim})
 ## Compute the mean square of the elements of the vector @var{x}.
 ##
 ## The mean square is defined as
--- a/scripts/statistics/median.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/median.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} median (@var{x})
-## @deftypefnx {} {} median (@var{x}, @var{dim})
+## @deftypefn  {} {@var{y} =} median (@var{x})
+## @deftypefnx {} {@var{y} =} median (@var{x}, @var{dim})
 ## Compute the median value of the elements of the vector @var{x}.
 ##
 ## When the elements of @var{x} are sorted, say
@@ -60,7 +60,7 @@
 ## @seealso{mean, mode}
 ## @end deftypefn
 
-function retval = median (x, dim)
+function y = median (x, dim)
 
   if (nargin < 1)
     print_usage ();
@@ -88,16 +88,16 @@
   n = size (x, dim);
   k = floor ((n+1) / 2);
   if (mod (n, 2) == 1)
-    retval = nth_element (x, k, dim);
+    y = nth_element (x, k, dim);
   else
-    retval = sum (nth_element (x, k:k+1, dim), dim, "native") / 2;
+    y = sum (nth_element (x, k:k+1, dim), dim, "native") / 2;
     if (islogical (x))
-      retval = logical (retval);
+      y = logical (y);
     endif
   endif
   ## Inject NaNs where needed, to be consistent with Matlab.
   if (isfloat (x))
-    retval(any (isnan (x), dim)) = NaN;
+    y(any (isnan (x), dim)) = NaN;
   endif
 
 endfunction
--- a/scripts/statistics/mode.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/mode.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} mode (@var{x})
-## @deftypefnx {} {} mode (@var{x}, @var{dim})
+## @deftypefn  {} {@var{m} =} mode (@var{x})
+## @deftypefnx {} {@var{m} =} mode (@var{x}, @var{dim})
 ## @deftypefnx {} {[@var{m}, @var{f}, @var{c}] =} mode (@dots{})
 ## Compute the most frequently occurring value in a dataset (mode).
 ##
--- a/scripts/statistics/module.mk	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -34,6 +34,7 @@
   %reldir%/movstd.m \
   %reldir%/movsum.m \
   %reldir%/movvar.m \
+  %reldir%/normalize.m \
   %reldir%/prctile.m \
   %reldir%/quantile.m \
   %reldir%/range.m \
--- a/scripts/statistics/moment.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/moment.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,11 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} moment (@var{x}, @var{p})
-## @deftypefnx {} {} moment (@var{x}, @var{p}, @var{type})
-## @deftypefnx {} {} moment (@var{x}, @var{p}, @var{dim})
-## @deftypefnx {} {} moment (@var{x}, @var{p}, @var{type}, @var{dim})
-## @deftypefnx {} {} moment (@var{x}, @var{p}, @var{dim}, @var{type})
+## @deftypefn  {} {@var{m} =} moment (@var{x}, @var{p})
+## @deftypefnx {} {@var{m} =} moment (@var{x}, @var{p}, @var{type})
+## @deftypefnx {} {@var{m} =} moment (@var{x}, @var{p}, @var{dim})
+## @deftypefnx {} {@var{m} =} moment (@var{x}, @var{p}, @var{type}, @var{dim})
+## @deftypefnx {} {@var{m} =} moment (@var{x}, @var{p}, @var{dim}, @var{type})
 ## Compute the @var{p}-th central moment of the vector @var{x}.
 ##
 ## The @var{p}-th central moment of @var{x} is defined as:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/statistics/normalize.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,670 @@
+########################################################################
+##
+## Copyright (C) 2017-2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn  {} {@var{z} =} normalize (@var{x})
+## @deftypefnx {} {@var{z} =} normalize (@var{x}, @var{dim})
+## @deftypefnx {} {@var{z} =} normalize (@dots{}, @var{method})
+## @deftypefnx {} {@var{z} =} normalize (@dots{}, @var{method}, @var{option})
+## @deftypefnx {} {@var{z} =} normalize (@dots{}, @var{scale}, @var{scaleoption}, @var{center}, @var{centeroption})
+## @deftypefnx {} {[@var{z}, @var{c}, @var{s}] =} normalize (@dots{})
+##
+## Return a normalization of the data in @var{x} using one of several available
+## scaling and centering methods.
+##
+## @code{normalize} by default will return the @code{zscore} of @var{x},
+## defined as the number of standard deviations each element is from the mean
+## of @var{x}.  This is equivalent to centering at the mean of the data and
+## scaling by the standard deviation.
+##
+## The returned value @var{z} will have the same size as @var{x}.  The optional
+## return variables @var{c} and @var{s} are the centering and scaling factors
+## used in the normalization such that:
+##
+## @example
+## @group
+##   @tcode{@var{z} = (@var{x} - @var{c}) ./ @var{s}}
+## @end group
+## @end example
+##
+## If @var{x} is a vector, @code{normalize} will operate on the data in
+## @var{x}.
+##
+## If @var{x} is a matrix, @code{normalize} will operate independently on
+## each column in @var{x}.
+##
+## If @var{x} is an N-dimensional array, @code{normalize} will operate
+## independently on the first non-singleton dimension in @var{x}.
+##
+## If the optional second argument @var{dim} is given, operate along this
+## dimension.
+##
+## The optional inputs @var{method} and @var{option} can be used to specify the
+## type of normalization performed on @var{x}.  Note that only the
+## @option{scale} and @option{center} options may be specified together using
+## any of the methods defined below.  Valid normalization methods are:
+##
+## @table @code
+## @item zscore
+## (Default) Normalizes the elements in @var{x} to the scaled distance from a
+##  central value.  Valid Options:
+##
+##    @table @code
+##    @item std
+##    (Default) Data is centered at @code{mean (@var{x})} and scaled by the
+##      standard deviation.
+##
+##    @item robust
+##    Data is centered at @code{median (@var{x})} and scaled by the median
+##    absolute deviation.
+##    @end table
+##
+## @item norm
+## @var{z} is the general vector norm of @var{x}, with @var{option} being the
+## normalization factor @var{p} that determines the vector norm type according
+## to:
+## @tex
+## $$Z = \left (\sum_k \left | X_k \right |^P  \right )^{1/P}$$
+## @end tex
+## @ifnottex
+##
+## @example
+## @group
+##   @tcode{@var{z} = [sum (abs (@var{x}) .^ @var{p})] ^ (1/@var{p})}
+## @end group
+## @end example
+##
+## @end ifnottex
+## @var{p} can be any positive scalar, specific values being:
+##
+##    @table @code
+##    @item @var{p} = 1
+##    @var{x} is normalized by @code{sum (abs (@var{x}))}.
+##
+##    @item @var{p} = 2
+##    (Default) @var{x} is normalized by the Euclidian norm, or vector
+##    magnitude, of the elements.
+##
+##    @item @var{P} = Inf
+##    @var{x} is normalized by @code{max (abs (@var{x}))}.
+##    @end table
+##
+## @item scale
+## @var{x} is scaled by a factor determined by @var{option}, which can be a
+## numeric scalar or one of the following:
+##
+##    @table @code
+##    @item std
+##    (Default) @var{x} is scaled by its standard deviation.
+##
+##    @item mad
+##    @var{x} is scaled by its median absolute deviation.
+##
+##    @item first
+##    @var{x} is scaled by its first element.
+##
+##    @item iqr
+##    @var{x} is scaled by its interquartile range.
+##    @end table
+##
+## @item range
+## @var{x} is scaled to fit the range specified by @var{option} as a two
+## element scalar row vector.  The default range is [0, 1].
+##
+## @item center
+## @var{x} is shifted by an amount determined by @var{option}, which can be a
+## numeric scalar or one of the following:
+##
+##    @table @code
+##    @item mean
+##    (Default) @var{x} is shifted by @code{mean (@var{x})}.
+##
+##    @item median
+##    @var{x} is shifted by @code{median (@var{x})}.
+##    @end table
+##
+## @item medianiqr
+## @var{x} is shifted by @code{median (@var{x})} and scaled by the
+## interquartile range.
+## @end table
+##
+## Known @sc{matlab} incompatibilities:
+##
+## @enumerate
+## @item
+## The option @option{DataVariables} is not yet implemented for Table class
+## @var{x} inputs.
+##
+## @item
+## Certain arrays containing NaN elements may not return @sc{matlab} compatible
+## output.
+## @end enumerate
+##
+## @seealso{zscore, iqr, norm, rescale, std, median, mean, mad}
+## @end deftypefn
+
+function [z, c, s] = normalize (x, varargin)
+
+  ## FIXME: Until NANFLAG/OMITNAN option is implemented in std, mean, median,
+  ## etc., normalize cannot efficiently reproduce some behavior with NaNs in
+  ## x.  xtests added to capture this.  (See bug #50571)
+
+  ## FIXME: When table class is implemented, remove DataVariables error line in
+  ## option checking section and add DataVariables data handling switch
+  ## section.
+
+  ## Input validation
+  if (nargin < 1 || nargin > 8)
+    print_usage ();
+  endif
+
+  if (! isnumeric (x))
+    error ("normalize: X must be a numeric vector, matrix, or array");
+  endif
+
+  if (nargin == 1)
+    ## Directly handle simple 1 input case.
+    [s, c] = std (x);
+
+  else
+    ## Parse input options
+    dim = [];
+    method = [];
+    methodoption = [];
+    datavariables_flag = false;
+    datavar = [];
+    scale_and_center_flag = false;
+
+    vararg_idx = 1;
+    ## Only second optional input can be numeric without following a method.
+    if (isnumeric (varargin{1}))
+      dim = varargin{1};
+      ## Check for valid dimensions
+      if (! (isscalar (dim) && dim == fix (dim) && dim > 0))
+        error ("normalize: DIM must be an integer and a valid dimension");
+      endif
+      vararg_idx++;
+    endif
+
+    ## Parse varargin to determine methods then options.
+    n_varargin = nargin - 1;
+    while (vararg_idx <= n_varargin)
+      ## Arguments after second cannot be numeric without following a method.
+      if (isnumeric (varargin{vararg_idx}))
+        print_usage ();
+      endif
+
+      prop = tolower (varargin{vararg_idx});
+
+      if (strcmp (prop, "datavariables"))
+        ## FIXME: Remove error on next line and undo block comment when support
+        ## for Tables is implemented.
+        error ("normalize: DataVariables method not yet implemented");
+        #{
+        if (vararg_idx == n_varargin)
+          error (["normalize: DataVariables requires a table variable", ...
+                 " be specified"]);
+        elseif (datavariables_flag == true)
+          error ("normalize: DataVariables may only be specified once");
+        else
+          datavariables_flag = true;
+          datavar = varargin{vararg_idx+1};
+          vararg_idx++;
+        endif
+        #}
+
+      else
+        if (! isempty (method))
+          ## Catch if a second method is passed
+          if (scale_and_center_flag)
+            ## if true, already specified two methods, three never possible
+            error ("normalize: more than two methods specified");
+
+          elseif (strcmp ({method, prop}, {"center", "scale"})
+                  || strcmp ({method, prop}, {"scale", "center"}))
+            ## Only scale and center can be called together
+            scale_and_center_flag = true;
+            ## scale/center order doesn't matter, avoid overwriting first one
+            stored_method = method;
+            method = [];
+            stored_methodoption = methodoption;
+            methodoption = [];
+          else
+            ## not scale and center, throw appropriate error
+            if (any (strcmp (prop, {"zscore", "norm", "range", "scale", ...
+                                    "center", "medianiqr"})))
+              error ("normalize: methods '%s' and '%s' may not be combined",
+                     method, prop);
+            else
+              error ("normalize: unknown method '%s'", prop);
+            endif
+          endif
+        endif
+
+        ## Determine method and whether there's an appropriate option specified
+        switch (prop)
+          case "zscore"
+            method = "zscore";
+            if (vararg_idx < n_varargin)
+              nextprop = tolower (varargin{vararg_idx+1});
+              if (strcmp (nextprop, "std") || strcmp (nextprop, "robust"))
+                methodoption = nextprop;
+                vararg_idx++;
+              endif
+            endif
+            if (isempty (methodoption))
+              methodoption = "std";
+            endif
+
+          case "norm"
+            method = "norm";
+            if (vararg_idx < n_varargin && isnumeric (varargin{vararg_idx+1}))
+              nextprop = varargin{vararg_idx+1};
+              if (isscalar (nextprop) && (nextprop > 0))
+                methodoption = nextprop;
+                vararg_idx++;
+              else
+                error (["normalize: 'norm' option must be a positive ", ...
+                        "scalar or Inf"]);
+              endif
+            endif
+            if (isempty (methodoption))
+              methodoption = 2;
+            endif
+
+          case "range"
+            method = "range";
+            if (vararg_idx < n_varargin && isnumeric (varargin{vararg_idx+1}))
+              nextprop = varargin{vararg_idx+1};
+              if (any (size (nextprop) != [1 2]))
+                error (["normalize: 'range' must be specified as a ", ...
+                        "2-element row vector [a, b]"]);
+              endif
+              methodoption = nextprop;
+              vararg_idx++;
+            endif
+            if (isempty (methodoption))
+              methodoption = [0, 1];
+            endif
+
+          case "scale"
+            method = "scale";
+            if (vararg_idx < n_varargin)
+              nextprop = tolower (varargin{vararg_idx+1});
+              if (isnumeric (nextprop))
+                if (! isscalar (nextprop))
+                  error ("normalize: scale value must be a scalar");
+                else
+                  methodoption = nextprop;
+                  vararg_idx++;
+                endif
+              elseif (any (strcmp (nextprop, {"std", "mad", "first", "iqr"})))
+                methodoption = nextprop;
+                vararg_idx++;
+              endif
+            endif
+
+            if (isempty (methodoption))
+              methodoption = 'std';
+            endif
+
+          case "center"
+            method = "center";
+            if (vararg_idx < n_varargin)
+              nextprop = tolower (varargin{vararg_idx+1});
+              if (isscalar (nextprop)
+                  || any (strcmp (nextprop, {"mean", "median"})))
+                methodoption = nextprop;
+                vararg_idx++;
+              elseif (isnumeric (nextprop))
+                error ("normalize: center shift must be a scalar value");
+              endif
+            endif
+            if (isempty (methodoption))
+              methodoption = 'mean';
+            endif
+
+          case "medianiqr"
+            method = "medianiqr";
+
+          otherwise
+            error ("normalize: unknown method '%s'", prop);
+
+        endswitch
+      endif
+
+      vararg_idx++;
+    endwhile
+
+    if (scale_and_center_flag)
+      method = "scaleandcenter";
+    endif
+
+    if (isempty (method))
+      method = 'zscore';
+      methodoption = 'std';
+    endif
+
+    if (isempty (dim))
+      ## Operate on first non-singleton dimension.
+      (dim = find (size (x) > 1, 1)) || (dim = 1);
+    endif
+
+    ## Perform normalization based on specified methods
+
+    ## FIXME: DataTables option not handled below.  Fix after Table Class
+    ## has been implemented.
+
+    ## Default center/scale factors:
+    c = 0;
+    s = 1;
+
+    switch (method)
+      case "zscore"
+        switch (methodoption)
+          case "std"
+            [s, c] = std (x, [], dim);
+          case "robust"
+            ## center/median to zero and MAD = 1
+            c = median (x, dim);
+            ## FIXME: Use bsxfun, rather than broadcasting, until broadcasting
+            ##        supports diagonal and sparse matrices (Bugs #41441, #35787).
+            s = median (abs (bsxfun (@minus, x , c)), dim);
+            ## s = median (abs (x - c), dim);   # Automatic broadcasting
+        endswitch
+
+      case "norm"
+        switch (methodoption)
+          case 1
+            s = sum (abs (x), dim);
+          case Inf
+            s = max (abs (x), [], dim);
+          otherwise
+            s = sum (abs (x) .^ methodoption, dim) .^ (1/methodoption);
+        endswitch
+
+      case "range"
+        ## if any range element = 0, avoid divide by zero by replacing that
+        ## range element with 1.  output will be zero+min due to x-min(x)=0.
+        x_range = range (x, dim);
+        x_range(x_range == 0) = 1;
+        z_range = methodoption(2) - methodoption(1);
+        s = x_range ./ z_range;
+        c = min (x, [], dim) - (methodoption(1) .* s);
+
+      case "scale"
+        s = process_scale_option (x, dim, methodoption);
+
+      case "center"
+        c = process_center_option (x, dim, methodoption);
+
+      case "scaleandcenter"
+        ## repeats scale and center using appropriate order and info
+
+        switch (stored_method)
+          case "scale"
+            ## stored info is scale, latest info is center
+            center_option = methodoption;
+            scale_option = stored_methodoption;
+
+          case "center"
+            ## stored info is center, latest info is scale
+            center_option = stored_methodoption;
+            scale_option = methodoption;
+        endswitch
+
+        s = process_scale_option (x, dim, scale_option);
+        c = process_center_option (x, dim, center_option);
+
+      case "medianiqr"
+        c = median (x, dim);
+        s = iqr (x, dim);
+
+    endswitch
+
+  endif
+
+  ## Divide by scale factor.  If scale = 0, divide by zero = Inf, which is OK.
+
+  ## FIXME: Use bsxfun, rather than broadcasting, until broadcasting
+  ##        supports diagonal and sparse matrices (Bugs #41441, #35787).
+  z = bsxfun (@rdivide, bsxfun (@minus, x , c), s);
+  ## z = (x - c) ./ s;  # Automatic broadcasting
+
+endfunction
+
+function c = process_center_option (x, dim, center_option)
+
+  if (isnumeric (center_option))
+    c = center_option;
+  else
+    switch (center_option)
+      case "mean"
+        c = mean (x, dim);
+      case "median"
+        c = median (x, dim);
+    endswitch
+  endif
+
+endfunction
+
+function s = process_scale_option (x, dim, scale_option)
+
+  warning ("off", "Octave:divide-by-zero", "local");
+
+  if (isnumeric (scale_option))
+    s = scale_option;
+  else
+    switch (scale_option)
+      case "std"
+        s = std (x, [], dim);
+      case "mad"
+        s = mad (x, 1, dim);
+      case "first"
+        dim_vector = repmat ({':'}, ndims(x), 1);
+        dim_vector{dim} = 1;
+        s = x(dim_vector{:});
+      case "iqr"
+        s = iqr (x, dim);
+    endswitch
+  endif
+
+endfunction
+
+
+## no method specified, using zscore & std
+%!assert (normalize ([1,2,3]), [-1,0,1])
+%!assert (normalize ([1,2,3], 2), [-1,0,1])
+%!assert (normalize (single ([1,2,3])), single ([-1,0,1]))
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2]), [1,0,-1;0,1,0;-1,-1,1])
+%!assert (normalize (magic (3)), [[3;-2;-1]/sqrt(7),[-1;0;1],[1;2;-3]/sqrt(7)])
+%!assert (normalize (magic (3), 2), [[3 -4 1]/sqrt(13);[-1 0 1];[-1 4 -3]/sqrt(13)])
+
+## Method: zscore, [std, robust]
+%!assert (normalize ([1,2,3],"zscore","std"), [-1,0,1])
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"zscore","std"), [1,0,-1;0,1,0;-1,-1,1])
+%!assert (normalize (magic (3),"zscore","std"), [[3;-2;-1]/sqrt(7),[-1;0;1],[1;2;-3]/sqrt(7)])
+%!assert (normalize ([1,2,3],"zscore","robust"), [-1,0,1])
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"zscore","robust"), [1,0,-1;0,1,0;-1,-1,1])
+%!assert (normalize (magic (3),"zscore","robust"), [4 -1 0; -1 0 1; 0 1 -4])
+
+## Method: norm [1, 2, inf]
+%!assert (normalize ([1,2,3],"norm",1), [1/6 1/3 1/2])
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"norm",1), [1,0,-1;0,1,0;-1,-1,1]/2)
+%!assert (normalize (magic (3),"norm",1), magic(3)/15)
+%!assert (normalize ([1,2,3],"norm",2), [1 2 3]./3.741657386773941, eps)
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"norm",2), [1,0,-1;0,1,0;-1,-1,1]*(sqrt(2)/2), eps)
+%!assert (normalize ([1,2,3],"norm",Inf), [1/3 2/3 1])
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"norm",Inf), [1,0,-1;0,1,0;-1,-1,1])
+%!assert (normalize (magic (3),"norm",Inf), [[8;3;4]/8,[1;5;9]/9,[6;7;2]/7])
+
+## Method: range
+%!assert (normalize ([1,2,3],"range"), [0 0.5 1])
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"range",[0 1]), [1,0.5,0;0.5,1,0.5;0,0,1])
+%!assert (normalize (magic (3),"range",[-1 1]), [1 -1 0.6; -1 0 1; -0.6 1 -1], eps)
+
+## Method: scale [mad first iqr number]
+%!assert (normalize ([1,2,3],"scale"), [1 2 3])
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"scale","std"), [1 0 -1; 0 1 0; -1 -1 1])
+%!assert (normalize (magic (3),"scale",2), (magic(3)/2))
+
+%!assert (normalize ([1,2,3],"scale", "mad"), [1 2 3])
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"scale","mad"), [1 0 -1; 0 1 0; -1 -1 1])
+%!assert (normalize (magic (3),"scale","mad"), [8 0.25 6; 3 1.25 7; 4 2.25 2])
+
+%!assert (normalize ([1,2,3],"scale", "first"), [1 2 3])
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"scale","first"), [1 NaN 1; 0 Inf 0; -1 -Inf -1])
+%!assert (normalize (magic (3),"scale","first"), [1 1 1; 3/8 5 7/6; 0.5 9 1/3])
+%!assert (normalize (magic (3),2,"scale","first"), [1 1/8 3/4;1 5/3 7/3;1 9/4 0.5])
+%!test
+%! x = reshape (magic (4),2,2,2,2);
+%! y3 = cat (4, cat (3,ones(2),[1/8 7/9;11/5 7/2]), cat (3,ones(2),[13/3 2; 4/5 1/15]));
+%! y4 = cat (4, ones (2,2,2), cat (3,[3/16 2/3; 2 15/4],[6.5 12/7; 8/11 1/14] ));
+%! assert (normalize (x, 3, "scale", "first"), y3);
+%! assert (normalize (x, 4, "scale", "first"), y4);
+
+%!assert (normalize ([1,2,3], "scale", "iqr"), [1 2 3]*2/3)
+%!assert (normalize ([1,2,3]', "scale", "iqr"), ([1 2 3]')*2/3)
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2],"scale","iqr"), [1 0 -1; 0 1 0; -1 -1 1]* 2/3, eps)
+%!assert (normalize (magic (3),"scale","iqr"), [[8;3;4]/3.75,[1;5;9]/6,[6;7;2]/3.75],eps)
+
+## Method: center [mean median number]
+%!assert (normalize ([1,2,3], "center"), [-1 0 1])
+%!assert (normalize ([1,2,3], 1, "center"), [0 0 0])
+%!assert (normalize ([1,2,3], "center", 10), [-9 -8 -7])
+%!assert (normalize ([1 2 3 10], "center", "mean"), [-3 -2 -1 6])
+%!assert (normalize ([1 2 3 10], "center", "median"), [-1.5 -0.5 0.5 7.5])
+
+## Method: medianiqr
+%!assert (normalize ([1,2,3], "medianiqr"), [-1 0 1]*2/3)
+%!assert (normalize ([1,2,3]', "medianiqr"), ([-1 0 1]')*2/3)
+%!assert (normalize ([2,0,-2;0,2,0;-2,-2,2], "medianiqr"), [1 0 -1; 0 1 0; -1 -1 1]*2/3)
+%!assert (normalize (magic (3), "medianiqr"), [8/5 -1 0; -2/5 0 2/5; 0 1 -8/5]*2/3)
+
+## Test NaN and Inf
+%!assert (normalize ([1 2 Inf], 2), [NaN, NaN, NaN])
+%!assert (normalize ([1 2 3], 1), [NaN, NaN, NaN])
+%!assert (normalize ([1 2 3], 3), [NaN, NaN, NaN])
+%!assert (normalize (ones (3,2,2,2)), NaN (3,2,2,2))
+%!assert (normalize (Inf), NaN)
+%!assert (normalize (NaN), NaN)
+%!assert (normalize ([Inf, NaN]), [NaN, NaN])
+%!assert (normalize ([Inf, NaN]'), [NaN, NaN]')
+%!assert (normalize ([Inf, Inf], 1), [NaN, NaN])
+%!assert (normalize ([Inf, Inf], 2), [NaN, NaN])
+%!assert (normalize ([Inf, Inf]', 1), [NaN, NaN]')
+%!assert (normalize ([Inf, Inf]', 2), [NaN, NaN]')
+%!assert (normalize ([1 2 NaN; NaN 3 4], 1), [NaN -1 NaN; NaN 1 NaN]*sqrt(2)/2, eps)
+
+## Two input methods, must be scale and center
+%!assert (normalize (magic(3), "scale", "center"), normalize (magic(3), "zscore"), eps)
+%!assert (normalize (magic(3), "center", "scale"), normalize (magic(3), "zscore"), eps)
+
+## Test additional outputs
+%!test
+%! [z, c, s] = normalize ([1, 2, 3], 2);
+%! assert ({z, c, s}, {[-1 0 1], [2], [1]});
+%! [z, c, s] = normalize (magic (3), "zscore", "std");
+%! assert ({z, c, s}, {[[3;-2;-1]/sqrt(7),[-1;0;1],[1;2;-3]/sqrt(7)], [5 5 5], [sqrt(7) 4 sqrt(7)]});
+%! [z, c, s] = normalize (magic (3), "zscore", "robust");
+%! assert ({z, c, s}, {[4 -1 0; -1 0 1; 0 1 -4], [4 5 6], [1 4 1]});
+%! [z, c, s] = normalize (magic (3), "norm", 1);
+%! assert ({z, c, s}, {magic(3)/15 , 0, [15 15 15]});
+%! [z, c, s] = normalize ([2,0,-2;0,2,0;-2,-2,2],"norm",2);
+%! assert ({z, c, s}, {[1,0,-1;0,1,0;-1,-1,1]*(sqrt(2)/2), 0, [1 1 1]*2*sqrt(2)}, eps)
+%! [z, c, s] = normalize ([1 2 3], "norm", Inf);
+%! assert ({z, c, s}, {[1 2 3]/3, 0, 3}, eps);
+%! [z, c, s] = normalize (magic (3),"range",[-1 1]);
+%! assert ({z, c, s}, {[1 -1 0.6; -1 0 1; -0.6 1 -1], [5.5 5 4.5], [2.5 4 2.5]}, eps)
+%! [z, c, s] = normalize (magic (3),"scale","mad");
+%! assert ({z, c, s}, {[8 0.25 6; 3 1.25 7; 4 2.25 2], 0, [1 4 1]});
+%! [z, c, s] = normalize (magic (3),"scale","first");
+%! assert ({z, c, s}, {[1 1 1; 3/8 5 7/6; 0.5 9 1/3],0, [8 1 6]}, eps);
+%! [z, c, s] = normalize ([1,2,3]', "scale", "iqr");
+%! assert ({z, c, s}, {([1 2 3]')*2/3, 0, 1.5});
+%! [z, c, s] = normalize ([1,2,3], "center", 10);
+%! assert ({z, c, s}, {[-9 -8 -7], 10, 1});
+%! [z, c, s] = normalize ([1 2 3 10], "center", "mean");
+%! assert ({z, c, s}, {[-3 -2 -1 6], 4, 1})
+%! [z, c, s] = normalize ([1 2 3 10], "center", "median");
+%! assert ({z, c, s}, {[-1.5 -0.5 0.5 7.5], 2.5, 1});
+%! [z, c, s] = normalize (magic (3), "medianiqr");
+%! assert ({z, c, s}, {[8/5 -1 0; -2/5 0 2/5; 0 1 -8/5]*2/3, [4 5 6], [3.75 6 3.75]}, eps)
+%! [z, c, s] = normalize ([1 2 Inf], 2);
+%! assert ({z, c, s}, {[NaN, NaN, NaN], Inf, NaN});
+%! [z, c, s] = normalize (Inf);
+%! assert ({z, c, s}, {NaN, Inf, NaN});
+
+## Test sparse and diagonal inputs
+%!test
+%! [z, c, s] = normalize (eye (2));
+%! assert (z, (sqrt(2)/2)*[1, -1; -1, 1], eps);
+%! assert (c, [0.5, 0.5], eps);
+%! assert (s, (sqrt(2)/2)*[1, 1], eps);
+%!test
+%! [z, c, s] = normalize (sparse (eye (2)));
+%! assert (full (z), (sqrt(2)/2)*[1, -1; -1, 1], eps);
+%! assert (full (c), [0.5, 0.5], eps);
+%! assert (full (s), (sqrt(2)/2)*[1, 1], eps);
+%!test
+%! [z, c, s] = normalize (sparse (magic (3)), "zscore", "robust");
+%! assert (full (z), [4 -1 0; -1 0 1; 0 1 -4], eps);
+%! assert (full (c), [4, 5, 6], eps);
+%! assert (full (s), [1, 4, 1], eps);
+%!test <55765>
+%! [z, c, s] = normalize (sparse (eye(2)));
+%! assert (issparse (z));
+%! assert (issparse (c));
+%! assert (issparse (s));
+%!test <55765>
+%! [z, c, s] = normalize (sparse (magic (3)), "zscore", "robust");
+%! assert (issparse (z));
+%! assert (issparse (c));
+%! assert (issparse (s));
+
+## Matlab ignores NaNs, operating as if the vector had one less element, then
+## returns the result retaining the NaN in the solution.
+%!assert <50571> (normalize ([1 2 NaN], 2), [-1, 1, NaN]*sqrt(2)/2)
+%!assert <50571> (normalize ([1 2 NaN; 1 2 3], 2), [[-1 1 NaN]*sqrt(2)/2; -1 0 1], eps)
+
+## Test input validation
+%!error <Invalid call> normalize ()
+%!error <Invalid call> normalize (1, 2, 3)
+%!error <X must be a numeric> normalize (['A'; 'B'])
+%!error <DIM must be an integer> normalize (1, ones (2,2))
+%!error <DIM must be an integer> normalize (1, 1.5)
+%!error <DIM must be .* a valid dimension> normalize (1, 0)
+%!error <more than two methods specified> normalize ([1 2 3], "scale", "center", "norm")
+%!error <methods .* may not be combined> normalize ([1 2 3], "norm", "zscore")
+%!error <unknown method 'foo'> normalize ([1 2 3], "norm", "foo")
+%
+%!error <'norm' option must be a positive scalar or Inf> normalize ([1 2 3], "norm", [1 2])
+%!error <'norm' option must be a positive scalar or Inf> normalize ([1 2 3], "norm", -1)
+%!error <'range' must be specified as> normalize ([1 2 3], "range", [1 2]')
+%!error <'range' must be specified as> normalize ([1 2 3], "range", [1 2 3])
+%!error <'range' must be specified as> normalize ([1 2 3], "range", 1)
+%!error <scale value must be a scalar> normalize ([1 2 3], "scale", [1 2 3])
+%!error <center shift must be a scalar value> normalize ([1 2 3], "center", [1 2])
+%!error <unknown method 'foo'> normalize ([1 2 3], "foo")
--- a/scripts/statistics/range.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/range.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} range (@var{x})
-## @deftypefnx {} {} range (@var{x}, @var{dim})
+## @deftypefn  {} {@var{y} =} range (@var{x})
+## @deftypefnx {} {@var{y} =} range (@var{x}, @var{dim})
 ## Return the range, i.e., the difference between the maximum and the minimum
 ## of the input data.
 ##
--- a/scripts/statistics/ranks.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/ranks.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} ranks (@var{x})
-## @deftypefnx {} {} ranks (@var{x}, @var{dim})
-## @deftypefnx {} {} ranks (@var{x}, @var{dim}, @var{rtype})
+## @deftypefn  {} {@var{y} =} ranks (@var{x})
+## @deftypefnx {} {@var{y} =} ranks (@var{x}, @var{dim})
+## @deftypefnx {} {@var{y} =} ranks (@var{x}, @var{dim}, @var{rtype})
 ## Return the ranks (in the sense of order statistics) of @var{x} along the
 ## first non-singleton dimension adjusted for ties.
 ##
--- a/scripts/statistics/run_count.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/run_count.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} run_count (@var{x}, @var{n})
-## @deftypefnx {} {} run_count (@var{x}, @var{n}, @var{dim})
+## @deftypefn  {} {@var{cnt} =} run_count (@var{x}, @var{n})
+## @deftypefnx {} {@var{cnt} =} run_count (@var{x}, @var{n}, @var{dim})
 ## Count the upward runs along the first non-singleton dimension of @var{x}
 ## of length 1, 2, @dots{}, @var{n}-1 and greater than or equal to @var{n}.
 ##
@@ -34,7 +34,7 @@
 ## @seealso{runlength}
 ## @end deftypefn
 
-function retval = run_count (x, n, dim)
+function cnt = run_count (x, n, dim)
 
   if (nargin < 2)
     print_usage ();
@@ -44,7 +44,7 @@
     error ("run_count: X must be a numeric vector or matrix");
   endif
 
-  if (!(isscalar (n) && n == fix (n) && n > 0))
+  if (! (isscalar (n) && n == fix (n) && n > 0))
     error ("run_count: N must be a positive integer");
   endif
 
@@ -82,16 +82,16 @@
   tmp = tmp(idx{:});
 
   sz(1) = n;
-  retval = zeros (sz);
+  cnt = zeros (sz);
   for k = 1 : (n-1)
     idx{1} = k;
-    retval(idx{:}) = sum (tmp == k);
+    cnt(idx{:}) = sum (tmp == k);
   endfor
   idx{1} = n;
-  retval(idx{:}) = sum (tmp >= n);
+  cnt(idx{:}) = sum (tmp >= n);
 
   if (dim != 1)
-    retval = ipermute (retval, perm);
+    cnt = ipermute (cnt, perm);
   endif
 
 endfunction
--- a/scripts/statistics/skewness.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/skewness.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} skewness (@var{x})
-## @deftypefnx {} {} skewness (@var{x}, @var{flag})
-## @deftypefnx {} {} skewness (@var{x}, @var{flag}, @var{dim})
+## @deftypefn  {} {@var{y} =} skewness (@var{x})
+## @deftypefnx {} {@var{y} =} skewness (@var{x}, @var{flag})
+## @deftypefnx {} {@var{y} =} skewness (@var{x}, @var{flag}, @var{dim})
 ## Compute the sample skewness of the elements of @var{x}.
 ##
 ## The sample skewness is defined as
--- a/scripts/statistics/spearman.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/spearman.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} spearman (@var{x})
-## @deftypefnx {} {} spearman (@var{x}, @var{y})
+## @deftypefn  {} {@var{rho} =} spearman (@var{x})
+## @deftypefnx {} {@var{rho} =} spearman (@var{x}, @var{y})
 ## @cindex Spearman's Rho
 ## Compute Spearman's rank correlation coefficient
 ## @tex
--- a/scripts/statistics/statistics.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/statistics.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} statistics (@var{x})
-## @deftypefnx {} {} statistics (@var{x}, @var{dim})
+## @deftypefn  {} {@var{stats} =} statistics (@var{x})
+## @deftypefnx {} {@var{stats} =} statistics (@var{x}, @var{dim})
 ## Return a vector with the minimum, first quartile, median, third quartile,
 ## maximum, mean, standard deviation, skewness, and kurtosis of the elements of
 ## the vector @var{x}.
--- a/scripts/statistics/std.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/std.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} std (@var{x})
-## @deftypefnx {} {} std (@var{x}, @var{w})
-## @deftypefnx {} {} std (@var{x}, @var{w}, @var{dim})
-## @deftypefnx {} {} std (@var{x}, @var{w}, @qcode{"ALL"})
+## @deftypefn  {} {@var{y} =} std (@var{x})
+## @deftypefnx {} {@var{y} =} std (@var{x}, @var{w})
+## @deftypefnx {} {@var{y} =} std (@var{x}, @var{w}, @var{dim})
+## @deftypefnx {} {@var{y} =} std (@var{x}, @var{w}, @qcode{"ALL"})
+## @deftypefnx {} {[@var{y}, @var{mu}] =} std (@dots{})
 ## Compute the standard deviation of the elements of the vector @var{x}.
 ##
 ## The standard deviation is defined as
@@ -62,34 +63,46 @@
 ## unbiased estimator of the variance.
 ##
 ## @item 1:
-## Normalize with @math{N}. This provides the square root of the second moment
-## around the mean.
+## Normalize with @math{N}@.  This provides the square root of the second
+## moment around the mean.
 ##
 ## @item a vector:
-## Compute the weighted standard deviation with nonnegative scalar weights. The
-## length of @var{w} must be equal to the size of @var{x} along dimension
+## Compute the weighted standard deviation with non-negative scalar weights.
+## The length of @var{w} must equal the size of @var{x} along dimension
 ## @var{dim}.
 ## @end table
 ##
-## If @math{N} is equal to 1 the value of @var{W} is ignored and
-## normalization by @math{N} is used.
+## If @math{N} is equal to 1 the value of @var{W} is ignored and normalization
+## by @math{N} is used.
 ##
 ## The optional variable @var{dim} forces @code{std} to operate over the
-## specified dimension.  @var{dim} can either be a scalar dimension or a vector
-## of non-repeating dimensions over which to operate.  Dimensions must be
-## positive integers, and the standard deviation is calculated over the array
-## slice defined by @var{dim}.
+## specified dimension(s).  @var{dim} can either be a scalar dimension or a
+## vector of non-repeating dimensions.  Dimensions must be positive integers,
+## and the standard deviation is calculated over the array slice defined by
+## @var{dim}.
 ##
-## Specifying dimension @qcode{"ALL"} will force @code{std} to operate on all
+## Specifying dimension @qcode{"all"} will force @code{std} to operate on all
 ## elements of @var{x}, and is equivalent to @code{std (@var{x}(:))}.
 ##
-## When @var{dim} is a vector or @qcode{"ALL"}, @var{w} must be either 0 or 1.
+## When @var{dim} is a vector or @qcode{"all"}, @var{w} must be either 0 or 1.
+##
+## The optional second output variable @var{mu} contains the mean or weighted
+## mean used to calculate @var{y}, and will be the same size as @var{y}.
 ## @seealso{var, bounds, mad, range, iqr, mean, median}
 ## @end deftypefn
 
-function retval = std (varargin)
+function [y, mu] = std (varargin)
+
+  if (nargin < 1)
+    print_usage ();
+  endif
 
-  retval = sqrt (var (varargin{:}));
+  if (nargout < 2)
+    y = sqrt (var (varargin{:}));
+  else
+    [y, mu] = var (varargin{:});
+    y = sqrt (y);
+  endif
 
 endfunction
 
@@ -108,31 +121,5 @@
 %!assert (std (single (1)), single (0))
 %!assert (std ([1 2 3], [], 3), [0 0 0])
 
-##Test empty inputs
-%!assert (std ([]), NaN)
-%!assert (std ([],[],1), NaN(1,0))
-%!assert (std ([],[],2), NaN(0,1))
-%!assert (std ([],[],3), [])
-%!assert (std (ones (0,1)), NaN)
-%!assert (std (ones (1,0)), NaN)
-%!assert (std (ones (1,0), [], 1), NaN(1,0))
-%!assert (std (ones (1,0), [], 2), NaN)
-%!assert (std (ones (1,0), [], 3), NaN(1,0))
-%!assert (std (ones (0,1)), NaN)
-%!assert (std (ones (0,1), [], 1), NaN)
-%!assert (std (ones (0,1), [], 2), NaN(0,1))
-%!assert (std (ones (0,1), [], 3), NaN(0,1))
-%!assert (std (ones (1,3,0,2)), NaN(1,1,0,2))
-%!assert (std (ones (1,3,0,2), [], 1), NaN(1,3,0,2))
-%!assert (std (ones (1,3,0,2), [], 2), NaN(1,1,0,2))
-%!assert (std (ones (1,3,0,2), [], 3), NaN(1,3,1,2))
-%!assert (std (ones (1,3,0,2), [], 4), NaN(1,3,0))
-
-
 ## Test input validation
 %!error <Invalid call> std ()
-%!error <X must be a numeric> std (['A'; 'B'])
-%!error <W must be 0> std ([1 2], 2)
-%!error <DIM must be a positive integer> std (1, [], ones (2,2))
-%!error <DIM must be a positive integer> std (1, [], 1.5)
-%!error <DIM must be a positive integer> std (1, [], 0)
--- a/scripts/statistics/var.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/statistics/var.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,10 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} var (@var{x})
-## @deftypefnx {} {} var (@var{x}, @var{w})
-## @deftypefnx {} {} var (@var{x}, @var{w}, @var{dim})
-## @deftypefnx {} {} var (@var{x}, @var{w}, @qcode{"ALL"})
+## @deftypefn  {} {@var{v} =} var (@var{x})
+## @deftypefnx {} {@var{v} =} var (@var{x}, @var{w})
+## @deftypefnx {} {@var{v} =} var (@var{x}, @var{w}, @var{dim})
+## @deftypefnx {} {@var{v} =} var (@var{x}, @var{w}, @qcode{"ALL"})
+## @deftypefnx {} {[@var{v}, @var{m}] =} var (@dots{})
 ## Compute the variance of the elements of the vector @var{x}.
 ##
 ## The variance is defined as
@@ -51,9 +52,9 @@
 ## where @math{N} is the length of the @var{x} vector.
 ##
 ## @end ifnottex
-## If @var{x} is an array, compute the variance for each column and return
-## them in a row vector (or for an n-D array, the result is returned as
-## an array of dimension 1 x n x m x @dots{}).
+## If @var{x} is an array, compute the variance for each column and return them
+## in a row vector (or for an n-D array, the result is returned as an array of
+## dimension 1 x n x m x @dots{}).
 ##
 ## The optional argument @var{w} determines the weighting scheme to use.  Valid
 ## values are
@@ -64,172 +65,179 @@
 ## unbiased estimator of the variance.
 ##
 ## @item 1:
-## Normalize with @math{N}, this provides the square root of the second moment
-## around the mean
+## Normalize with @math{N}@.  This provides the square root of the second
+## moment around the mean.
 ##
 ## @item a vector:
-## Compute the weighted variance with nonnegative scalar weights.  The length of
-## @var{w} must be equal to the size of @var{x} along dimension @var{dim}.
+## Compute the weighted variance with non-negative scalar weights.  The length
+## of @var{w} must equal the size of @var{x} along dimension @var{dim}.
 ## @end table
 ##
-## If @math{N} is equal to 1 the value of @var{W} is ignored and
-## normalization by @math{N} is used.
+## If @math{N} is equal to 1 the value of @var{W} is ignored and normalization
+## by @math{N} is used.
 ##
 ## The optional variable @var{dim} forces @code{var} to operate over the
-## specified dimension.  @var{dim} can either be a scalar dimension or a vector
-## of non-repeating dimensions over which to operate.  Dimensions must be
-## positive integers, and the variance is calculated over the array slice
-## defined by @var{dim}.
+## specified dimension(s).  @var{dim} can either be a scalar dimension or a
+## vector of non-repeating dimensions.  Dimensions must be positive integers,
+## and the variance is calculated over the array slice defined by @var{dim}.
 ##
-## Specifying dimension @qcode{"ALL"} will force @code{var} to operate on all
+## Specifying dimension @qcode{"all"} will force @code{var} to operate on all
 ## elements of @var{x}, and is equivalent to @code{var (@var{x}(:))}.
 ##
-## When @var{dim} is a vector or @qcode{"ALL"}, @var{w} must be either 0 or 1.
+## When @var{dim} is a vector or @qcode{"all"}, @var{w} must be either 0 or 1.
+##
+## The optional second output variable @var{mu} contains the mean or weighted
+## mean used to calculate @var{v}, and will be the same size as @var{v}.
 ## @seealso{cov, std, skewness, kurtosis, moment}
 ## @end deftypefn
 
-function retval = var (x, w = 0, dim)
+function [v, mu] = var (x, w = 0, dim = [])
 
   if (nargin < 1)
     print_usage ();
-  elseif (nargin < 3)
-    dim = [];
   endif
 
   if (! (isnumeric (x) || islogical (x)))
     error ("var: X must be a numeric vector or matrix");
   endif
 
+  if (isempty (w))
+    w = 0;
+  endif
+
   nd = ndims (x);
   sz = size (x);
   emptydimflag = false;
 
   if (isempty (dim))
-    emptydimflag = true;  ## Compatibliity hack for empty x, ndims==2
+    emptydimflag = true;  # Compatibility hack for empty x, ndims==2
+
     ## Find the first non-singleton dimension.
-   (dim = find (sz != 1, 1)) || (dim = 1);
+    (dim = find (sz != 1, 1)) || (dim = 1);
 
   else
-    if (! (isscalar (dim) && dim == fix (dim) && dim > 0))
-      if (isvector (dim) &&
-          isnumeric (dim) &&
-          all (dim > 0) &&
-          all (rem (dim, 1) == 0))
-        if (dim != unique (dim, "stable"))
-          error (["var: vector DIM must contain non-repeating positive"...
-                  "integers"]);
-        endif
-        ## Check W
-        if (! isscalar (w))
-          error ("var: W must be either 0 or 1 when DIM is a vector");
-        endif
-
-        ## Reshape X to compute the variance over an array slice
-        if (iscolumn (dim))
-          dim = transpose (dim);
-        endif
-
-        collapsed_dims = dim;
-        dim = dim(end);
-
-        ## Permute X to cluster the dimensions to collapse
-        highest_dim = max ([nd, collapsed_dims]);
-        perm_start = perm_end = [1:highest_dim];
-        perm_start(dim:end) = [];
-        perm_start(ismember (perm_start, collapsed_dims)) = [];
-        perm_end(1:dim) = [];
-        perm_end(ismember (perm_end, collapsed_dims)) = [];
-        perm = [perm_start, collapsed_dims, perm_end];
-
-        x = permute (x, perm);
-
-        ## Collapse the given dimensions
-        newshape = ones (1, highest_dim);
-        newshape(1:nd) = sz;
-        newshape(collapsed_dims(1:(end - 1))) = 1;
-        newshape(dim) = prod (sz(collapsed_dims));
-
-        ## New X with collapsed dimensions
-        x = reshape (x, newshape);
-      elseif (ischar (dim) &&
-              strcmp (tolower (dim), "all"))
-        ## Check W
-        if (! isscalar (w))
-          error ("var: W must be either 0 or 1 when using 'ALL' as dimension");
-        endif
-
-        ## "ALL" equals to collapsing all elements to a single vector
-        x = x(:);
-        dim = 1;
-        sz = size (x);
-      else
+    if (isscalar (dim))
+      if (dim < 1 || dim != fix (dim))
+        error ("var: DIM must be a positive integer scalar, vector, or 'all'");
+      endif
+    elseif (isnumeric (dim))
+      if (! isvector (dim) && all (dim > 0) && all (rem (dim, 1) == 0))
         error ("var: DIM must be a positive integer scalar, vector, or 'all'");
       endif
+      if (dim != unique (dim, "stable"))
+        error ("var: vector DIM must contain non-repeating positive integers");
+      endif
+      if (! isscalar (w))
+        error ("var: W must be either 0 or 1 when DIM is a vector");
+      endif
+
+      ## Reshape X to compute the variance over an array slice
+      if (iscolumn (dim))
+        dim = dim.';
+      endif
+
+      collapsed_dims = dim;
+      dim = dim(end);
+
+      ## Permute X to cluster the dimensions to collapse
+      max_dim = max ([nd, collapsed_dims]);
+      perm_start = perm_end = [1:max_dim];
+      perm_start(dim:end) = [];
+      perm_start(ismember (perm_start, collapsed_dims)) = [];
+      perm_end(1:dim) = [];
+      perm_end(ismember (perm_end, collapsed_dims)) = [];
+      perm = [perm_start, collapsed_dims, perm_end];
+
+      x = permute (x, perm);
+
+      ## Collapse the given dimensions
+      newshape = ones (1, max_dim);
+      newshape(1:nd) = sz;
+      newshape(collapsed_dims(1:(end-1))) = 1;
+      newshape(dim) = prod (sz(collapsed_dims));
+
+      ## New X with collapsed dimensions
+      x = reshape (x, newshape);
+
+    elseif (ischar (dim) && strcmpi (dim, "all"))
+      if (! isscalar (w))
+        error ("var: W must be either 0 or 1 when using 'all' as dimension");
+      endif
+
+      ## "all" equates to collapsing all elements to a single vector
+      x = x(:);
+      dim = 1;
+      sz = size (x);
+    else
+      error ("var: DIM must be a positive integer scalar, vector, or 'all'");
     endif
   endif
 
   n = size (x, dim);
-  if (isempty (w))
-    w = 0;
-  elseif (! isvector (w) ||
-          ! isnumeric (w) ||
-          (isvector (w) && any (w < 0)) ||
+  if (! isvector (w) || ! isnumeric (w)
+      || (isvector (w) && any (w < 0)) ||
           (isscalar (w) && ((w != 0 && w != 1) && (n != 1))))
     error ("var: W must be 0, 1, or a vector of positive integers");
   endif
 
   if (isempty (x))
-    if (emptydimflag && isequal (sz, [0 0]))
-      retval = NaN;
+    ## Empty matrix special case
+    if (emptydimflag && nd == 2 && all (sz == [0, 0]))
+      v = NaN;
+      mu = NaN;
     else
-      output_size = sz;
-      output_size(dim) = 1;
-      retval = NaN(output_size);
+      sz(dim) = 1;
+      v = NaN (sz);
+      mu = NaN (sz);
     endif
+  elseif (n == 1)
+    ## Scalar special case
+    if (! isscalar (w))
+      error (["var: the length of W must be equal to the size of X " ...
+              "in the dimension along which variance is calculated"]);
+    endif
+    if (isa (x, "single"))
+      v = zeros (sz, "single");
+      mu = x;
+    else
+      v = zeros (sz);
+      mu = x;
+    endif
+    v(isnan (x) | isinf (x)) = NaN;
   else
-    if (n == 1)
-      if (! isscalar (w))
-        error (["var: the length of W must be equal to the size of X "...
-                  "in the dimension along which variance is calculated"])
-      else
-        if (isa (x, "single"))
-          retval = zeros (sz, "single");
-        else
-          retval = zeros (sz);
-        endif
-          retval(isnan (x) | isinf (x)) = NaN;
+    ## Regular algorithm
+    if (isscalar (w))
+      v = sumsq (center (x, dim), dim) / (n - 1 + w);
+      if (nargout == 2)
+        mu = mean (x, dim);
       endif
     else
-      if (isscalar (w))
-        retval = sumsq (center (x, dim), dim) / (n - 1 + w);
-      else
-        ## Weighted variance
-        if (length (w) != n)
-          error (["var: the length of W must be equal to the size of X "...
-                  "in the dimension along which variance is calculated"]);
-        else
-          if ((dim == 1 && rows (w) == 1) ||
-              (dim == 2 && columns (w) == 1))
-            w = transpose (w);
-          elseif (dim > 2)
-            newdims = [(ones (1, (dim - 1))), (length (w))];
-            w = reshape (w, newdims);
-          endif
-          den = sum (w);
-          ## FIXME: Use bsxfun, rather than broadcasting, until broadcasting
-          ##        supports diagonal and sparse matrices (Bugs #41441, #35787).
-          mu = sum (bsxfun (@times, w , x), dim) ./ sum (w);
-          retval = sum (bsxfun (@times, w, ...
-                                bsxfun (@minus, x, mu) .^ 2), dim) / den;
-          ## mu = sum (w .* x, dim) ./ sum (w); # automatic broadcasting
-          ## retval = sum (w .* ((x - mu) .^ 2), dim) / den;
-        endif
+      ## Weighted variance
+      if (numel (w) != n)
+        error (["var: the length of W must be equal to the size of X " ...
+                "in the dimension along which variance is calculated"]);
       endif
+      if ((dim == 1 && isrow (w)) || (dim == 2 && iscolumn (w)))
+        w = w.';
+      elseif (dim > 2)
+        newdims = [ones(1, dim - 1), numel(w)];
+        w = reshape (w, newdims);
+      endif
+      den = sum (w);
+
+      ## FIXME: Use bsxfun, rather than broadcasting, until broadcasting
+      ##        supports diagonal and sparse matrices (Bugs #41441, #35787).
+      mu = sum (bsxfun (@times, w , x), dim) ./ den;
+      v = sum (bsxfun (@times, w, ...
+                            bsxfun (@minus, x, mu) .^ 2), dim) ./ den;
+      ## mu = sum (w .* x, dim) ./ den; # automatic broadcasting
+      ## v = sum (w .* ((x - mu) .^ 2), dim) ./ den;
     endif
   endif
 
 endfunction
 
+
 %!assert (var (13), 0)
 %!assert (var (single (13)), single (0))
 %!assert (var ([1,2,3]), 1)
@@ -244,8 +252,9 @@
 %!assert (var (ones (2,2,2), [1:2], 3), [(zeros (2,2))])
 %!assert (var ([1 2; 3 4], 0, 'all'), var ([1:4]))
 %!assert (var (reshape ([1:8], 2, 2, 2), 0, [1 3]), [17/3 17/3], eps)
+%!assert (var ([1 2 3;1 2 3], [], [1 2]), 0.8, eps)
 
-##Test empty inputs
+## Test empty inputs
 %!assert (var ([]), NaN)
 %!assert (var ([],[],1), NaN(1,0))
 %!assert (var ([],[],2), NaN(0,1))
@@ -265,41 +274,181 @@
 %!assert (var (ones (1,3,0,2), [], 3), NaN(1,3,1,2))
 %!assert (var (ones (1,3,0,2), [], 4), NaN(1,3,0))
 
+## Test second output
+%!test <*62395>
+%! [~, m] = var (13);
+%! assert (m, 13);
+%! [~, m] = var (single(13));
+%! assert (m, single(13));
+%! [~, m] = var ([1, 2, 3; 3 2 1], []);
+%! assert (m, [2 2 2]);
+%! [~, m] = var ([1, 2, 3; 3 2 1], [], 1);
+%! assert (m, [2 2 2]);
+%! [~, m] = var ([1, 2, 3; 3 2 1], [], 2);
+%! assert (m, [2 2]');
+%! [~, m] = var ([1, 2, 3; 3 2 1], [], 3);
+%! assert (m, [1 2 3; 3 2 1]);
+
+## 2nd output, weighted inputs, vector dims
+%!test <*62395>
+%! [~, m] = var(5,99);
+%! assert (m, 5);
+%! [~, m] = var ([1:7], [1:7]);
+%! assert (m, 5);
+%! [~, m] = var ([eye(3)], [1:3]);
+%! assert (m, [1/6, 1/3, 0.5], eps);
+%! [~, m] = var (ones (2,2,2), [1:2], 3);
+%! assert (m, ones (2,2));
+%! [~, m] = var ([1 2; 3 4], 0, 'all');
+%! assert (m, 2.5, eps);
+%! [~, m] = var (reshape ([1:8], 2, 2, 2), 0, [1 3]);
+%! assert (m, [3.5, 5.5], eps);
+
+## 2nd output, empty inputs
+%!test <*62395>
+%! [~, m] = var ([]);
+%! assert (m, NaN);
+%! [~, m] = var ([],[],1);
+%! assert (m, NaN(1,0));
+%! [~, m] = var ([],[],2);
+%! assert (m, NaN(0,1));
+%! [~, m] = var ([],[],3);
+%! assert (m, []);
+%! [~, m] = var (ones (1,3,0,2));
+%! assert (m, NaN(1,1,0,2));
+
 ## Test Inf and NaN inputs
-%!assert <*63203> (var (Inf), NaN)
-%!assert <*63203> (var (NaN), NaN)
-%!assert <*63203> (var ([1, Inf, 3]), NaN)
-%!assert <*63203> (var ([1, Inf, 3]'), NaN)
-%!assert <*63203> (var ([1, NaN, 3]), NaN)
-%!assert <*63203> (var ([1, NaN, 3]'), NaN)
-%!assert <*63203> (var ([1, Inf, 3], [], 1), [0, NaN, 0])
-%!assert <*63203> (var ([1, Inf, 3], [], 2), NaN)
-%!assert <*63203> (var ([1, Inf, 3], [], 3), [0, NaN, 0])
-%!assert <*63203> (var ([1, NaN, 3], [], 1), [0, NaN, 0])
-%!assert <*63203> (var ([1, NaN, 3], [], 2), NaN)
-%!assert <*63203> (var ([1, NaN, 3], [], 3), [0, NaN, 0])
-%!assert <*63203> (var ([1, 2, 3; 3, Inf, 5]), [2, NaN, 2])
-%!assert <*63203> (var ([1, Inf, 3; 3, Inf, 5]), [2, NaN, 2])
-%!assert <*63203> (var ([1, 2, 3; 3, NaN, 5]), [2, NaN, 2])
-%!assert <*63203> (var ([1, NaN, 3; 3, NaN, 5]), [2, NaN, 2])
-%!assert <*63203> (var ([Inf, 2, NaN]), NaN)
-%!assert <*63203> (var ([Inf, 2, NaN]'), NaN)
-%!assert <*63203> (var ([NaN, 2, Inf]), NaN)
-%!assert <*63203> (var ([NaN, 2, Inf]'), NaN)
-%!assert <*63203> (var ([Inf, 2, NaN], [], 1), [NaN, 0, NaN])
-%!assert <*63203> (var ([Inf, 2, NaN], [], 2), NaN)
-%!assert <*63203> (var ([NaN, 2, Inf], [], 1), [NaN, 0, NaN])
-%!assert <*63203> (var ([NaN, 2, Inf], [], 2), NaN)
-%!assert <*63203> (var ([1, 3, NaN; 3, 5, Inf]), [2, 2, NaN])
-%!assert <*63203> (var ([1, 3, Inf; 3, 5, NaN]), [2, 2, NaN]);
+%!test <*63203>
+%! [v, m] = var (Inf);
+%! assert (v, NaN);
+%! assert (m, Inf);
+%!test <*63203>
+%! [v, m] = var (NaN);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3]);
+%! assert (v, NaN);
+%! assert (m, Inf);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3]');
+%! assert (v, NaN);
+%! assert (m, Inf);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3]);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3]');
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3], [], 1);
+%! assert (v, [0, NaN, 0]);
+%! assert (m, [1, Inf, 3]);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3], [], 2);
+%! assert (v, NaN);
+%! assert (m, Inf);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3], [], 3);
+%! assert (v, [0, NaN, 0]);
+%! assert (m, [1, Inf, 3]);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3], [], 1);
+%! assert (v, [0, NaN, 0]);
+%! assert (m, [1, NaN, 3]);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3], [], 2);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3], [], 3);
+%! assert (v, [0, NaN, 0]);
+%! assert (m, [1, NaN, 3]);
+%!test <*63203>
+%! [v, m] = var ([1, 2, 3; 3, Inf, 5]);
+%! assert (v, [2, NaN, 2]);
+%! assert (m, [2, Inf, 4]);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3; 3, Inf, 5]);
+%! assert (v, [2, NaN, 2]);
+%! assert (m, [2, Inf, 4]);
+%!test <*63203>
+%! [v, m] = var ([1, 2, 3; 3, NaN, 5]);
+%! assert (v, [2, NaN, 2]);
+%! assert (m, [2, NaN, 4]);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3; 3, NaN, 5]);
+%! assert (v, [2, NaN, 2]);
+%! assert (m, [2, NaN, 4]);
+%!test <*63203>
+%! [v, m] = var ([Inf, 2, NaN]);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([Inf, 2, NaN]');
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([NaN, 2, Inf]);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([NaN, 2, Inf]');
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([Inf, 2, NaN], [], 1);
+%! assert (v, [NaN, 0, NaN]);
+%! assert (m, [Inf, 2, NaN]);
+%!test <*63203>
+%! [v, m] = var ([Inf, 2, NaN], [], 2);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([NaN, 2, Inf], [], 1);
+%! assert (v, [NaN, 0, NaN]);
+%! assert (m, [NaN, 2, Inf]);
+%!test <*63203>
+%! [v, m] = var ([NaN, 2, Inf], [], 2);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, 3, NaN; 3, 5, Inf]);
+%! assert (v, [2, 2, NaN]);
+%! assert (m, [2, 4, NaN]);
+%!test <*63203>
+%! [v, m] = var ([1, 3, Inf; 3, 5, NaN]);
+%! assert (v, [2, 2, NaN]);
+%! assert (m, [2, 4, NaN]);
 
 ## Test sparse/diagonal inputs
-%!assert <*63291> (var (2 * eye (2)), [2, 2])
-%!assert <*63291> (var (4 * eye (2), [1, 3]), [3, 3])
-%!assert <*63291> (full (var (sparse (2 * eye (2)))), [2, 2])
-%!assert <*63291> (full (var (sparse (4 * eye (2)), [1, 3])), [3, 3])
-%!assert <63291> (issparse (var (sparse (2 * eye (2)))))
-%!assert <63291> (issparse (var (sparse (4 * eye (2)), [1, 3])))
+%!test <*63291>
+%! [v, m] = var (2 * eye (2));
+%! assert (v, [2, 2]);
+%! assert (m, [1, 1]);
+%!test <*63291>
+%! [v, m] = var (4 * eye (2), [1, 3]);
+%! assert (v, [3, 3]);
+%! assert (m, [1, 3]);
+%!test <*63291>
+%! [v, m] = var (sparse (2 * eye (2)));
+%! assert (full (v), [2, 2]);
+%! assert (full (m), [1, 1]);
+%!test <*63291>
+%! [v, m] = var (sparse (4 * eye (2)), [1, 3]);
+%! assert (full (v), [3, 3]);
+%! assert (full (m), [1, 3]);
+
+%!test <63291>
+%! [v, m] = var (sparse (eye (2)));
+%! assert (issparse (v));
+%! assert (issparse (m));
+%!test <63291>
+%! [v, m] = var (sparse (eye (2)), [1, 3]);
+%! assert (issparse (v));
+%! assert (issparse (m));
 
 ## Test input validation
 %!error <Invalid call> var ()
--- a/scripts/strings/base2dec.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/base2dec.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} base2dec (@var{s}, @var{base})
-## Convert @var{s} from a string of digits in base @var{base} to a decimal
+## @deftypefn {} {@var{d} =} base2dec (@var{str}, @var{base})
+## Convert @var{str} from a string of digits in base @var{base} to a decimal
 ## integer (base 10).
 ##
 ## @example
@@ -35,15 +35,16 @@
 ## @end group
 ## @end example
 ##
-## If @var{s} is a string matrix, return a column vector with one value per
-## row of @var{s}.  If a row contains invalid symbols then the corresponding
+## If @var{str} is a string matrix, return a column vector with one value per
+## row of @var{str}.  If a row contains invalid symbols then the corresponding
 ## value will be NaN@.
 ##
-## If @var{s} is a cell array of strings, return a column vector with one
-## value per cell element in @var{s}.
+## If @var{str} is a cell array of strings, return a column vector with one
+## value per cell element in @var{str}.
 ##
 ## If @var{base} is a string, the characters of @var{base} are used as the
-## symbols for the digits of @var{s}.  Space (' ') may not be used as a symbol.
+## symbols for the digits of @var{str}.  Space (' ') may not be used as a
+## symbol.
 ##
 ## @example
 ## @group
@@ -54,16 +55,16 @@
 ## @seealso{dec2base, bin2dec, hex2dec}
 ## @end deftypefn
 
-function out = base2dec (s, base)
+function d = base2dec (str, base)
 
   if (nargin != 2)
     print_usage ();
   endif
 
-  if (iscellstr (s))
-    s = char (s);
-  elseif (! ischar (s))
-    error ("base2dec: S must be a string or cellstring");
+  if (iscellstr (str))
+    str = char (str);
+  elseif (! ischar (str))
+    error ("base2dec: STR must be a string or cellstring");
   endif
 
   symbols = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
@@ -81,16 +82,16 @@
   elseif (! (base >= 2 && base <= length (symbols)))
     error ("base2dec: BASE must be between 2 and 36, or a string of symbols");
   else
-    s = toupper (s);
+    str = toupper (str);
   endif
 
   ## Right justify the values and squeeze out any spaces.
   ## This looks complicated, but indexing solution is very fast
   ## compared to alternatives which use cellstr or cellfun or looping.
-  [nr, nc] = size (s);
+  [nr, nc] = size (str);
   if (nc > 1)   # Bug #35621
-    s = s.';
-    nonbl = s != " ";
+    str = str.';
+    nonbl = str != " ";
     num_nonbl = sum (nonbl);
     nc = max (num_nonbl);
     num_blank = nc - num_nonbl;
@@ -102,8 +103,8 @@
 
     ## Create a blank matrix and position the nonblank characters.
     s2 = repmat (" ", nc, nr);
-    s2(idx) = s(nonbl);
-    s = s2.';
+    s2(idx) = str(nonbl);
+    str = s2.';
   endif
 
   ## Lookup value of symbols in symbol table, with invalid symbols
@@ -111,11 +112,11 @@
   table = NaN (1, 256);
   table(double (symbols(1:base))) = 0 : base-1;
   table(double (" ")) = 0;
-  s = reshape (table(double (s)), size (s));
+  str = reshape (table(double (str)), size (str));
 
   ## Multiply the resulting digits by the appropriate power
   ## and sum the rows.
-  out = s * (base .^ (columns (s)-1 : -1 : 0)');
+  d = str * (base .^ (columns (str)-1 : -1 : 0)');
 
 endfunction
 
--- a/scripts/strings/bin2dec.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/bin2dec.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} bin2dec (@var{s})
+## @deftypefn {} {} bin2dec (@var{str})
 ## Return the decimal number corresponding to the binary number represented
-## by the string @var{s}.
+## by the string @var{str}.
 ##
 ## For example:
 ##
@@ -47,21 +47,21 @@
 ## @end group
 ## @end example
 ##
-## If @var{s} is a string matrix, return a column vector with one converted
-## number per row of @var{s}; Invalid rows evaluate to NaN@.
+## If @var{str} is a string matrix, return a column vector with one converted
+## number per row of @var{str}; Invalid rows evaluate to NaN@.
 ##
-## If @var{s} is a cell array of strings, return a column vector with one
-## converted number per cell element in @var{s}.
+## If @var{str} is a cell array of strings, return a column vector with one
+## converted number per cell element in @var{str}.
 ## @seealso{dec2bin, base2dec, hex2dec}
 ## @end deftypefn
 
-function d = bin2dec (s)
+function d = bin2dec (str)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
-  d = base2dec (s, 2);
+  d = base2dec (str, 2);
 
 endfunction
 
@@ -76,4 +76,4 @@
 
 ## Test input validation
 %!error <Invalid call> bin2dec ()
-%!error <S must be a string> bin2dec (1)
+%!error <STR must be a string> bin2dec (1)
--- a/scripts/strings/blanks.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/blanks.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} blanks (@var{n})
+## @deftypefn {} {@var{str} =} blanks (@var{n})
 ## Return a string of @var{n} blanks.
 ##
 ## For example:
@@ -42,7 +42,7 @@
 ## @seealso{repmat}
 ## @end deftypefn
 
-function s = blanks (n)
+function str = blanks (n)
 
   if (nargin < 1)
     print_usage ();
@@ -52,7 +52,7 @@
 
   ## If 1:n is empty, the following expression will create an empty
   ## character string.  Otherwise, it will create a row vector.
-  s(1:n) = " ";
+  str(1:n) = " ";
 
 endfunction
 
--- a/scripts/strings/cstrcat.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/cstrcat.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} cstrcat (@var{s1}, @var{s2}, @dots{})
+## @deftypefn {} {@var{str} =} cstrcat (@var{s1}, @var{s2}, @dots{})
 ## Return a string containing all the arguments concatenated horizontally
 ## with trailing white space preserved.
 ##
@@ -48,14 +48,14 @@
 ## @seealso{strcat, char, strvcat}
 ## @end deftypefn
 
-function st = cstrcat (varargin)
+function str = cstrcat (varargin)
 
   if (nargin == 0)
-    ## Special because if varargin is empty, iscellstr still returns
+    ## Special case because if varargin is empty, iscellstr still returns
     ## true but then "[varargin{:}]" would be of class double.
-    st = "";
+    str = "";
   elseif (iscellstr (varargin))
-    st = [varargin{:}];
+    str = [varargin{:}];
   else
     error ("cstrcat: arguments must be character strings");
   endif
@@ -64,15 +64,16 @@
 
 
 ## Test the dimensionality
-## 1d
+## 1-D
 %!assert (cstrcat ("ab ", "ab "), "ab ab ")
-## 2d
+## 2-D
 %!assert (cstrcat (["ab ";"cde"], ["ab ";"cde"]), ["ab ab ";"cdecde"])
 
 %!assert (cstrcat ("foo", "bar"), "foobar")
 %!assert (cstrcat (["a "; "bb"], ["foo"; "bar"]), ["a foo"; "bbbar"])
 
+## Special null case
 %!assert (cstrcat (), "")
 
 ## Test input validation
-%!error cstrcat (1, 2)
+%!error <arguments must be character strings> cstrcat (1, 2)
--- a/scripts/strings/deblank.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/deblank.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,11 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} deblank (@var{s})
+## @deftypefn {} {@var{s} =} deblank (@var{s})
 ## Remove trailing whitespace and nulls from @var{s}.
 ##
 ## If @var{s} is a matrix, @var{deblank} trims each row to the length of
-## longest string.  If @var{s} is a cell array of strings, operate
+## the longest string.  If @var{s} is a cell array of strings, operate
 ## recursively on each string element.
 ##
 ## Examples:
@@ -47,7 +47,7 @@
 
 function s = deblank (s)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
--- a/scripts/strings/dec2base.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/dec2base.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} dec2base (@var{d}, @var{base})
-## @deftypefnx {} {} dec2base (@var{d}, @var{base}, @var{len})
+## @deftypefn  {} {@var{str} =} dec2base (@var{d}, @var{base})
+## @deftypefnx {} {@var{str} =} dec2base (@var{d}, @var{base}, @var{len})
 ## Return a string of symbols in base @var{base} corresponding to the
 ## non-negative integer @var{d}.
 ##
@@ -56,7 +56,7 @@
 ## @seealso{base2dec, dec2bin, dec2hex}
 ## @end deftypefn
 
-function retval = dec2base (d, base, len)
+function str = dec2base (d, base, len)
 
   if (nargin < 2)
     print_usage ();
@@ -109,7 +109,7 @@
   endfor
 
   ## convert digits to symbols
-  retval = reshape (symbols(digits+1), size (digits));
+  str = reshape (symbols(digits+1), size (digits));
 
   ## Check if the first element is the zero symbol.  It seems possible
   ## that LEN is provided, and is less than the computed MAX_LEN and
@@ -117,8 +117,8 @@
   ## have a leading zero to remove.  But if LEN >= MAX_LEN, we should
   ## not remove any leading zeros.
   if ((nargin == 2 || (nargin == 3 && max_len > len))
-      && columns (retval) != 1 && ! any (retval(:,1) != symbols(1)))
-    retval = retval(:,2:end);
+      && columns (str) != 1 && ! any (str(:,1) != symbols(1)))
+    str = str(:,2:end);
   endif
 
 endfunction
--- a/scripts/strings/hex2dec.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/hex2dec.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} hex2dec (@var{s})
+## @deftypefn {} {@var{d} =} hex2dec (@var{str})
 ## Return the integer corresponding to the hexadecimal number represented by
-## the string @var{s}.
+## the string @var{str}.
 ##
 ## For example:
 ##
@@ -39,22 +39,22 @@
 ## @end group
 ## @end example
 ##
-## If @var{s} is a string matrix, return a column vector with one converted
-## number per row of @var{s}; Invalid rows evaluate to NaN@.
+## If @var{str} is a string matrix, return a column vector with one converted
+## number per row of @var{str}; Invalid rows evaluate to NaN@.
 ##
-## If @var{s} is a cell array of strings, return a column vector with one
-## converted number per cell element in @var{s}.
+## If @var{str} is a cell array of strings, return a column vector with one
+## converted number per cell element in @var{str}.
 ##
 ## @seealso{dec2hex, base2dec, bin2dec}
 ## @end deftypefn
 
-function d = hex2dec (s)
+function d = hex2dec (str)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
-  d = base2dec (s, 16);
+  d = base2dec (str, 16);
 
 endfunction
 
@@ -66,4 +66,4 @@
 
 ## Test input validation
 %!error <Invalid call> hex2dec ()
-%!error <S must be a string> hex2dec (1)
+%!error <STR must be a string> hex2dec (1)
--- a/scripts/strings/index.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/index.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} index (@var{s}, @var{t})
-## @deftypefnx {} {} index (@var{s}, @var{t}, @var{direction})
+## @deftypefn  {} {@var{n} =} index (@var{s}, @var{t})
+## @deftypefnx {} {@var{n} =} index (@var{s}, @var{t}, @var{direction})
 ## Return the position of the first occurrence of the string @var{t} in the
 ## string @var{s}, or 0 if no occurrence is found.
 ##
--- a/scripts/strings/isletter.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/isletter.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isletter (@var{s})
+## @deftypefn {} {@var{tf} =} isletter (@var{s})
 ## Return a logical array which is true where the elements of @var{s}
 ## are letters and false where they are not.
 ##
@@ -32,13 +32,13 @@
 ## @seealso{isalpha, isdigit, ispunct, isspace, iscntrl, isalnum}
 ## @end deftypefn
 
-function retval = isletter (s)
+function tf = isletter (s)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = isalpha (s);
+  tf = isalpha (s);
 
 endfunction
 
--- a/scripts/strings/isstring.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/isstring.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isstring (@var{s})
+## @deftypefn {} {@var{tf} =} isstring (@var{s})
 ## Return true if @var{s} is a string array.
 ##
 ## A string array is a data type that stores strings (row vectors of
@@ -40,13 +40,13 @@
 ## @seealso{ischar, iscellstr, isfloat, isinteger, islogical, isnumeric, isa}
 ## @end deftypefn
 
-function retval = isstring (s)
+function tf = isstring (s)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = false;
+  tf = false;
 
 endfunction
 
@@ -55,7 +55,7 @@
 %!assert (isstring (1), false)
 %!assert (isstring ('a'), false)
 ## FIXME: when string arrays are implemented, this should return true.
-#%!assert (isstring ("b"), true)
+%!#assert (isstring ("b"), true)
 %!assert (isstring ({'a'}), false)
 %!assert (isstring ({"b"}), false)
 
--- a/scripts/strings/isstrprop.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/isstrprop.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} isstrprop (@var{str}, @var{prop})
+## @deftypefn {} {@var{tf} =} isstrprop (@var{str}, @var{prop})
 ## Test character string properties.
 ##
 ## For example:
@@ -91,7 +91,7 @@
 ## isspace, ispunct, iscntrl, isgraph, isprint, isascii}
 ## @end deftypefn
 
-function retval = isstrprop (str, prop)
+function tf = isstrprop (str, prop)
 
   if (nargin != 2)
     print_usage ();
@@ -99,29 +99,29 @@
 
   switch (prop)
     case "alpha"
-      retval = isalpha (str);
+      tf = isalpha (str);
     case {"alnum", "alphanum"}
-      retval = isalnum (str);
+      tf = isalnum (str);
     case "ascii"
-      retval = isascii (str);
+      tf = isascii (str);
     case "cntrl"
-      retval = iscntrl (str);
+      tf = iscntrl (str);
     case "digit"
-      retval = isdigit (str);
+      tf = isdigit (str);
     case {"graph", "graphic"}
-      retval = isgraph (str);
+      tf = isgraph (str);
     case "lower"
-      retval = islower (str);
+      tf = islower (str);
     case "print"
-      retval = isprint (str);
+      tf = isprint (str);
     case "punct"
-      retval = ispunct (str);
+      tf = ispunct (str);
     case {"space", "wspace"}
-      retval = isspace (str);
+      tf = isspace (str);
     case "upper"
-      retval = isupper (str);
+      tf = isupper (str);
     case "xdigit"
-      retval = isxdigit (str);
+      tf = isxdigit (str);
     otherwise
       error ("isstrprop: invalid string property");
   endswitch
--- a/scripts/strings/regexptranslate.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/regexptranslate.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} regexptranslate (@var{op}, @var{s})
+## @deftypefn {} {@var{str} =} regexptranslate (@var{op}, @var{s})
 ## Translate a string for use in a regular expression.
 ##
 ## This may include either wildcard replacement or special character escaping.
@@ -59,7 +59,7 @@
 ## @seealso{regexp, regexpi, regexprep}
 ## @end deftypefn
 
-function y = regexptranslate (op, s)
+function str = regexptranslate (op, s)
 
   if (nargin != 2)
     print_usage ();
@@ -71,11 +71,11 @@
 
   op = tolower (op);
   if (strcmp ("wildcard", op))
-    y = strrep (strrep (strrep (s, '.', '\.'),
-                                   '*', '.*'),
-                                   '?', '.');
+    str = strrep (strrep (strrep (s, '.', '\.'),
+                                     '*', '.*'),
+                                     '?', '.');
   elseif (strcmp ("escape", op))
-    y = regexprep (s, '([][(){}.*+?^$|\\])', '\\$1');
+    str = regexprep (s, '([][(){}.*+?^$|\\])', '\\$1');
   else
     error ("regexptranslate: invalid operation OP");
   endif
--- a/scripts/strings/rindex.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/rindex.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} rindex (@var{s}, @var{t})
+## @deftypefn {} {@var{n} =} rindex (@var{s}, @var{t})
 ## Return the position of the last occurrence of the character string
 ## @var{t} in the character string @var{s}, or 0 if no occurrence is
 ## found.
--- a/scripts/strings/strcat.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/strcat.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} strcat (@var{s1}, @var{s2}, @dots{})
-## Return a string containing all the arguments concatenated
-## horizontally.
+## @deftypefn {} {@var{str} =} strcat (@var{s1}, @var{s2}, @dots{})
+## Return a string containing all the arguments concatenated horizontally.
 ##
 ## If the arguments are cell strings, @code{strcat} returns a cell string
 ## with the individual cells concatenated.  For numerical input, each element
@@ -83,15 +82,15 @@
 ## @seealso{cstrcat, char, strvcat}
 ## @end deftypefn
 
-function st = strcat (varargin)
+function str = strcat (varargin)
 
   if (nargin == 0)
-    st = "";
+    str = "";
   elseif (nargin == 1)
     if (iscellstr (varargin{1}))
-      st = varargin{1};
+      str = varargin{1};
     elseif (isreal (varargin{1}) || ischar (varargin{1}))
-      st = char (cellstr (varargin{1}));
+      str = char (cellstr (varargin{1}));
     else
       error ("strcat: inputs must be strings or cells of strings");
     endif
@@ -118,11 +117,11 @@
     endif
 
     ## Cellfun handles everything for us.
-    st = cellfun ("horzcat", varargin{:}, uo, false);
+    str = cellfun ("horzcat", varargin{:}, uo, false);
 
     if (allchar)
       ## If all inputs were strings, return strings.
-      st = char (st);
+      str = char (str);
     endif
   endif
 
--- a/scripts/strings/strjust.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/strjust.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} strjust (@var{s})
-## @deftypefnx {} {} strjust (@var{s}, @var{pos})
+## @deftypefn  {} {@var{str} =} strjust (@var{s})
+## @deftypefnx {} {@var{str} =} strjust (@var{s}, @var{pos})
 ## Return the text, @var{s}, justified according to @var{pos}, which may
 ## be @qcode{"left"}, @qcode{"center"}, or @qcode{"right"}.
 ##
@@ -49,7 +49,7 @@
 ## @seealso{deblank, strrep, strtrim, untabify}
 ## @end deftypefn
 
-function y = strjust (s, pos = "right")
+function str = strjust (s, pos = "right")
 
   if (nargin < 1)
     print_usage ();
@@ -58,7 +58,7 @@
   endif
 
   if (isempty (s))
-    y = s;
+    str = s;
     return;
   endif
 
@@ -94,11 +94,11 @@
   endif
 
   ## Adjust the column indices.
-  jdx += shift (idx);
+  jdx += shift(idx);
 
   ## Create a blank matrix and position the nonblank characters.
-  y = repmat (" ", nr, nc);
-  y(sub2ind ([nr, nc], idx, jdx)) = s(nonbl);
+  str = repmat (" ", nr, nc);
+  str(sub2ind ([nr, nc], idx, jdx)) = s(nonbl);
 
 endfunction
 
--- a/scripts/strings/strtrim.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/strtrim.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} strtrim (@var{s})
+## @deftypefn {} {@var{s} =} strtrim (@var{s})
 ## Remove leading and trailing whitespace from @var{s}.
 ##
 ## If @var{s} is a matrix, @var{strtrim} trims each row to the length of
--- a/scripts/strings/strtrunc.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/strtrunc.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} strtrunc (@var{s}, @var{n})
+## @deftypefn {} {@var{s} =} strtrunc (@var{s}, @var{n})
 ## Truncate the character string @var{s} to length @var{n}.
 ##
 ## If @var{s} is a character matrix, then the number of columns is adjusted.
--- a/scripts/strings/substr.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/substr.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} substr (@var{s}, @var{offset})
+## @deftypefn  {} {@var{str} =} substr (@var{s}, @var{offset})
 ## @deftypefnx {} {} substr (@var{s}, @var{offset}, @var{len})
 ## Return the substring of @var{s} which starts at character number
 ## @var{offset} and is @var{len} characters long.
@@ -52,7 +52,7 @@
 ## This function is patterned after the equivalent function in Perl.
 ## @end deftypefn
 
-function t = substr (s, offset, len)
+function str = substr (s, offset, len)
 
   if (nargin < 2)
     print_usage ();
@@ -91,7 +91,7 @@
     error ("substr: No overlap with chosen values of OFFSET and LEN");
   endif
 
-  t = s(:, offset:eos);
+  str = s(:, offset:eos);
 
 endfunction
 
--- a/scripts/strings/untabify.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/strings/untabify.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,9 +24,9 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} untabify (@var{t})
-## @deftypefnx {} {} untabify (@var{t}, @var{tw})
-## @deftypefnx {} {} untabify (@var{t}, @var{tw}, @var{deblank})
+## @deftypefn  {} {@var{str} =} untabify (@var{t})
+## @deftypefnx {} {@var{str} =} untabify (@var{t}, @var{tw})
+## @deftypefnx {} {@var{str} =} untabify (@var{t}, @var{tw}, @var{deblank})
 ## Replace TAB characters in @var{t} with spaces.
 ##
 ## The input, @var{t}, may be either a 2-D character array, or a cell array of
@@ -55,7 +55,7 @@
 ## @seealso{strjust, strsplit, deblank}
 ## @end deftypefn
 
-function s = untabify (t, tw = 8, deblank_arg = false)
+function str = untabify (t, tw = 8, deblank_arg = false)
 
   if (nargin < 1)
     print_usage ();
@@ -64,13 +64,13 @@
   endif
 
   if (ischar (t))
-    s = replace_tabs (t, tw);
+    str = replace_tabs (t, tw);
   else
-    s = cellfun (@replace_tabs, t, {tw}, "uniformoutput", false);
+    str = cellfun (@replace_tabs, t, {tw}, "uniformoutput", false);
   endif
 
   if (deblank_arg)
-    s = deblank (s);
+    str = deblank (str);
   endif
 
 endfunction
--- a/scripts/testfun/__have_feature__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/__have_feature__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,11 +24,11 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __have_feature__ (feature)
+## @deftypefn {} {@var{tf} =} __have_feature__ (feature)
 ## Undocumented internal function.
 ## @end deftypefn
 
-function retval = __have_feature__ (feature)
+function tf = __have_feature__ (feature)
 
   if (strncmp (feature, "ENABLE_", 7))
     features = __octave_config_info__ ();
@@ -37,12 +37,12 @@
   endif
 
   if (iscellstr (feature))
-    retval = (all (isfield (features, feature))
+    tf = (all (isfield (features, feature))
               && all (cellfun (@(x) features.(x), feature)));
   elseif (ischar (feature))
-    retval = isfield (features, feature) && features.(feature);
+    tf = isfield (features, feature) && features.(feature);
   else
-    retval = false;
+    tf = false;
   endif
 
 endfunction
--- a/scripts/testfun/__prog_output_assert__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/__prog_output_assert__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,19 +24,19 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} __prog_output_assert__ (@var{str})
+## @deftypefn {} {@var{retval} =} __prog_output_assert__ (@var{str})
 ## Undocumented internal function.
 ## @end deftypefn
 
-function ret = __prog_output_assert__ (str)
+function retval = __prog_output_assert__ (str)
   global __assert_printf__ = "";
 
   if (isempty (__assert_printf__))
-    ret = isempty (str);
+    retval = isempty (str);
   elseif (__assert_printf__(end) == "\n")
-    ret = strcmp (__assert_printf__(1:(end-1)), str);
+    retval = strcmp (__assert_printf__(1:(end-1)), str);
   else
-    ret = strcmp (__assert_printf__, str);
+    retval = strcmp (__assert_printf__, str);
   endif
 
   __assert_printf__ = "";
--- a/scripts/testfun/__run_test_suite__.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/__run_test_suite__.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} __run_test_suite__ (@var{fcndirs}, @var{fixedtestdirs})
-## @deftypefnx {} {} __run_test_suite__ (@var{fcndirs}, @var{fixedtestdirs}, @var{topsrcdir}, @var{topbuilddir})
+## @deftypefn  {} {[@var{pass}, @var{fail}, @var{xfail}, @var{xbug}, @var{skip}, @var{rtskip}, @var{regress}]} __run_test_suite__ (@var{fcndirs}, @var{fixedtestdirs})
+## @deftypefnx {} {[@var{pass}, @var{fail}, @var{xfail}, @var{xbug}, @var{skip}, @var{rtskip}, @var{regress}]} __run_test_suite__ (@var{fcndirs}, @var{fixedtestdirs}, @var{topsrcdir}, @var{topbuilddir})
 ## Undocumented internal function.
 ## @end deftypefn
 
--- a/scripts/testfun/assert.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/assert.m	Tue Nov 15 13:15:28 2022 -0800
@@ -347,8 +347,14 @@
               A_null_real = real (A);
               B_null_real = real (B);
             endif
-            exclude = errseen ...
-                      | ! isfinite (A_null_real) & ! isfinite (B_null_real);
+            if (issparse (errseen))
+              exclude = errseen ...
+                        | isnan (A_null_real) | isinf (A_null_real) ...
+                        | isnan (B_null_real) | isinf (B_null_real);
+            else
+              exclude = errseen ...
+                        | ! isfinite (A_null_real) & ! isfinite (B_null_real);
+            endif
             A_null_real(exclude) = 0;
             B_null_real(exclude) = 0;
 
@@ -358,8 +364,15 @@
             else
               A_null_imag = imag (A);
               B_null_imag = imag (B);
-              exclude = errseen ...
-                        | ! isfinite (A_null_imag) & ! isfinite (B_null_imag);
+              if (issparse (errseen))
+                exclude = errseen ...
+                          | isnan (A_null_imag) | isinf (A_null_imag) ...
+                          | isnan (B_null_imag) | isinf (B_null_imag);
+              else
+                exclude = errseen ...
+                          | ! isfinite (A_null_imag) & ! isfinite (B_null_imag);
+              endif
+
               A_null_imag(exclude) = 0;
               B_null_imag(exclude) = 0;
               A_null = complex (A_null_real, A_null_imag);
--- a/scripts/testfun/example.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/example.m	Tue Nov 15 13:15:28 2022 -0800
@@ -28,7 +28,7 @@
 ## @deftypefnx {} {} example @var{name} @var{n}
 ## @deftypefnx {} {} example ("@var{name}")
 ## @deftypefnx {} {} example ("@var{name}", @var{n})
-## @deftypefnx {} {[@var{s}, @var{idx}] =} example (@dots{})
+## @deftypefnx {} {[@var{codestr}, @var{codeidx}] =} example (@dots{})
 ##
 ## Display the code for example @var{n} associated with the function
 ## @var{name}, but do not run it.
@@ -36,14 +36,14 @@
 ## If @var{n} is not specified, all examples are displayed.
 ##
 ## When called with output arguments, the examples are returned in the form of
-## a string @var{s}, with @var{idx} indicating the ending position of the
-## various examples.
+## a string @var{codestr}, with @var{codeidx} indicating the ending position of
+## the various examples.
 ##
 ## For a complete explanation @pxref{XREFdemo,,@code{demo}}.
 ## @seealso{demo, test}
 ## @end deftypefn
 
-function [ex_code, ex_idx] = example (name, n = 0)
+function [codestr, codeidx] = example (name, n = 0)
 
   if (nargin < 1)
     print_usage ();
@@ -74,15 +74,15 @@
   if (nargout > 0)
     if (n > 0)
       if (n <= length (idx))
-        ex_code = code(idx(n):idx(n+1)-1);
-        ex_idx = [1, length(ex_code)+1];
+        codestr = code(idx(n):idx(n+1)-1);
+        codeidx = [1, length(codestr)+1];
       else
-        ex_code = "";
-        ex_idx = [];
+        codestr = "";
+        codeidx = [];
       endif
     else
-      ex_code = code;
-      ex_idx = idx;
+      codestr = code;
+      codeidx = idx;
     endif
   else
     if (n > 0)
--- a/scripts/testfun/fail.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/fail.m	Tue Nov 15 13:15:28 2022 -0800
@@ -27,10 +27,10 @@
 ## public domain.
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} fail (@var{code})
-## @deftypefnx {} {} fail (@var{code}, @var{pattern})
-## @deftypefnx {} {} fail (@var{code}, "warning")
-## @deftypefnx {} {} fail (@var{code}, "warning", @var{pattern})
+## @deftypefn  {} {@var{status} =} fail (@var{code})
+## @deftypefnx {} {@var{status} =} fail (@var{code}, @var{pattern})
+## @deftypefnx {} {@var{status} =} fail (@var{code}, "warning")
+## @deftypefnx {} {@var{status} =} fail (@var{code}, "warning", @var{pattern})
 ##
 ## Return true if @var{code} fails with an error message matching
 ## @var{pattern}, otherwise produce an error.
@@ -65,7 +65,7 @@
 ## @seealso{assert, error}
 ## @end deftypefn
 
-function retval = fail (code, pattern, warning_pattern)
+function status = fail (code, pattern, warning_pattern)
 
   if (nargin < 1)
     print_usage ();
@@ -95,7 +95,7 @@
 
   ## Allow assert (fail ())
   if (nargout)
-    retval = true;
+    status = true;
   endif
 
   if (test_warning)
--- a/scripts/testfun/oruntests.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/oruntests.m	Tue Nov 15 13:15:28 2022 -0800
@@ -119,6 +119,11 @@
     endif
     str = fread (fid, "*char")';
     fclose (fid);
+    enc = dir_encoding (fileparts (f));
+    if (! strcmp (enc, "utf-8"))
+      ## convert from input encoding to UTF-8
+      str = native2unicode (uint8 (str), enc);
+    endif
     retval = ! isempty (regexp (str,'^(?:DEFUN|DEFUN_DLD|DEFUNX)\>',
                                     'lineanchors', 'once'));
   elseif (n > 2 && strcmpi (f((end-1):end), ".m"))
@@ -138,6 +143,11 @@
 
   str = fread (fid, "*char").';
   fclose (fid);
+  enc = dir_encoding (fileparts (f));
+  if (! strcmp (enc, "utf-8"))
+    ## convert from input encoding to UTF-8
+    str = native2unicode (uint8 (str), enc);
+  endif
   retval = ! isempty (regexp (str,
                               '^%!(assert|error|fail|test|xtest|warning)',
                               'lineanchors', 'once'));
--- a/scripts/testfun/private/dump_demos.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/private/dump_demos.m	Tue Nov 15 13:15:28 2022 -0800
@@ -196,11 +196,11 @@
     demos = get_demos (fcn);
     for d = 1:numel (demos)
       idx = sprintf ("%02d", d);
-      base_fn = sprintf ("%s_%s", fcn, idx);
-      fn = sprintf ('%s.%s', base_fn, fmt);
+      base_fcn = sprintf ("%s_%s", fcn, idx);
+      fn = sprintf ('%s.%s', base_fcn, fmt);
       ## Wrap each demo in a function which create a local scope
       ## to prevent that a previous demo overwrites i or pi, for example
-      fprintf (fid, "\nfunction %s ()\n", base_fn);
+      fprintf (fid, "\nfunction %s ()\n", base_fcn);
       fprintf (fid, "    %s\n\n", demos{d});
       fprintf (fid, "end\n\n");
 
@@ -212,7 +212,7 @@
       ## here (https://savannah.gnu.org/bugs/?42557).
       fprintf (fid, "    rand ('seed', 1);\n");
       fprintf (fid, "    tic ();\n");
-      fprintf (fid, "    %s ();\n", base_fn);
+      fprintf (fid, "    %s ();\n", base_fcn);
       fprintf (fid, "    t_plot = toc ();\n");
       fprintf (fid, "    fig = (get (0, 'currentfigure'));\n");
       fprintf (fid, "    if (~ isempty (fig))\n");
@@ -229,8 +229,8 @@
       fprintf (fid, "    fprintf ('File ""%s"" already exists.\\n');\n", fn);
       fprintf (fid, "  end\n");
       fprintf (fid, "catch\n");
-      fprintf (fid, "  fprintf ('ERROR in %s: %%s\\n', lasterr ());\n", base_fn);
-      fprintf (fid, "  err_fid = fopen ('%s.err', 'w');\n", base_fn);
+      fprintf (fid, "  fprintf ('ERROR in %s: %%s\\n', lasterr ());\n", base_fcn);
+      fprintf (fid, "  err_fid = fopen ('%s.err', 'w');\n", base_fcn);
       fprintf (fid, "  fprintf (err_fid, '%%s', lasterr ());\n");
       fprintf (fid, "  fclose (err_fid);\n");
       fprintf (fid, "end\n");
--- a/scripts/testfun/test.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/testfun/test.m	Tue Nov 15 13:15:28 2022 -0800
@@ -445,7 +445,6 @@
 ### FUNCTION
 
       elseif (strcmp (__type, "function"))
-        persistent __fn = 0;
         __name_position = function_name (__block);
         if (isempty (__name_position))
           __success = false;
--- a/scripts/time/addtodate.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/addtodate.m	Tue Nov 15 13:15:28 2022 -0800
@@ -123,20 +123,19 @@
 %!assert (addtodate ([d;d+1], 1, "month"), [d+31;d+1+31])
 %!assert (addtodate ([d d+1], 1, "month"), [d+31 d+1+31])
 
-## end of month days check
-%!test <60671>
-%! assert (addtodate (datenum ("2020-12-31"), -1, "month"), 738125)
-%! assert (addtodate (datenum ("2020-12-30"), -1, "month"), 738125)
-%! assert (addtodate (datenum ("2020-12-29"), -1, "month"), 738124)
-%! assert (addtodate (datenum ("2021-03-31"), -1, "month"), 738215)
-%! assert (addtodate (datenum ("2021-03-29"), -1, "month"), 738215)
-%! assert (addtodate (datenum ("2020-03-30"), -1, "month"), 737850)
-%! assert (addtodate (datenum ("2020-03-29"), -1, "month"), 737850)
-%! assert (addtodate (datenum ("2020-03-28"), -1, "month"), 737849)
-%! assert (addtodate (datenum ("2020-02-29"), -1, "month"), 737819)
-%! assert (addtodate (datenum ("2020-02-28"), -1, "month"), 737818)
-%! assert (addtodate (datenum ("2020-01-31"), +1, "month"), 737850)
- 
+## end of month days
+%!assert <*60671> (addtodate (datenum ("2020-12-31"), -1, "month"), 738125)
+%!assert <*60671> (addtodate (datenum ("2020-12-30"), -1, "month"), 738125)
+%!assert <*60671> (addtodate (datenum ("2020-12-29"), -1, "month"), 738124)
+%!assert <*60671> (addtodate (datenum ("2021-03-31"), -1, "month"), 738215)
+%!assert <*60671> (addtodate (datenum ("2021-03-29"), -1, "month"), 738215)
+%!assert <*60671> (addtodate (datenum ("2020-03-30"), -1, "month"), 737850)
+%!assert <*60671> (addtodate (datenum ("2020-03-29"), -1, "month"), 737850)
+%!assert <*60671> (addtodate (datenum ("2020-03-28"), -1, "month"), 737849)
+%!assert <*60671> (addtodate (datenum ("2020-02-29"), -1, "month"), 737819)
+%!assert <*60671> (addtodate (datenum ("2020-02-28"), -1, "month"), 737818)
+%!assert <*60671> (addtodate (datenum ("2020-01-31"), +1, "month"), 737850)
+
 
 ## Test input validation
 %!error <Invalid call> addtodate ()
--- a/scripts/time/asctime.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/asctime.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} asctime (@var{tm_struct})
+## @deftypefn {} {@var{str} =} asctime (@var{tm_struct})
 ## Convert a time structure to a string using the following
 ## format: @qcode{"ddd mmm mm HH:MM:SS yyyy@backslashchar{}n"}.
 ##
@@ -41,13 +41,13 @@
 ## @seealso{ctime, localtime, time}
 ## @end deftypefn
 
-function retval = asctime (tm_struct)
+function str = asctime (tm_struct)
 
   if (nargin < 1)
     print_usage ();
   endif
 
-  retval = strftime ("%a %b %d %H:%M:%S %Y\n", tm_struct);
+  str = strftime ("%a %b %d %H:%M:%S %Y\n", tm_struct);
 
 endfunction
 
--- a/scripts/time/calendar.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/calendar.m	Tue Nov 15 13:15:28 2022 -0800
@@ -41,7 +41,7 @@
 ## @seealso{datenum, datestr}
 ## @end deftypefn
 
-function varargout = calendar (varargin)
+function c = calendar (y, m)
 
   switch (nargin)
     case 0
@@ -49,31 +49,30 @@
       y = v(1);
       m = v(2);
       d = v(3);
+
     case 1
-      v = datevec (varargin{1});
+      v = datevec (y);
       y = v(1);
       m = v(2);
       d = v(3);
+
     case 2
-      y = varargin{1};
-      m = varargin{2};
       d = [];
-    otherwise
-      print_usage ();
+
   endswitch
 
-  c = zeros (7, 6);
+  cal = zeros (7, 6);
   dayone = datenum (y, m, 1);
   ndays = eomday (y, m);
-  c(weekday (dayone) - 1 + [1:ndays]) = 1:ndays;
+  cal(weekday (dayone) - 1 + [1:ndays]) = 1:ndays;
 
   if (nargout > 0)
-    varargout{1} = c';
+    c = cal';
   else
     ## Layout the calendar days, 6 columns per day, 7 days per row.
-    str = sprintf ("    %2d    %2d    %2d    %2d    %2d    %2d    %2d\n", c);
+    str = sprintf ("    %2d    %2d    %2d    %2d    %2d    %2d    %2d\n", cal);
 
-    ## Print an asterisk before the specified date
+    ## Print an asterisk before the specified date.
     if (! isempty (d))
       pos = weekday (dayone) + d - 1;
       idx = 6*pos + fix (pos / 7.1) - ifelse (d < 10, 1, 2);
@@ -101,6 +100,3 @@
 
 %!assert ((calendar(2000,2))'(2:31), [0:29])
 %!assert ((calendar(1957,10))'(2:33), [0:31])
-
-## Test input validation
-%!error calendar (1,2,3)
--- a/scripts/time/clock.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/clock.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,13 +24,17 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} clock ()
+## @deftypefn  {} {@var{datevec} =} clock ()
+## @deftypefnx {} {[@var{datevec}, @var{isdst}] =} clock ()
 ## Return the current local date and time as a date vector.
 ##
 ## The date vector contains the following fields: current year, month (1-12),
 ## day (1-31), hour (0-23), minute (0-59), and second (0-61).  The seconds
 ## field has a fractional part after the decimal point for extended accuracy.
 ##
+## The optional second output @var{isdst} is true if Daylight Savings Time
+## (DST) is in effect for the system's time zone.
+##
 ## For example:
 ##
 ## @example
@@ -45,18 +49,19 @@
 ## @seealso{now, date, datevec}
 ## @end deftypefn
 
-function retval = clock ()
+function [datevec, isdst] = clock ()
 
   tm = localtime (time ());
 
-  retval = zeros (1, 6);
+  datevec = zeros (1, 6);
+  datevec(1) = tm.year + 1900;
+  datevec(2) = tm.mon + 1;
+  datevec(3) = tm.mday;
+  datevec(4) = tm.hour;
+  datevec(5) = tm.min;
+  datevec(6) = tm.sec + tm.usec / 1e6;
 
-  retval(1) = tm.year + 1900;
-  retval(2) = tm.mon + 1;
-  retval(3) = tm.mday;
-  retval(4) = tm.hour;
-  retval(5) = tm.min;
-  retval(6) = tm.sec + tm.usec / 1e6;
+  isdst = tm.isdst;
 
 endfunction
 
--- a/scripts/time/ctime.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/ctime.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} ctime (@var{t})
+## @deftypefn {} {@var{str} =} ctime (@var{t})
 ## Convert a value returned from @code{time} (or any other non-negative
 ## integer), to the local time and return a string of the same form as
 ## @code{asctime}.
@@ -41,13 +41,13 @@
 ## @seealso{asctime, time, localtime}
 ## @end deftypefn
 
-function retval = ctime (t)
+function str = ctime (t)
 
-  if (nargin < 1)
+  if (nargin != 1)
     print_usage ();
   endif
 
-  retval = asctime (localtime (t));
+  str = asctime (localtime (t));
 
 endfunction
 
--- a/scripts/time/date.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/date.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} date ()
+## @deftypefn {} {@var{str} =} date ()
 ## Return the current date as a character string in the form DD-MMM-YYYY@.
 ##
 ## For example:
@@ -38,9 +38,9 @@
 ## @seealso{now, clock, datestr, localtime}
 ## @end deftypefn
 
-function retval = date ()
+function str = date ()
 
-  retval = strftime ("%d-%b-%Y", localtime (time ()));
+  str = strftime ("%d-%b-%Y", localtime (time ()));
 
 endfunction
 
--- a/scripts/time/datevec.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/datevec.m	Tue Nov 15 13:15:28 2022 -0800
@@ -208,6 +208,13 @@
 
   original_f = f;   # Store for error messages.
 
+  if (any (strchr (f, "hsfYD", 1)))
+    warning ("Octave:datevec:date-format-spec", ...
+             ["datevec: Format specifiers for dates should be lower case,", ...
+              " format specifiers for time should be upper case. ", ...
+              " Possible issue with 'm' (month) and 'M' (minutes)?"]);
+  endif
+
   ## Play safe with percent signs.
   f = strrep (f, "%", "%%");
 
@@ -461,3 +468,8 @@
 %!error <multiple hour specifiers> datevec ("15:38:21.251", "HH:HH:SS")
 %!error <multiple minute specifiers> datevec ("15:38:21.251", "MM:MM:SS")
 %!error <multiple second specifiers> datevec ("15:38:21.251", "HH:SS:SS")
+%!fail ("datevec ('2015-03-31 0:00','YYYY-mm-DD HH:MM')", ...
+%!      "warning", "Format specifiers for dates should be lower case");
+%!fail ("datevec ('2015-03-31 hh:00','yyyy-mm-dd hh:MM')", ...
+%!      "warning", "format specifiers for time should be upper case");
+
--- a/scripts/time/etime.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/etime.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,7 +24,7 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn {} {} etime (@var{t2}, @var{t1})
+## @deftypefn {} {@var{secs} =} etime (@var{t2}, @var{t1})
 ## Return the difference in seconds between two time values returned from
 ## @code{clock} (@math{@var{t2} - @var{t1}}).
 ##
--- a/scripts/time/is_leap_year.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/time/is_leap_year.m	Tue Nov 15 13:15:28 2022 -0800
@@ -24,8 +24,8 @@
 ########################################################################
 
 ## -*- texinfo -*-
-## @deftypefn  {} {} is_leap_year ()
-## @deftypefnx {} {} is_leap_year (@var{year})
+## @deftypefn  {} {@var{tf} =} is_leap_year ()
+## @deftypefnx {} {@var{tf} =} is_leap_year (@var{year})
 ## Return true if @var{year} is a leap year and false otherwise.
 ##
 ## If no year is specified, @code{is_leap_year} uses the current year.
@@ -41,14 +41,14 @@
 ## @seealso{weekday, eomday, calendar}
 ## @end deftypefn
 
-function retval = is_leap_year (year)
+function tf = is_leap_year (year)
 
   if (nargin == 0)
     t = clock ();
     year = t(1);
   endif
 
-  retval = (rem (year, 4) == 0 & rem (year, 100) != 0) | (rem (year, 400) == 0);
+  tf = (rem (year, 4) == 0 & rem (year, 100) != 0) | (rem (year, 400) == 0);
 
 endfunction
 
--- a/scripts/web/webwrite.m	Tue Nov 15 13:25:31 2022 -0300
+++ b/scripts/web/webwrite.m	Tue Nov 15 13:15:28 2022 -0800
@@ -92,7 +92,12 @@
     error ("webwrite: DATA must be a string");
   elseif (nargs == 1)
     if (ischar (varargin{1}) && isrow (varargin{1}))
-      param = strsplit (varargin{1}, {"=", "&"});
+      param = regexp (varargin{1}, '([^=]*)=([^&]*)&?', 'tokens');
+      if (isempty (param) || isempty (param{1}))
+        error ("webwrite: DATA not a valid query string");
+      else
+        param = [param{:}];
+      endif
       response = __restful_service__ (url, param, options);
     elseif (! iscellstr (varargin))
       error ("webwrite: DATA must be a string");
--- a/src/mkoctfile.in.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/src/mkoctfile.in.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -315,7 +315,7 @@
 
   vars["LIBOCTINTERP"] = "-loctinterp";
 
-  vars["READLINE_LIBS"] = "-lreadline";
+  vars["READLINE_LIBS"] = %OCTAVE_CONF_READLINE_LIBS%;
 
   vars["LAPACK_LIBS"] = get_variable ("LAPACK_LIBS", %OCTAVE_CONF_LAPACK_LIBS%);
 
--- a/src/octave-svgconvert.cc	Tue Nov 15 13:25:31 2022 -0300
+++ b/src/octave-svgconvert.cc	Tue Nov 15 13:15:28 2022 -0800
@@ -653,6 +653,9 @@
                 }
 
               painter.setRenderHint (QPainter::Antialiasing, false);
+#if defined (HAVE_QPAINTER_RENDERHINT_LOSSLESS)
+              painter.setRenderHint (QPainter::LosslessImageRendering);
+#endif
               painter.drawImage (pos, img);
               painter.setRenderHint (QPainter::Antialiasing, true);
               painter.restore  ();
@@ -824,6 +827,26 @@
     replace_polygons (parent_elt, collection[ii].first, collection[ii].second);
 }
 
+void add_custom_properties (QDomElement& parent_elt)
+{
+  QDomNodeList nodes = parent_elt.childNodes ();
+
+  for (int ii = 0; ii < nodes.count (); ii++)
+    {
+      QDomNode node = nodes.at (ii);
+      if (! node.isElement ())
+        continue;
+
+      QDomElement elt = node.toElement ();
+
+      if (elt.tagName () == "image")
+        elt.setAttribute ("image-rendering", "optimizeSpeed");
+      else
+        add_custom_properties (elt);
+    }
+
+}
+
 #if defined (OCTAVE_USE_WINDOWS_API) && defined (_UNICODE)
 extern "C"
 int
@@ -960,6 +983,9 @@
   if (QString (argv[5]).toInt ())
     reconstruct_polygons (root);
 
+  // Add custom properties to SVG
+  add_custom_properties (root);
+
   // Draw
   if (! strcmp (argv[2], "pdf"))
     {
--- a/test/Makefile.am	Tue Nov 15 13:25:31 2022 -0300
+++ b/test/Makefile.am	Tue Nov 15 13:15:28 2022 -0800
@@ -114,6 +114,7 @@
 include colon-op/module.mk
 include ctor-vs-method/module.mk
 include fcn-handle/module.mk
+include file-encoding/module.mk
 include json/module.mk
 include jupyter-notebook/module.mk
 include local-functions/module.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/file-encoding/.oct-config	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+encoding=windows-1252
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/file-encoding/CP1251/.oct-config	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,1 @@
+encoding=windows-1251
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/file-encoding/CP1251/test_CP1251.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,37 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This program is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 3 of the
+## License, or (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, see <http://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {} test_CP1251 ()
+## Test function with some characters from CP1251
+##
+## ÄÖÜäöü ŠŽšž
+##
+## @end deftypefn
+
+function test_CP1251 ()
+  help ("test_CP1251");
+endfunction
+
+%!assert (double ("ÄÖÜäöü ŠŽšž"),
+%!        [208 148 208 166 208 172 208 180 209 134 209 140 32 ...
+%!         208 137 208 139 209 153 209 155])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/file-encoding/file-encoding.tst	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,146 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This file is part of Octave.
+##
+## Octave is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <https://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## Note: The cache of dir_encoding from .oct-config files in the load path
+## persists even after removing the folder from the load path.
+## Explictily, delete it when removing the path.
+
+## test file in current directory
+
+%!assert (dir_encoding ("."), "windows-1252")
+%!assert (dir_encoding (pwd ()), "windows-1252")
+
+%!test
+%! help_str = get_help_text ("test_CP1252");
+%! ## The help text contains the string "ÄÖÜäöü ŠŽšž".  Compare to the
+%! ## corresponding UTF-8 byte sequence to make sure this test is independent
+%! ## of how this .tst file is interpreted.
+%! ref_str = char ([195 132 195 150 195 156 195 164 195 182 195 188 32 ...
+%!                  197 160 197 189 197 161 197 190]);
+%! assert (strfind (help_str, ref_str));
+
+
+## test file in load path (relative)
+
+%!test
+%! path_orig = path ();
+%! unwind_protect
+%!   addpath ("CP1251");
+%!   assert (dir_encoding ("CP1251"), "windows-1251");
+%!   assert (dir_encoding (fullfile (pwd (), "CP1251")), "windows-1251");
+%! unwind_protect_cleanup
+%!   path (path_orig);
+%!   dir_encoding (canonicalize_file_name ("CP1251"), "delete");
+%! end_unwind_protect
+
+%!test
+%! path_orig = path ();
+%! unwind_protect
+%!   addpath ("CP1251");
+%!   help_str = get_help_text ("test_CP1251");
+%!   ## The help text contains the string "ДЦЬдць ЉЋљћ".  Compare to the
+%!   ## corresponding UTF-8 byte sequence to make sure this test is independent
+%!   ## of how this .tst of how this .tst file is interpreted.
+%!   ref_str = char ([208 148 208 166 208 172 208 180 209 134 209 140 32 ...
+%!                    208 137 208 139 209 153 209 155]);
+%!   assert (strfind (help_str, ref_str));
+%! unwind_protect_cleanup
+%!   path (path_orig);
+%!   dir_encoding (canonicalize_file_name ("CP1251"), "delete");
+%! end_unwind_protect
+
+
+## test file in load path (absolute)
+
+%!test
+%! clear all;  # make sure files are re-parsed
+%! path_orig = path ();
+%! unwind_protect
+%!   new_path = canonicalize_file_name ("CP1251");
+%!   addpath (new_path);
+%!   assert (dir_encoding (new_path), "windows-1251");
+%!   assert (dir_encoding ("CP1251"), "windows-1251");
+%!   assert (dir_encoding (fullfile (pwd (), "CP1251")), "windows-1251");
+%! unwind_protect_cleanup
+%!   path (path_orig);
+%!   dir_encoding (canonicalize_file_name ("CP1251"), "delete");
+%! end_unwind_protect
+
+%!test
+%! clear all;  # make sure files are re-parsed
+%! path_orig = path ();
+%! unwind_protect
+%!   addpath (canonicalize_file_name ("CP1251"));
+%!   help_str = get_help_text ("test_CP1251");
+%!   ## The help text contains the string "ДЦЬдць ЉЋљћ".  Compare to the UTF-8
+%!   ## byte sequence to make sure this test is independent of how this .tst
+%!   ## file is interpreted.
+%!   ref_str = char ([208 148 208 166 208 172 208 180 209 134 209 140 32 ...
+%!                    208 137 208 139 209 153 209 155]);
+%!   assert (strfind (help_str, ref_str));
+%! unwind_protect_cleanup
+%!   path (path_orig);
+%!   dir_encoding (canonicalize_file_name ("CP1251"), "delete");
+%! end_unwind_protect
+
+
+## oruntests with file in current folder with .oct-config file
+%!test <*62780>
+%! ## wrap in "evalc" to suppress output to the log
+%! evalc ('oruntests (".");');
+
+## oruntests with file in different folder (not in load path) with
+## "dir_encoding"
+%!test <*62780>
+%! unwind_protect
+%!   dir_encoding (canonicalize_file_name ("CP1251"), "windows-1251");
+%!   ## use "evalc" to suppress output to the log
+%!   evalc ('oruntests ("CP1251");');
+%! unwind_protect_cleanup
+%!   dir_encoding (canonicalize_file_name ("CP1251"), "delete");
+%! end_unwind_protect
+
+## oruntests with file in different folder (not in load path) with
+## "__mfile_encoding__"
+%!test <*62780>
+%! old_mfile_encoding = __mfile_encoding__ ("windows-1251");
+%! unwind_protect
+%!   ## use "evalc" to suppress output to the log
+%!   evalc ('oruntests ("CP1251");');
+%! unwind_protect_cleanup
+%!   __mfile_encoding__ (old_mfile_encoding);
+%! end_unwind_protect
+
+## oruntests with file in different folder with .oct-config file (in load path)
+%!test <*62780>
+%! path_orig = path ();
+%! unwind_protect
+%!   addpath (canonicalize_file_name ("CP1251"));
+%!   ## use "evalc" to suppress output to the log
+%!   evalc ('oruntests ("CP1251");');
+%! unwind_protect_cleanup
+%!   path (path_orig);
+%!   dir_encoding (canonicalize_file_name ("CP1251"), "delete");
+%! end_unwind_protect
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/file-encoding/module.mk	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,8 @@
+file_encoding_TEST_FILES = \
+    %reldir%/.oct-config \
+    %reldir%/file-encoding.tst \
+    %reldir%/test_CP1252.m \
+    %reldir%/CP1251/.oct-config \
+    %reldir%/CP1251/test_CP1251.m
+
+TEST_FILES += $(file_encoding_TEST_FILES)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/file-encoding/test_CP1252.m	Tue Nov 15 13:15:28 2022 -0800
@@ -0,0 +1,37 @@
+########################################################################
+##
+## Copyright (C) 2022 The Octave Project Developers
+##
+## See the file COPYRIGHT.md in the top-level directory of this
+## distribution or <https://octave.org/copyright/>.
+##
+## This program is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 3 of the
+## License, or (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, see <http://www.gnu.org/licenses/>.
+##
+########################################################################
+
+## -*- texinfo -*-
+## @deftypefn {} {} test_CP1252 ()
+## Test function with some characters from CP1252
+##
+## ÄÖÜäöü ŠŽšž
+##
+## @end deftypefn
+
+function test_CP1252 ()
+  help ("test_CP1252");
+endfunction
+
+%!assert (double ("ÄÖÜäöü ŠŽšž"),
+%!        [195 132 195 150 195 156 195 164 195 182 195 188 32 ...
+%!         197 160 197 189 197 161 197 190])
--- a/test/pkg/pkg.tst	Tue Nov 15 13:25:31 2022 -0300
+++ b/test/pkg/pkg.tst	Tue Nov 15 13:15:28 2022 -0800
@@ -73,7 +73,9 @@
 %!testif HAVE_Z
 %! for i = 1:numel (mfile_pkg_name)
 %!   silent_pkg_install (mfile_pkg_tgz{i});
-%!   system (["chmod -Rf u+w '" prefix "'"]);   ## FIXME: Work around bug #53578
+%!   if (isunix ())
+%!     system (["chmod -Rf u+w '" prefix "'"]);   ## FIXME: Work around bug #53578
+%!   endif
 %!   pkg ("uninstall", mfile_pkg_name{i});
 %! endfor
 %!
@@ -83,7 +85,9 @@
 %!testif HAVE_Z
 %! for i = 1:numel (mfile_pkg_name)
 %!   silent_pkg_install ("-local", mfile_pkg_tgz{i});
-%!   system (["chmod -Rf u+w '" prefix "'"]);   ## FIXME: Work around bug #53578
+%!   if (isunix)
+%!     system (["chmod -Rf u+w '" prefix "'"]);   ## FIXME: Work around bug #53578
+%!   endif
 %!   pkg ("uninstall", mfile_pkg_name{i});
 %! endfor
 
@@ -111,7 +115,9 @@
 %!     pkg ("load", name);
 %!     pkg ("unload", name);
 %!   unwind_protect_cleanup
-%!     system (["chmod -Rf u+w '" prefix "'"]); ## FIXME: Work around bug #53578
+%!     if (isunix)
+%!       system (["chmod -Rf u+w '" prefix "'"]); ## FIXME: Work around bug #53578
+%!     endif
 %!     pkg ("uninstall", name);
 %!   end_unwind_protect
 %! endfor
@@ -138,7 +144,9 @@
 %! [desc, flag] = pkg ("describe", mfile_pkg_name{1});
 %! ## FIXME: this only tests that the describe command runs,
 %! ##        not that the output is in anyway correct.
-%! system (["chmod -Rf u+w '" prefix "'"]);     ## FIXME: Work around bug #53578
+%! if (isunix)
+%!   system (["chmod -Rf u+w '" prefix "'"]);     ## FIXME: Work around bug #53578
+%! endif
 %! pkg ("uninstall", mfile_pkg_name{1});
 
 ## -verbose