diff --git a/content/developer-faqs.md b/content/developer-faqs.md
index 45ec80e..9ebc1a3 100644
--- a/content/developer-faqs.md
+++ b/content/developer-faqs.md
@@ -76,7 +76,7 @@
 Developer builds are not official releases and may be unstable. But they can be useful to download for those who 
 need early access to builds, but who do not want to compile their own build. They are announced and discussed only on the development list, as they are not production builds. Apache OpenOffice currently has two types of development builds: those generated by buildbots, and those manually generated/built.
 
-Apache OpenOffice makes use of buildbots for some of our environments. You can review the Apache OpenOffice buildbot information [here][16]. Additional information on buildbot builds for Windows, Linux64 and Linux32 can be found [here][13].
+Apache OpenOffice makes use of buildbots for some of our environments. You can review the Apache OpenOffice buildbot information [here][16]. Additional information on buildbot builds for Windows and Linux64 can be found [here][13].
 
 Development snapshots, which are manually generated, are used as the final step leading up to a release. These are used for final testing before an approved release. You will also find helpful hints for specific platform building here.
 
diff --git a/content/downloads.md b/content/downloads.md
index 212d0b6..0899b8c 100644
--- a/content/downloads.md
+++ b/content/downloads.md
@@ -7,50 +7,50 @@
 
 ## List of the current downloads ##
 
-***Current Version 4.1.11 (released on October 06, 2021)***
+***Current Version 4.1.13 (released on July 22, 2022)***
 
  * **Source**:
