Import Cobalt 20.lts.5.272122
diff --git a/src/base/files/file_unittest.cc b/src/base/files/file_unittest.cc
index ac0813c..4dbf3ad 100644
--- a/src/base/files/file_unittest.cc
+++ b/src/base/files/file_unittest.cc
@@ -580,7 +580,16 @@
 
   const char kData[] = "this file is sparse.";
   const int kDataLen = sizeof(kData) - 1;
+#if defined(STARBOARD)
+#if SB_IS(32_BIT)
+  // Maximum off_t for lseek() on 32-bit builds is just below 2^31.
+  const int64_t kLargeFileOffset = (1LL << 31) - 2;
+#else  // SB_IS(32_BIT)
   const int64_t kLargeFileOffset = (1LL << 31);
+#endif  // SB_IS(32_BIT)
+#else  // defined(STARBOARD)
+  const int64_t kLargeFileOffset = (1LL << 31);
+#endif  // defined(STARBOARD)
 
   // If the file fails to write, it is probably we are running out of disk space
   // and the file system doesn't support sparse file.
diff --git a/src/cobalt/build/build.id b/src/cobalt/build/build.id
index 164d0dd..ce753bb 100644
--- a/src/cobalt/build/build.id
+++ b/src/cobalt/build/build.id
@@ -1 +1 @@
-266393
\ No newline at end of file
+272122
\ No newline at end of file
diff --git a/src/cobalt/content/fonts/config/android/fonts.xml b/src/cobalt/content/fonts/config/android/fonts.xml
index c9dafe1..a39f238 100644
--- a/src/cobalt/content/fonts/config/android/fonts.xml
+++ b/src/cobalt/content/fonts/config/android/fonts.xml
@@ -176,15 +176,21 @@
     </family>
     <family>
         <font weight="400" style="normal">NotoSansArmenian-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansArmenian-Regular.otf</font>
         <font weight="700" style="normal">NotoSansArmenian-Bold.ttf</font>
+        <font weight="700" style="normal">NotoSansArmenian-Bold.otf</font>
     </family>
     <family>
         <font weight="400" style="normal">NotoSansGeorgian-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansGeorgian-Regular.otf</font>
         <font weight="700" style="normal">NotoSansGeorgian-Bold.ttf</font>
+        <font weight="700" style="normal">NotoSansGeorgian-Bold.otf</font>
     </family>
     <family>
         <font weight="400" style="normal">NotoSansDevanagariUI-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansDevanagariUI-Regular.otf</font>
         <font weight="700" style="normal">NotoSansDevanagariUI-Bold.ttf</font>
+        <font weight="700" style="normal">NotoSansDevanagariUI-Bold.otf</font>
     </family>
     <!-- Gujarati should come after Devanagari -->
     <family>
@@ -198,15 +204,21 @@
     </family>
     <family>
         <font weight="400" style="normal">NotoSansTamilUI-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansTamilUI-Regular.otf</font>
         <font weight="700" style="normal">NotoSansTamilUI-Bold.ttf</font>
+        <font weight="700" style="normal">NotoSansTamilUI-Bold.otf</font>
     </family>
     <family>
         <font weight="400" style="normal">NotoSansMalayalamUI-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansMalayalamUI-Regular.otf</font>
         <font weight="700" style="normal">NotoSansMalayalamUI-Bold.ttf</font>
+        <font weight="700" style="normal">NotoSansMalayalamUI-Bold.otf</font>
     </family>
     <family>
         <font weight="400" style="normal">NotoSansBengaliUI-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansBengaliUI-Regular.otf</font>
         <font weight="700" style="normal">NotoSansBengaliUI-Bold.ttf</font>
+        <font weight="700" style="normal">NotoSansBengaliUI-Bold.otf</font>
     </family>
     <family>
         <font weight="400" style="normal">NotoSansTeluguUI-Regular.ttf</font>
@@ -222,7 +234,9 @@
     </family>
     <family>
         <font weight="400" style="normal">NotoSansSinhala-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansSinhala-Regular.otf</font>
         <font weight="700" style="normal">NotoSansSinhala-Bold.ttf</font>
+        <font weight="700" style="normal">NotoSansSinhala-Bold.otf</font>
     </family>
     <family>
         <font weight="400" style="normal">NotoSansKhmerUI-Regular.ttf</font>
@@ -234,7 +248,9 @@
     </family>
     <family>
         <font weight="400" style="normal">NotoSansMyanmarUI-Regular.ttf</font>
+        <font weight="400" style="normal">NotoSansMyanmarUI-Regular.otf</font>
         <font weight="700" style="normal">NotoSansMyanmarUI-Bold.ttf</font>
+        <font weight="700" style="normal">NotoSansMyanmarUI-Bold.otf</font>
     </family>
     <family>
         <font weight="400" style="normal">NotoSansThaana-Regular.ttf</font>