-    * [apache-openoffice-4.1.11-bdb20b2a64-src.zip](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.sha512)]
-    * [apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.sha512)]
-    * [apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.sha512)]
+    * [apache-openoffice-4.1.13-281f0d3533-src.zip](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.zip)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.zip.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.zip.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.zip.sha512)]
+    * [apache-openoffice-4.1.13-281f0d3533-src.tar.gz](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.tar.gz.sha512)]
+    * [apache-openoffice-4.1.13-281f0d3533-src.tar.bz2](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.tar.bz2)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.tar.bz2.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.tar.bz2.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/source/apache-openoffice-4.1.13-281f0d3533-src.tar.bz2.sha512)]
 
  * **Binaries**:
     * [Downloads](https://www.openoffice.org/download/index.html)
 
  * **Software Development Kit (SDK)**:
-    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe)
-      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-deb_en-US.tar.gz](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-deb_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-rpm_en-US.tar.gz](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-rpm_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86-64_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-deb_en-US.tar.gz](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-deb_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-rpm_en-US.tar.gz](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-rpm_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Linux_x86_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.13_MacOS_x86-64_install_en-US.dmg](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_MacOS_x86-64_install_en-US.dmg)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_MacOS_x86-64_install_en-US.dmg.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_MacOS_x86-64_install_en-US.dmg.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_MacOS_x86-64_install_en-US.dmg.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.13_Win_x86_install_en-US.exe](https://www.apache.org/dyn/closer.lua/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Win_x86_install_en-US.exe)
+      [[asc](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Win_x86_install_en-US.exe.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.13_Win_x86_install_en-US.exe.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.13/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.sha512)]
 
 **Note**
 All downloads can be verified using the Apache OpenOffice code signing [KEYS](https://downloads.apache.org/openoffice/KEYS).<br>
@@ -62,6 +62,97 @@
 
 ## Release Archives ##
 
+***Apache OpenOffice 4.1.12 (released on May 04, 2022)***
+
+ * **Source**:
+    * [apache-openoffice-4.1.12-60e0a1c111-src.zip](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.zip)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.zip.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.zip.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.zip.sha512)]
+    * [apache-openoffice-4.1.12-60e0a1c111-src.tar.gz](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.tar.gz.sha512)]
+    * [apache-openoffice-4.1.12-60e0a1c111-src.tar.bz2](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.tar.bz2)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.tar.bz2.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.tar.bz2.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/source/apache-openoffice-4.1.12-60e0a1c111-src.tar.bz2.sha512)]
+
+ * **Binaries**:
+    * [Downloads](https://www.openoffice.org/download/index.html)
+
+ * **Software Development Kit (SDK)**:
+    * [Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-deb_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-deb_en-US.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-rpm_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-rpm_en-US.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86-64_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-deb_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-deb_en-US.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-rpm_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-rpm_en-US.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Linux_x86_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.12_MacOS_x86-64_install_en-US.dmg](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_MacOS_x86-64_install_en-US.dmg)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_MacOS_x86-64_install_en-US.dmg.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_MacOS_x86-64_install_en-US.dmg.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_MacOS_x86-64_install_en-US.dmg.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.12_Win_x86_install_en-US.exe](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Win_x86_install_en-US.exe)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Win_x86_install_en-US.exe.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Win_x86_install_en-US.exe.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.12/binaries/SDK/Apache_OpenOffice-SDK_4.1.12_Win_x86_install_en-US.exe.sha512)]
+
+
+***Apache OpenOffice 4.1.11 (released on October 06, 2021)***
+
+ * **Source**:
+    * [apache-openoffice-4.1.11-bdb20b2a64-src.zip](https://archive.apache.org/dist/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.sha512)]
+    * [apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz](https://archive.apache.org/dist/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.sha512)]
+    * [apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2](https://archive.apache.org/dist/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.sha512)]
+
+ * **Binaries**:
+    * [Downloads](https://www.openoffice.org/download/index.html)
+
+ * **Software Development Kit (SDK)**:
+    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg](https://archive.apache.org/dist/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe](https://archive.apache.org/dist/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.sha512)]
+
 ***Apache OpenOffice 4.1.10 (released on May 04, 2021)***
 
  * **Source**:
diff --git a/content/get-involved.md b/content/get-involved.md
index 316c79c..4558265 100644
--- a/content/get-involved.md
+++ b/content/get-involved.md
@@ -19,7 +19,7 @@
 
 ## Why get involved with the OpenOffice project?
 
-Although many want to [make a small donation](http://www.openoffice.org/donations.html)
+Although many want to [make a small donation](https://www.openoffice.org/donations.html)
 to support Apache OpenOffice and the Apache Software Foundation (we appreciate every
 contribution), some users want to do more and volunteer their time and expertise with
 the project. There are many motivations for why volunteers participate in an open source
diff --git a/content/index.md b/content/index.md
index 3012e33..3ab53de 100644
--- a/content/index.md
+++ b/content/index.md
@@ -16,6 +16,18 @@
 
 ## Announcements
 
+*2022-07-22 -- [Apache OpenOffice][1] 4.1.13 is released!*
+
+- [Download Source and SDK](/downloads.html)
+- [Download Binaries](https://www.openoffice.org/download/)
+- [Release Notes](https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.13+Release+Notes)
+
+*2022-05-04 -- [Apache OpenOffice][1] 4.1.12 is released!*
+
+- [Download Source and SDK](/downloads.html)
+- [Download Binaries](https://www.openoffice.org/download/)
+- [Release Notes](https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.12+Release+Notes)
+
 *2021-10-06 -- [Apache OpenOffice][1] 4.1.11 is released!*
 
 - [Download Source and SDK](/downloads.html)
diff --git a/content/security.md b/content/security.md
index 30865bb..eb9af36 100644
--- a/content/security.md
+++ b/content/security.md
@@ -29,14 +29,14 @@
 subset of members of the Apache OpenOffice Security Team and be aware that
 it may take us a little longer to respond to the issue.
 
-  - Patricia Shanahan 2F26 A8EE 0B87 BAB0 0DF2  9622 3932 070F A579 35C5 - [pats][2]
+  - Carl Marcum 813A C3C2 48B3 F26F B5D1  EB32 F1DA 7E3B 9553 BF9A - [cmarcum][2]
   - Damjan Jovanovic B034 1587 D6D2 E744 B6B8  8259 5C77 E6B1 9D41 C6CA - [damjan][3]
   - Andrea Pescetti 6D09 7A5C A3A8 C1E5 314D  9E67 013D A51F 8F0E 4C63 - [pescetti][4]
 
 Bulletins about vulnerabilities and their mitigations are found at the [Apache OpenOffice Security Bulletins archive][1]. Bulletins for legacy OpenOffice.org releases preceding Apache OpenOffice 3.4.0 are included for historical purposes.
 
 [1]: https://www.openoffice.org/security/bulletin.html
-[2]: https://people.apache.org/keys/committer/pats.asc
+[2]: https://people.apache.org/keys/committer/cmarcum.asc
 [3]: https://people.apache.org/keys/committer/damjan.asc
 [4]: https://people.apache.org/keys/committer/pescetti.asc
 
diff --git a/content/source.md b/content/source.md
index dec2673..a8c37a8 100644
--- a/content/source.md
+++ b/content/source.md
@@ -19,7 +19,7 @@
 <!--- You can use our git repository for downloading source but not committing (read only):
     [https://github.com/apache/openoffice](https://github.com/apache/openoffice)-->
 
-Instructions provided in [README.md](https://github.com/apache/openoffice) from github.com can be used successfully to get a local copy of the complete source for Apache OpenOffice.
+Instructions provided in [README.md](https://github.com/apache/openoffice#readme) from github.com can be used successfully to get a local copy of the complete source for Apache OpenOffice.
 
 ### Using SVN (applies to code through July, 2019)
 
diff --git a/content/trademarks.md b/content/trademarks.md
index 5c4c353..e43a93e 100644
--- a/content/trademarks.md
+++ b/content/trademarks.md
@@ -5,7 +5,7 @@
 
 The Apache Software Foundation holds trademarks on behalf of its
 projects. For the Apache OpenOffice project these trademarks include
-the names Apache OpenOffice™ and OpenOffice.org®, as well as the
+the names Apache OpenOffice® and OpenOffice.org®, as well as the
 [graphical logos][5]. Other graphic formats can be found [here][6].
 Use of these marks is prohibited without explicit permission from the
 ASF.
@@ -30,7 +30,7 @@
    1. A list of what ASF controlled marks you wish to use
 
    1. A description of how these marks would be used. Give supporting
-      detail, along with context  If you are requesting use of the
+      detail, along with context. If you are requesting use of the
       logo, for example, provide a prototype of how the logo would
       appear in the context of the overall design.
 
@@ -64,7 +64,7 @@
 ## The "Get it here!" download logo
 
 A specific logo is recommended for use by those who wish to help
-promote the  project by hosting a download logo on their website.
+promote the project by hosting a download logo on their website.
 The ["Get it here!"][3] logo may be used according to the
 requirements listed on that page.
 