diff --git a/src/cobalt/content/ssl/certs/157753a5.0 b/src/cobalt/content/ssl/certs/157753a5.0
deleted file mode 100644
index 20585f1..0000000
--- a/src/cobalt/content/ssl/certs/157753a5.0
+++ /dev/null
@@ -1,25 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
-IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
-MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
-bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
-H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
-uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
-mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
-a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
-E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
-WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
-VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
-Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
-IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
-AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
-YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
-Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
diff --git a/src/cobalt/css_parser/grammar.y b/src/cobalt/css_parser/grammar.y
index 798c4b6..920cce8 100644
--- a/src/cobalt/css_parser/grammar.y
+++ b/src/cobalt/css_parser/grammar.y
@@ -27,15 +27,15 @@
 %{
 // Specify how the location of an action should be calculated in terms
 // of its children.
-#define YYLLOC_DEFAULT(Current, Rhs, N)          \
-  if (N) {                                       \
-    Current.first_line   = Rhs[1].first_line;    \
-    Current.first_column = Rhs[1].first_column;  \
-    Current.line_start   = Rhs[1].line_start;    \
-  } else {                                       \
-    Current.first_line   = Rhs[0].first_line;    \
-    Current.first_column = Rhs[0].first_column;  \
-    Current.line_start   = Rhs[0].line_start;    \
+#define YYLLOC_DEFAULT(Current, Rhs, N)            \
+  if (N) {                                         \
+    (Current).first_line   = Rhs[1].first_line;    \
+    (Current).first_column = Rhs[1].first_column;  \
+    (Current).line_start   = Rhs[1].line_start;    \
+  } else {                                         \
+    (Current).first_line   = Rhs[0].first_line;    \
+    (Current).first_column = Rhs[0].first_column;  \
+    (Current).line_start   = Rhs[0].line_start;    \
   }
 %}
 
diff --git a/src/cobalt/version.h b/src/cobalt/version.h
index b7fa7b2..abf42b6 100644
--- a/src/cobalt/version.h
+++ b/src/cobalt/version.h
@@ -35,6 +35,6 @@
 //                  release is cut.
 //.
 
-#define COBALT_VERSION "20.lts.4"
+#define COBALT_VERSION "20.lts.5"
 
 #endif  // COBALT_VERSION_H_
diff --git a/src/starboard/android/apk/build.id b/src/starboard/android/apk/build.id
deleted file mode 100644
index 2a2074e..0000000
--- a/src/starboard/android/apk/build.id
+++ /dev/null
@@ -1 +0,0 @@
-263411
\ No newline at end of file
diff --git a/src/starboard/raspi/shared/configuration_public.h b/src/starboard/raspi/shared/configuration_public.h
index 9575b03..c36b6c8 100644
--- a/src/starboard/raspi/shared/configuration_public.h
+++ b/src/starboard/raspi/shared/configuration_public.h
@@ -52,6 +52,9 @@
 // Whether the current platform provides the standard header float.h.
 #define SB_HAS_FLOAT_H 1
 
+// Whether the current platform provides ssize_t.
+#define SB_HAS_SSIZE_T 1
+
 // Type detection for wchar_t.
 #if defined(__WCHAR_MAX__) && \
     (__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
diff --git a/src/starboard/shared/pthread/thread_context_internal.cc b/src/starboard/shared/pthread/thread_context_internal.cc
index f5e7353..c520c05 100644
--- a/src/starboard/shared/pthread/thread_context_internal.cc
+++ b/src/starboard/shared/pthread/thread_context_internal.cc
@@ -65,6 +65,11 @@
   sp_ = reinterpret_cast<void*>(mcontext.arm_sp);
   fp_ = reinterpret_cast<void*>(mcontext.arm_fp);
 #endif
+#elif SB_IS_ARCH_MIPS
+  // MIPS
+  ip_ = reinterpret_cast<void*>(mcontext.pc);
+  sp_ = reinterpret_cast<void*>(mcontext.gregs[29]);
+  fp_ = reinterpret_cast<void*>(mcontext.gregs[30]);
 #else  // SB_IS_ARCH_XXX
 #error "SbThreadContext isn't implemented for this CPU architecture"
 #endif  // SB_IS_ARCH_XXX
diff --git a/src/starboard/string.h b/src/starboard/string.h
index fa6c202..47ad30e 100644
--- a/src/starboard/string.h
+++ b/src/starboard/string.h
@@ -223,7 +223,7 @@
                                              ...) {
   va_list arguments;
   va_start(arguments, format);
-  int result = SbStringFormat(out_buffer, UINT_MAX, format, arguments);
+  int result = SbStringFormat(out_buffer, SSIZE_MAX, format, arguments);
   va_end(arguments);
   return result;
 }
diff --git a/src/starboard/types.h b/src/starboard/types.h
index 9206f57..a7291a4 100644
--- a/src/starboard/types.h
+++ b/src/starboard/types.h
@@ -90,8 +90,10 @@
 #if !SB_HAS(SSIZE_T)
 #if SB_IS(32_BIT)
 typedef int32_t ssize_t;
+#define SSIZE_MAX INT_MAX
 #elif SB_IS(64_BIT)
 typedef int64_t ssize_t;
+#define SSIZE_MAX LONG_MAX
 #endif
 #endif  // !SB_HAS(SSIZE_T)